blob: 3d451b9144ac1cf29d1019ebe38f640ed75436c6 [file] [log] [blame]
Anthony Greenbff052d2013-01-11 10:24:32 -050012013-01-11 Anthony Green <green@moxielogic.com>
2
Anthony Green05fbe1f2013-01-11 16:54:40 -05003 * src/powerpc/ffi_darwin.c (ffi_prep_args): Replace // style
4 comments with /* */ for xlc compiler.
5 * src/powerpc/aix.S (ffi_call_AIX): Ditto.
Anthony Greenf03eab02013-01-11 17:14:11 -05006 * testsuite/libffi.call/ffitest.h (allocate_mmap): Delete
7 deprecated inline function.
8 * testsuite/libffi.special/ffitestcxx.h: Ditto.
Anthony Green05fbe1f2013-01-11 16:54:40 -05009 * README: Add update for AIX support.
10
112013-01-11 Anthony Green <green@moxielogic.com>
12
Anthony Greenbff052d2013-01-11 10:24:32 -050013 * configure.ac: Robustify pc relative reloc check.
14 * m4/ax_cc_maxopt.m4: Don't -malign-double. This is an ABI
15 changing option for 32-bit x86.
16 * aclocal.m4, configure: Rebuilt.
17 * README: Update supported target list.
18
Anthony Green2d9b3932013-01-09 21:14:54 -0500192013-01-10 Anthony Green <green@moxielogic.com>
20
Anthony Greencd41aea2013-01-10 17:25:45 -050021 * README (tested): Add Compiler column to table.
22
232013-01-10 Anthony Green <green@moxielogic.com>
24
Anthony Green8bf987d2013-01-10 17:24:51 -050025 * src/x86/ffi64.c (struct register_args): Make sse array and array
26 of unions for sunpro compiler compatibility.
27
282013-01-10 Anthony Green <green@moxielogic.com>
29
Anthony Green13e2d7b2013-01-10 10:52:02 -050030 * configure.ac: Test target platform size_t size. Handle both 32
31 and 64-bit builds for x86_64-* and i?86-* targets (allowing for
32 CFLAG option to change default settings).
33 * configure, aclocal.m4: Rebuilt.
34
352013-01-10 Anthony Green <green@moxielogic.com>
36
Anthony Green51415432013-01-10 07:35:53 -050037 * testsuite/libffi.special/special.exp: Only run exception
38 handling tests when using GNU compiler.
39
Anthony Green56ba8d82013-01-10 07:25:10 -050040 * m4/ax_compiler_vendor.m4: New file.
41 * configure.ac: Test for compiler vendor and don't use
42 AX_CFLAGS_WARN_ALL with the sun compiler.
43 * aclocal.m4, configure: Rebuilt.
44
452013-01-10 Anthony Green <green@moxielogic.com>
46
Anthony Green6a028ca2013-01-10 01:19:43 -050047 * include/ffi_common.h: Don't use GCCisms to define types when
48 building with the SUNPRO compiler.
49
502013-01-10 Anthony Green <green@moxielogic.com>
51
Anthony Green2d9b3932013-01-09 21:14:54 -050052 * configure.ac: Put local.exp in the right place.
53 * configure: Rebuilt.
54
55 * src/x86/ffi.c: Update comment about regparm function attributes.
56 * src/x86/sysv.S (ffi_closure_SYSV): The SUNPRO compiler requires
57 that all function arguments be passed on the stack (no regparm
58 support).
59
Anthony Greenf7879bc2013-01-08 07:30:28 -0500602013-01-08 Anthony Green <green@moxielogic.com>
61
Anthony Green83089842013-01-08 15:14:21 -050062 * configure.ac: Generate local.exp. This sets CC_FOR_TARGET
63 when we are using the vendor compiler.
64 * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): Point to
65 ../local.exp.
66 * configure, testsuite/Makefile.in: Rebuilt.
67
Anthony Greenf26c7ca2013-01-08 14:47:05 -050068 * testsuite/libffi.call/call.exp: Run tests with different
69 options, depending on whether or not we are using gcc or the
70 vendor compiler.
71 * testsuite/lib/libffi.exp (libffi-init): Set using_gcc based on
72 whether or not we are building/testing with gcc.
73
742013-01-08 Anthony Green <green@moxielogic.com>
75
Anthony Green74c776e2013-01-08 12:25:54 -050076 * configure.ac: Switch x86 solaris target to X86 by default.
77 * configure: Rebuilt.
78
792013-01-08 Anthony Green <green@moxielogic.com>
80
Anthony Green8962c8c2013-01-08 12:22:24 -050081 * configure.ac: Fix test for read-only eh_frame.
82 * configure: Rebuilt.
83
842013-01-08 Anthony Green <green@moxielogic.com>
85
Anthony Green35ddb692013-01-08 07:53:37 -050086 * src/x86/sysv.S, src/x86/unix64.S: Only emit DWARF unwind info
87 when building with the GNU toolchain.
Anthony Greenf7879bc2013-01-08 07:30:28 -050088 * testsuite/libffi.call/ffitest.h (CHECK): Fix for Solaris vendor
89 compiler.
90
Anthony Green8f4772f2013-01-07 06:14:53 -0500912013-01-07 Thorsten Glaser <tg@mirbsd.org>
92
Anthony Green67cea902013-01-07 06:30:24 -050093 * testsuite/libffi.call/cls_uchar_va.c,
94 testsuite/libffi.call/cls_ushort_va.c,
95 testsuite/libffi.call/va_1.c: Testsuite fixes.
96
972013-01-07 Thorsten Glaser <tg@mirbsd.org>
98
Anthony Green8f4772f2013-01-07 06:14:53 -050099 * src/m68k/ffi.c (CIF_FLAGS_SINT8, CIF_FLAGS_SINT16): Define.
100 (ffi_prep_cif_machdep): Fix 8-bit and 16-bit signed calls.
101 * src/m68k/sysv.S (ffi_call_SYSV, ffi_closure_SYSV): Ditto.
102
Anthony Greenea7f8442013-01-04 09:09:32 -05001032013-01-04 Anthony Green <green@moxielogic.com>
104
105 * Makefile.am (AM_CFLAGS): Don't automatically add -fexceptions
106 and -Wall. This is set in the configure script after testing for
107 GCC.
108 * Makefile.in: Rebuilt.
109
Anthony Greenf06c0f12013-01-02 09:39:17 -05001102013-01-02 rofl0r <https://github.com/rofl0r>
111
112 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix build error on ppc
113 when long double == double.
114
1152013-01-02 Reini Urban <rurban@x-ray.at>
116
117 * Makefile.am (libffi_la_LDFLAGS): Add -no-undefined to LDFLAGS
118 (required for shared libs on cygwin/mingw).
119 * Makefile.in: Rebuilt.
120
Anthony Greendfadfb12012-10-31 06:46:41 -04001212012-10-31 Alan Modra <amodra@gmail.com>
122
123 * src/powerpc/linux64_closure.S: Add new ABI support.
124 * src/powerpc/linux64.S: Likewise.
125
Anthony Greene944b8c2012-10-30 14:06:09 -04001262012-10-30 Magnus Granberg <zorry@gentoo.org>
127 Pavel Labushev <pavel.labushev@runbox.ru>
128
129 * configure.ac: New options pax_emutramp
130 * configure, fficonfig.h.in: Regenerated
131 * src/closures.c: New function emutramp_enabled_check() and
132 checks.
133
Anthony Greenf3429962012-10-30 07:42:27 -04001342012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
135
136 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
137 lion) and future version.
138 * configure: Rebuild.
139
Anthony Green58e8b662012-10-30 07:07:19 -04001402012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
141 Marcus Shawcroft <marcus.shawcroft at arm.com>
142
143 * README: Add details of aarch64 port.
144 * src/aarch64/ffi.c: New.
145 * src/aarch64/ffitarget.h: Likewise.
146 * src/aarch64/sysv.S: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500147 * Makefile.am: Support aarch64.
148 * configure.ac: Support aarch64.
149 * Makefile.in, configure: Rebuilt.
Anthony Green58e8b662012-10-30 07:07:19 -0400150
1512012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
152 Marcus Shawcroft <marcus.shawcroft at arm.com>
153
154 * testsuite/lib/libffi.exp: Add support for aarch64.
155 * testsuite/libffi.call/cls_struct_va1.c: New.
156 * testsuite/libffi.call/cls_uchar_va.c: Likewise.
157 * testsuite/libffi.call/cls_uint_va.c: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500158 * testsuite/libffi.call/cls_ulong_va.c: Likewise.
Anthony Green58e8b662012-10-30 07:07:19 -0400159 * testsuite/libffi.call/cls_ushort_va.c: Likewise.
160 * testsuite/libffi.call/nested_struct11.c: Likewise.
161 * testsuite/libffi.call/uninitialized.c: Likewise.
162 * testsuite/libffi.call/va_1.c: Likewise.
163 * testsuite/libffi.call/va_struct1.c: Likewise.
164 * testsuite/libffi.call/va_struct2.c: Likewise.
165 * testsuite/libffi.call/va_struct3.c: Likewise.
166
Anthony Green9c00a3f2012-10-12 16:46:06 -04001672012-10-12 Walter Lee <walt@tilera.com>
168
169 * Makefile.am: Add TILE-Gx/TILEPro support.
170 * configure.ac: Likewise.
171 * Makefile.in: Regenerate.
172 * configure: Likewise.
173 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
174 * src/tile: New directory.
175 * src/tile/ffi.c: New file.
176 * src/tile/ffitarget.h: Ditto.
177 * src/tile/tile.S: Ditto.
178
1792012-10-12 Matthias Klose <doko@ubuntu.com>
180
181 * generate-osx-source-and-headers.py: Normalize whitespace.
182
Anthony Green048d2f42012-10-11 10:55:25 -04001832012-09-14 David Edelsohn <dje.gcc@gmail.com>
184
185 * configure: Regenerated.
186
1872012-08-26 Andrew Pinski <apinski@cavium.com>
188
189 PR libffi/53014
190 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
191 soft-float.
192
1932012-08-08 Uros Bizjak <ubizjak@gmail.com>
194
195 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
196 just return FFI_BAD_ABI when things are wrong.
197
1982012-07-18 H.J. Lu <hongjiu.lu@intel.com>
199
200 PR libffi/53982
201 PR libffi/53973
202 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
203 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
204
2052012-05-16 H.J. Lu <hongjiu.lu@intel.com>
206
207 * configure: Regenerated.
208
Nicolas Lelongd330f192012-05-05 09:37:02 -04002092012-05-05 Nicolas Lelong
210
211 * libffi.xcodeproj/project.pbxproj: Fixes.
212 * README: Update for iOS builds.
213
Anthony Green213ed152012-04-27 01:34:15 -04002142012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
215
216 * configure.ac: Add Blackfin/sysv support
217 * Makefile.am: Add Blackfin/sysv support
218 * src/bfin/ffi.c: Add Blackfin/sysv support
219 * src/bfin/ffitarget.h: Add Blackfin/sysv support
Anthony Green213ed152012-04-27 01:34:15 -0400220
Anthony Green7e0a4122012-04-11 22:47:44 -04002212012-04-11 Anthony Green <green@moxielogic.com>
222
223 * Makefile.am (EXTRA_DIST): Add new script.
224 * Makefile.in: Rebuilt.
225
Zachary Waldowski39e6a582012-04-11 22:39:46 -04002262012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
227
228 * generate-ios-source-and-headers.py,
229 libffi.xcodeproj/project.pbxproj: Support a Mac static library via
230 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
231 generation into an Xcode "run script" phase. Include both as
232 Xcode build scripts. Don't always regenerate config files.
233
Anthony Green853cc722012-04-10 06:33:33 -04002342012-04-10 Anthony Green <green@moxielogic.com>
235
236 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
237
Anthony Green3f502302012-04-06 20:34:51 -04002382012-04-06 Anthony Green <green@moxielogic.com>
239
240 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
241 * Makefile.in: Rebuilt.
242
Mike Lewisebb8e892012-04-06 20:02:08 -04002432012-04-06 Mike Lewis <mikelikespie@gmail.com>
244
245 * generate-ios-source-and-headers.py: New file.
246 * libffi.xcodeproj/project.pbxproj: New file.
247 * README: Update instructions on building iOS binary.
248 * build-ios.sh: Delete.
249
Anthony Greena044a562012-04-06 10:39:10 -04002502012-04-06 Anthony Green <green@moxielogic.com>
251
252 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
253 compilers, then use it.
254
Anthony Green048d2f42012-10-11 10:55:25 -04002552012-04-06 H.J. Lu <hongjiu.lu@intel.com>
256
257 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
258
Anthony Green59bb61a2012-04-06 08:26:14 -04002592012-04-06 Anthony Green <green@moxielogic.com>
260
261 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
262 * testsuite/Makefile.in: Rebuilt.
263
Zachary Waldowski39dccdd2012-04-05 12:32:41 -04002642012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
265
266 * include/ffi.h.in: Add missing trampoline table fields.
267 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
268 in CNAME.
269 * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
270
Anthony Green089dbce2013-01-02 08:37:35 -05002712012-04-02 Peter Bergner <bergner@vnet.ibm.com>
272
273 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
274 Silence casting pointer to integer of different size warning.
275 Delete goto to previously deleted label.
276 (ffi_call): Silence possibly undefined warning.
277 (ffi_closure_helper_SYSV): Declare variable type.
278
2792012-04-02 Peter Rosin <peda@lysator.liu.se>
280
281 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
282 value in the Intel version as is already done for the AT&T version.
283 (ffi_closure_SYSV): Likewise.
284 (ffi_closure_raw_SYSV): Likewise.
285 (ffi_closure_STDCALL): Likewise.
286
Peter Rosin0a1ab122012-03-30 08:14:08 -04002872012-03-29 Peter Rosin <peda@lysator.liu.se>
288
289 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
290 generation, fix the ENDP label and remove the surplus third arg
291 from the 'lea' insn.
292
2932012-03-29 Peter Rosin <peda@lysator.liu.se>
294
295 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
296 visible outside the PROC, so that ffi_closure_raw_THISCALL can see
297 it. Also instruct the assembler to add a frame to the function.
298
2992012-03-23 Peter Rosin <peda@lysator.liu.se>
300
301 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
302 * Makefile.in: Rebuilt.
303 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
304 to all data exports, when compiling libffi clients using MSVC.
305
3062012-03-29 Peter Rosin <peda@lysator.liu.se>
307
308 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
309 make it the default for MSVC.
310 (FFI_TYPE_MS_STRUCT): New structure return convention.
311 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
312 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
313 instead of an ordinary FFI_TYPE_STRUCT.
314 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
315 (ffi_call): Likewise.
316 (ffi_prep_incoming_args_SYSV): Likewise.
317 (ffi_raw_call): Likewise.
318 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
319 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
320 return a pointer to the result structure in eax and don't pop
321 that pointer from the stack, the caller takes care of it.
322 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
323 (ffi_closure_raw_SYSV): Likewise.
324
3252012-03-22 Peter Rosin <peda@lysator.liu.se>
326
327 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
328 assembly version with Intel syntax.
329 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
330
3312012-03-23 Peter Rosin <peda@lysator.liu.se>
332
333 * testsuite/libffi.call/ffitest.h: Provide abstration of
334 __attribute__((fastcall)) in the form of a __FASTCALL__
335 define. Define it to __fastcall for MSVC.
336 * testsuite/libffi.call/fastthis1_win32.c: Use the above.
337 * testsuite/libffi.call/fastthis2_win32.c: Likewise.
338 * testsuite/libffi.call/fastthis3_win32.c: Likewise.
339 * testsuite/libffi.call/strlen2_win32.c: Likewise.
340 * testsuite/libffi.call/struct1_win32.c: Likewise.
341 * testsuite/libffi.call/struct2_win32.c: Likewise.
342
3432012-03-22 Peter Rosin <peda@lysator.liu.se>
344
345 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
346 frame on function entry, MASM adds one automatically.
347
3482012-03-22 Peter Rosin <peda@lysator.liu.se>
349
350 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
351 bits in the MSVC headers.
352
3532012-03-22 Peter Rosin <peda@lysator.liu.se>
354
355 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
356 with no declarations after statements.
357 * testsuite/libffi.call/cls_16byte.c: Likewise.
358 * testsuite/libffi.call/cls_18byte.c: Likewise.
359 * testsuite/libffi.call/cls_19byte.c: Likewise.
360 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
361 * testsuite/libffi.call/cls_20byte.c: Likewise.
362 * testsuite/libffi.call/cls_20byte1.c: Likewise.
363 * testsuite/libffi.call/cls_24byte.c: Likewise.
364 * testsuite/libffi.call/cls_2byte.c: Likewise.
365 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
366 * testsuite/libffi.call/cls_3byte1.c: Likewise.
367 * testsuite/libffi.call/cls_3byte2.c: Likewise.
368 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
369 * testsuite/libffi.call/cls_4byte.c: Likewise.
370 * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
371 * testsuite/libffi.call/cls_5byte.c: Likewise.
372 * testsuite/libffi.call/cls_64byte.c: Likewise.
373 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
374 * testsuite/libffi.call/cls_6byte.c: Likewise.
375 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
376 * testsuite/libffi.call/cls_7byte.c: Likewise.
377 * testsuite/libffi.call/cls_8byte.c: Likewise.
378 * testsuite/libffi.call/cls_9byte1.c: Likewise.
379 * testsuite/libffi.call/cls_9byte2.c: Likewise.
380 * testsuite/libffi.call/cls_align_double.c: Likewise.
381 * testsuite/libffi.call/cls_align_float.c: Likewise.
382 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
383 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
384 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
385 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
386 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
387 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
388 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
389 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
390 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
391 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
392 * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
393 * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
394 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
395 * testsuite/libffi.call/huge_struct.c: Likewise.
396 * testsuite/libffi.call/nested_struct.c: Likewise.
397 * testsuite/libffi.call/nested_struct1.c: Likewise.
398 * testsuite/libffi.call/nested_struct10.c: Likewise.
399 * testsuite/libffi.call/nested_struct2.c: Likewise.
400 * testsuite/libffi.call/nested_struct3.c: Likewise.
401 * testsuite/libffi.call/nested_struct4.c: Likewise.
402 * testsuite/libffi.call/nested_struct5.c: Likewise.
403 * testsuite/libffi.call/nested_struct6.c: Likewise.
404 * testsuite/libffi.call/nested_struct7.c: Likewise.
405 * testsuite/libffi.call/nested_struct8.c: Likewise.
406 * testsuite/libffi.call/nested_struct9.c: Likewise.
407 * testsuite/libffi.call/stret_large.c: Likewise.
408 * testsuite/libffi.call/stret_large2.c: Likewise.
409 * testsuite/libffi.call/stret_medium.c: Likewise.
410 * testsuite/libffi.call/stret_medium2.c: Likewise.
411 * testsuite/libffi.call/struct1.c: Likewise.
412 * testsuite/libffi.call/struct1_win32.c: Likewise.
413 * testsuite/libffi.call/struct2.c: Likewise.
414 * testsuite/libffi.call/struct2_win32.c: Likewise.
415 * testsuite/libffi.call/struct3.c: Likewise.
416 * testsuite/libffi.call/struct4.c: Likewise.
417 * testsuite/libffi.call/struct5.c: Likewise.
418 * testsuite/libffi.call/struct6.c: Likewise.
419 * testsuite/libffi.call/struct7.c: Likewise.
420 * testsuite/libffi.call/struct8.c: Likewise.
421 * testsuite/libffi.call/struct9.c: Likewise.
422 * testsuite/libffi.call/testclosure.c: Likewise.
423
Anthony Greene72ed5e2012-03-21 09:52:28 -04004242012-03-21 Peter Rosin <peda@lysator.liu.se>
425
426 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
427 printing doubles (%lf is for long doubles).
428 (main): Likewise.
429
Anthony Greenbd78c9c2012-03-21 08:09:30 -04004302012-03-21 Peter Rosin <peda@lysator.liu.se>
431
432 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
433 (set_ld_library_path_env_vars): Add the library search dir to PATH
434 (and save PATH for later).
435 (restore_ld_library_path_env_vars): Restore PATH.
436
Anthony Greenccee09a2013-01-02 08:41:55 -05004372012-03-21 Peter Rosin <peda@lysator.liu.se>
438
439 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
440 (set_ld_library_path_env_vars): Add the library search dir to PATH
441 (and save PATH for later).
442 (restore_ld_library_path_env_vars): Restore PATH.
443
Anthony Greenbd78c9c2012-03-21 08:09:30 -04004442012-03-20 Peter Rosin <peda@lysator.liu.se>
445
446 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
447 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
448 visible outside the PROC, so that ffi_closure_THISCALL can see it.
449
Anthony Green048d2f42012-10-11 10:55:25 -04004502012-03-20 Peter Rosin <peda@lysator.liu.se>
451
452 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
453 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
454 visible outside the PROC, so that ffi_closure_THISCALL can see it.
455
Anthony Greenbd78c9c2012-03-21 08:09:30 -04004562012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
457
458 * src/m68k/ffi.c: Add MINT support.
459 * src/m68k/sysv.S: Ditto.
460
Anthony Green048d2f42012-10-11 10:55:25 -04004612012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
462
463 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
464 ffi_call_VFP().
465 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
466 ffi_closure_VFP.
467 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
468
Anthony Green089dbce2013-01-02 08:37:35 -05004692012-03-19 chennam <csit@axway.com>
Anthony Green65f40c32012-04-03 07:35:59 -0400470
Anthony Green089dbce2013-01-02 08:37:35 -0500471 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
472 support.
Anthony Green048d2f42012-10-11 10:55:25 -0400473
Anthony Green84d32532012-03-19 23:07:35 -04004742012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
475
476 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
477 just return FFI_BAD_ABI when things are wrong.
478 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
479
4802012-03-09 David Edelsohn <dje.gcc@gmail.com>
481
482 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
483 change to return value of ffi_closure_helper_DARWIN and load type
484 from return type.
485
Anthony Green964c5b92012-03-03 14:46:20 -05004862012-03-03 H.J. Lu <hongjiu.lu@intel.com>
487
488 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
489 long.
490 (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
491 (ffi_closure_unix64_inner): Cast return pointer to unsigned long
492 first.
493
494 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
495 (ffi_arg): Set to unsigned long long for x32.
496 (ffi_sarg): Set to long long for x32.
497
4982012-03-03 H.J. Lu <hongjiu.lu@intel.com>
499
500 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
501
Anthony Green6c194232012-03-03 14:17:54 -05005022012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
503
504 * configure.ac: Add -no-undefined for both 32- and 64-bit x86
505 windows-like hosts.
506 * configure: Rebuilt.
507
Anthony Green7c5e60b2012-03-29 08:48:22 -04005082012-02-27 Mikael Pettersson <mikpe@it.uu.se>
509
510 PR libffi/52223
511 * Makefile.am (FLAGS_TO_PASS): Define.
512 * Makefile.in: Regenerate.
513
Anthony Green8360bf12012-02-23 07:01:13 -05005142012-02-23 Anthony Green <green@moxielogic.com>
515
516 * src/*/ffitarget.h: Ensure that users never include ffitarget.h
517 directly.
518
Anthony Green7c5e60b2012-03-29 08:48:22 -04005192012-02-23 Kai Tietz <ktietz@redhat.com>
520
521 PR libffi/52221
522 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
523 prototype.
524 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
525 thiscall-convention.
526 (ffi_raw_call): Use ffi_prep_args_raw.
527 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
528 implementation for stub.
529
Anthony Greendee20f82012-02-10 13:06:46 -05005302012-02-10 Kai Tietz <ktietz@redhat.com>
531
532 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
533 windows target.
534 * configure: Regenerated.
Anthony Green8360bf12012-02-23 07:01:13 -0500535
Anthony Greendee20f82012-02-10 13:06:46 -05005362012-02-08 Kai Tietz <ktietz@redhat.com>
537
538 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
539 also FFI_THISCALL.
540 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
541 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
542 (ffi_prep_closure_loc): Add FFI_THISCALL support.
543 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
544 * src/x86/win32.S (ffi_closure_THISCALL): New closure code
545 for thiscall-calling convention.
546 * testsuite/libffi.call/closure_thiscall.c: New test.
547
Anthony Green1ff9c602012-02-01 16:34:30 -06005482012-01-28 Kai Tietz <ktietz@redhat.com>
549
550 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
551 argument to prototype for specify calling-convention.
552 (ffi_call): Add support for stdcall/thiscall convention.
553 (ffi_prep_args): Likewise.
554 (ffi_raw_call): Likewise.
555 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
556 FFI_FASTCALL.
557 * src/x86/win32.S (_ffi_call_win32): Add support for
558 fastcall/thiscall calling-convention calls.
559 * testsuite/libffi.call/fastthis1_win32.c: New test.
560 * testsuite/libffi.call/fastthis2_win32.c: New test.
561 * testsuite/libffi.call/fastthis3_win32.c: New test.
562 * testsuite/libffi.call/strlen2_win32.c: New test.
563 * testsuite/libffi.call/many2_win32.c: New test.
564 * testsuite/libffi.call/struct1_win32.c: New test.
565 * testsuite/libffi.call/struct2_win32.c: New test.
566
Anthony Green211060e2012-01-23 14:24:01 -05005672012-01-23 Uros Bizjak <ubizjak@gmail.com>
568
569 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
570
Anthony Green1ff9c602012-02-01 16:34:30 -06005712012-01-23 Anthony Green <green@moxielogic.com>
572 Chris Young <cdyoung@ntlworld.com>
Anthony Green9e9c4ae2012-01-23 14:11:23 -0500573
574 * configure.ac: Add Amiga support.
575 * configure: Rebuilt.
576
5772012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
Anthony Green8efc0b12012-01-23 13:47:38 -0500578
579 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
580
Anthony Green1ff9c602012-02-01 16:34:30 -06005812012-01-23 Andreas Schwab <schwab@linux-m68k.org>
Anthony Greencd2277c2012-01-23 13:43:38 -0500582
583 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
584 mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
585
Anthony Greenc365ee72012-01-23 11:13:18 -05005862012-01-19 Jakub Jelinek <jakub@redhat.com>
587
588 PR rtl-optimization/48496
589 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
590
5912012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
592
593 * configure.ac (i?86-*-*): Set TARGET to X86_64.
594 * configure: Regenerate.
595
5962011-12-07 Andrew Pinski <apinski@cavium.com>
597
598 PR libffi/50051
599 * src/mips/n32.S: Add ".set mips4".
600
6012011-11-21 Andreas Tobler <andreast@fgznet.ch>
602
603 * configure: Regenerate.
604
Anthony Greenff9454d2011-11-12 17:18:51 -05006052011-11-12 David Gilbert <david.gilbert@linaro.org>
606
607 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
608 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
609 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
610 src/cris/ffi.c, src/prep_cif.c,
611 testsuite/libffi.call/cls_double_va.c,
612 testsuite/libffi.call/cls_longdouble_va.c,
613 testsuite/libffi.call/float_va.c: Many changes to support variadic
614 function calls.
615
Anthony Green52891f82011-11-12 16:35:55 -05006162011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
617
618 * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
619 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
620 softfloat powerpc variants.
621
Anthony Green6a6e7f82011-11-12 16:20:42 -05006222011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
623
624 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
625 * configure: Rebuilt.
626
Anthony Greend52fbed2011-11-12 16:13:41 -05006272011-11-12 Timothy Wall <twall@users.sf.net>
628
629 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
630 alignment of 4 for wince on ARM.
631
Anthony Greenaf18df22011-11-12 15:52:08 -05006322011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
633 Anthony Green <green@moxielogic.com>
634
635 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
636 instructions (not available on some cores, like the PPC440).
637
Anthony Greenc411f142011-11-12 07:32:36 -05006382011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
Anthony Green8c019542011-09-06 14:26:32 -0400639
Anthony Greenc411f142011-11-12 07:32:36 -0500640 * m4/ax_enable_builddir: Change from string comparison to numeric
Anthony Green52891f82011-11-12 16:35:55 -0500641 comparison for wc output.
Anthony Green236c9392011-11-12 07:37:40 -0500642 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
643 X 10.7.
644 * configure: Rebuilt.
Anthony Greenee6696f2011-08-23 12:30:29 -0400645
Anthony Green6a6e7f82011-11-12 16:20:42 -05006462011-11-12 Anthony Green <green@moxielogic.com>
647
648 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
649 files with debug info.
650 * Makefile.in: Rebuilt.
651
6522011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
653
654 * README: Update list of supported OpenBSD systems.
655
6562011-11-12 Anthony Green <green@moxielogic.com>
657
658 * libtool-version: Update.
659 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
660 FFI_DEBUG.
661 (libffi_la_SOURCES): Remove src/debug.c
662 (EXTRA_DIST): Add src/debug.c
663 * Makefile.in: Rebuilt.
664 * README: Update for 3.0.11.
665
Anthony Green3d561062011-11-12 07:20:24 -05006662011-11-10 Richard Henderson <rth@redhat.com>
Anthony Green049d8382011-08-22 14:50:10 -0400667
Anthony Green3d561062011-11-12 07:20:24 -0500668 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
669 * configure, aclocal.m4: Rebuild.
670
6712011-09-04 Iain Sandoe <iains@gcc.gnu.org>
672
673 PR libffi/49594
674 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
675 helper reference track the architecture pointer size.
676
6772011-08-25 Andrew Haley <aph@redhat.com>
678
679 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
680 instructions.
681 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
Anthony Green049d8382011-08-22 14:50:10 -0400682
Anthony Greend992ac52011-07-29 17:32:53 -04006832011-07-11 Andrew Haley <aph@redhat.com>
684
685 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
686
6872011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
688
689 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
690 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
691
6922011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
693
694 PR libffi/46660
695 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
696 mips-sgi-irix6*.
697 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
698
6992011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
700
701 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
702 PRId8 instead of %hhu, %hhd.
703 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
704 PRIu8): Define.
705 [__sgi__] (PRId8, PRIu8): Define.
706
7072011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
708
709 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
710 Define.
711 Use them to handle ELF vs. ECOFF differences.
712 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
713
Anthony Green2d3fb362011-03-30 16:54:42 -04007142011-03-30 Timothy Wall <twall@users.sf.net>
715
716 * src/powerpc/darwin.S: Fix unknown FDE encoding.
717 * src/powerpc/darwin_closure.S: ditto.
718
Anthony Green25416792011-02-25 15:09:13 -05007192011-02-25 Anthony Green <green@moxielogic.com>
720
Anthony Green74ee6ea2011-02-25 15:52:14 -0500721 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
722 32-bit ABIs.
Anthony Green25416792011-02-25 15:09:13 -0500723
Anthony Green8cf88782011-02-15 15:19:49 -05007242011-02-15 Anthony Green <green@moxielogic.com>
725
726 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
727 * configure: Rebuilt.
728
Anthony Greend992ac52011-07-29 17:32:53 -04007292011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
730
731 * configure: Regenerate.
732
Anthony Green1fbf9dc2011-02-13 08:06:39 -05007332011-02-13 Anthony Green <green@moxielogic.com>
734
735 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
736 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
737 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
738
739 * src/prep_cif.c (initialize_aggregate): Convert assertion into
740 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
741
742 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
743 just return FFI_BAD_ABI when things are wrong.
744 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
745 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
746 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
747 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
748 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
749
Anthony Green1833aa02011-02-11 07:11:04 -05007502011-02-11 Anthony Green <green@moxielogic.com>
751
752 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
753 just return FFI_BAD_ABI when things are wrong.
754
Anthony Green7c5e60b2012-03-29 08:48:22 -04007552012-02-11 Eric Botcazou <ebotcazou@adacore.com>
756
757 * src/sparc/v9.S (STACKFRAME): Bump to 176.
758
Anthony Green42695e72011-02-09 15:12:35 -05007592011-02-09 Stuart Shelton <srcshelton@gmail.com>
760
761 http://bugs.gentoo.org/show_bug.cgi?id=286911
762 * src/mips/ffitarget.h: Clean up error messages.
763 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
764 ffi_raw*.
765 * include/ffi.h.in: Add pragma for SGI compiler.
766
Anthony Greena6e56b92011-02-09 15:00:42 -05007672011-02-09 Anthony Green <green@moxielogic.com>
768
769 * configure.ac: Add powerpc64-*-darwin* support.
770
Anthony Green0cad4382011-02-09 06:11:46 -05007712011-02-09 Anthony Green <green@moxielogic.com>
Anthony Green11062292011-02-08 19:20:09 -0500772
Anthony Green747d6c32011-02-09 14:56:23 -0500773 * README: Mention Interix.
774
7752011-02-09 Jonathan Callen <abcd@gentoo.org>
776
777 * configure.ac: Add Interix to win32/cygwin/mingw case.
778 * configure: Ditto.
779 * src/closures.c: Treat Interix like Cygwin, instead of as a
780 generic win32.
781
7822011-02-09 Anthony Green <green@moxielogic.com>
783
Anthony Green69dbe842011-02-09 07:38:43 -0500784 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
785 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
786 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
787 (ffi_prep_closure_loc): Check for bad ABI.
788 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
789 (initialize_aggregate): Check for bad types.
Anthony Green0cad4382011-02-09 06:11:46 -0500790
Anthony Green90af15e2011-02-12 12:29:36 -05007912011-02-09 Landon Fuller <landonf@plausible.coop>
Anthony Green0cad4382011-02-09 06:11:46 -0500792
793 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
794 src/arm/trampoline.S.
795 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
796 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
797 * src/arm/ffi.c (ffi_trampoline_table)
798 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
799 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
800 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
801 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
802 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
803 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
804 separately.
805 * src/arm/sysv.S: Handle Apple iOS host.
806 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
Anthony Greenf4983182011-02-09 06:26:46 -0500807 * build-ios.sh: New file.
Anthony Green0cad4382011-02-09 06:11:46 -0500808 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
Anthony Green69dbe842011-02-09 07:38:43 -0500809 * README: Mention ARM iOS.
Anthony Green11062292011-02-08 19:20:09 -0500810
Anthony Greendc411e82011-02-08 10:49:29 -05008112011-02-08 Oren Held <orenhe@il.ibm.com>
812
813 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
814 redefinition of mallinfo on HP-UX.
815
Anthony Green404585d2011-02-08 10:44:36 -05008162011-02-08 Ginn Chen <ginn.chen@oracle.com>
817
818 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
Anthony Green049d8382011-08-22 14:50:10 -0400819 aggregate return ABI. Flush cache.
820 (ffi_prep_closure_loc): Flush cache.
Anthony Green404585d2011-02-08 10:44:36 -0500821
Anthony Green6972a4f2011-02-11 07:32:51 -05008222011-02-11 Anthony Green <green@moxielogic.com>
823
824 From Tom Honermann <tom.honermann@oracle.com>:
825 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
826 AIX. Declare .ffi_prep_args. Insert nops after branch
827 instructions so that the AIX linker can insert TOC reload
828 instructions.
829 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
830
Anthony Greend992ac52011-07-29 17:32:53 -04008312011-02-08 Ed <ed@kdtc.net>
832
833 * src/powerpc/asm.h: Fix grammar nit in comment.
834
Anthony Green89284fe2011-02-08 10:19:19 -05008352011-02-08 Uli Link <ul.mcamafia@linkitup.de>
836
837 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
838
Anthony Greend992ac52011-07-29 17:32:53 -04008392011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
840
841 PR libffi/46661
842 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
843 uintptr_t first.
844 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
845
Anthony Greened2c5182011-02-08 10:10:07 -05008462011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
847
848 * configure.ac: Fix x86 test for pc related relocs.
Anthony Green09f8f312011-02-28 15:36:07 -0500849 * configure: Rebuilt.
Anthony Greened2c5182011-02-08 10:10:07 -0500850
Anthony Green3b836242011-02-08 14:28:59 -05008512011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
852
853 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
854 Handle case when CPU variant does not have long double support.
855 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
856 and cores with soft floating point.
857
8582011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
859
860 * configure.ac: Add mips*-*-rtems* support.
861 * configure: Regenerate.
862 * src/mips/ffitarget.h: Ensure needed constants are available
863 for targets which do not have sgidefs.h.
864
Anthony Green0e584392011-02-08 07:52:40 -05008652011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
866
867 PR target/40125
868 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
869 * configure: Regenerate.
870
8712010-12-18 Iain Sandoe <iains@gcc.gnu.org>
872
873 PR libffi/29152
874 PR libffi/42378
875 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
876 update comments.
877 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
878 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
879 * src/powerpc/darwin.S: Provide Darwin64 implementation,
880 update comments.
881 * src/powerpc/ffi_darwin.c: Likewise.
882
8832010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
884
885 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
886 backslashes.
887 (libffi_cv_as_string_pseudo_op): Likewise.
888 * configure: Regenerate.
889
8902010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
891
892 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
893 (ffi_closure_VFP): Same.
894 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
895 directive.
896
8972010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
898
899 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
900 (PRIuPTR): Define.
901
9022010-11-29 Richard Henderson <rth@redhat.com>
903 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
904
905 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
906 (.eh_frame): Use FDE_ENCODING.
907 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
908
Anthony Green5b9cd522010-11-22 15:19:57 -05009092010-11-22 Jacek Caban <jacek@codeweavers.com>
910
911 * configure.ac: Check for symbol underscores on mingw-w64.
912 * configure: Rebuilt.
913 * src/x86/win64.S: Correctly access extern symbols in respect to
914 underscores.
915
Anthony Green2db72612010-11-21 10:50:56 -05009162010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
917
918 * testsuite/lib/libffi-dg.exp: Rename ...
919 * testsuite/lib/libffi.exp: ... to this.
920 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
921 * libffi/testsuite/libffi.special/special.exp: Likewise.
922
9232010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
924
925 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
926 code, new parameter, and return value. Update comments.
927 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
928 call to layout_vfp_args().
929 (ffi_call_SYSV): Update declaration.
930 (ffi_call_VFP): New declaration.
931 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
932 when ABI is FFI_VFP.
933 (ffi_closure_VFP): New declaration.
934 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
935 ffi_prep_incoming_args_SYSV().
936 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
937 case handling.
938 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
939 construction under VFP hard-float.
940 (rec_vfp_type_p): New function.
941 (vfp_type_p): Same.
942 (place_vfp_arg): Same.
943 (layout_vfp_args): Same.
944 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
945 based on __ARM_PCS_VFP.
946 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
947 fields.
948 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
949 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
950 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
951 direct call. Move function pointer load upwards.
952 (ffi_call_VFP): New function.
953 (ffi_closure_VFP): Same.
954
955 * testsuite/lib/libffi-dg.exp (check-flags): New function.
956 (dg-skip-if): New function.
957 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
958 and compiler options include -mfloat-abi=hard.
959 * testsuite/libffi.call/cls_longdouble_va.c: Same.
960
9612010-10-01 Jakub Jelinek <jakub@redhat.com>
962
963 PR libffi/45677
964 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
965 a multiple of 8.
966 * testsuite/libffi.call/many2.c: New test.
967
9682010-08-20 Mark Wielaard <mjw@redhat.com>
969
970 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
971 returns NULL.
972
9732010-08-09 Andreas Tobler <andreast@fgznet.ch>
974
975 * configure.ac: Add target powerpc64-*-freebsd*.
976 * configure: Regenerate.
977 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
978 -mlong-double-128 only to linux targets.
979 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
980 * testsuite/libffi.call/cls_longdouble.c: Likewise.
981 * testsuite/libffi.call/huge_struct.c: Likewise.
982
Anthony Green00d0b592010-08-05 14:56:53 -04009832010-08-05 Dan Witte <dwitte@mozilla.com>
984
985 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
986 debug CRT when --enable-debug is given.
987 * configure.ac: Define it.
988 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
989
Anthony Greenc1d28ba2010-08-05 08:48:16 -04009902010-08-04 Dan Witte <dwitte@mozilla.com>
991
992 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
993 platforms.
994 * src/x86/ffi.c: Remove redundant ifdef checks.
995 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
996 for X86_ANY so return value space doesn't get added twice.
997
Anthony Greenbda487e2010-08-05 09:02:41 -04009982010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
999
1000 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1001
Anthony Greend14178b2010-07-23 09:14:00 -040010022010-07-22 Dan Witte <dwitte@mozilla.com>
1003
1004 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1005 * src/prep_cif.c: Fix ABI assertion.
1006 * src/cris/ffi.c: Ditto.
1007
Anthony Greeneaf444e2010-07-10 08:59:09 -040010082010-07-10 Evan Phoenix <evan@fallingsnow.net>
1009
1010 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1011
Anthony Green5feacad2010-08-05 08:30:04 -040010122010-07-07 Dan Horák <dan@danny.cz>
1013
1014 * include/ffi.h.in: Protect #define with #ifndef.
1015 * src/powerpc/ffitarget.h: Ditto.
1016 * src/s390/ffitarget.h: Ditto.
1017 * src/sparc/ffitarget.h: Ditto.
1018
Anthony Green2db72612010-11-21 10:50:56 -050010192010-07-07 Neil Roberts <neil@linux.intel.com>
1020
1021 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1022 16-bytes.
1023
10242010-07-02 Jakub Jelinek <jakub@redhat.com>
1025
1026 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1027 * Makefile.in: Regenerated.
1028
10292010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1030
1031 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1032 output, too.
1033 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1034 (libffi_cv_as_string_pseudo_op): Check for .string.
1035 * configure: Regenerate.
1036 * fficonfig.h.in: Regenerate.
1037 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1038
Anthony Green10ea8482010-08-05 08:24:27 -040010392010-05-11 Dan Witte <dwitte@mozilla.com>
1040
1041 * doc/libffi.tex: Document previous change.
1042
10432010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
1044
1045 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1046
Anthony Green63097412010-05-05 20:14:56 -040010472010-05-05 Michael Kohler <michaelkohler@live.com>
1048
1049 * src/dlmalloc.c (dlfree): Fix spelling.
1050 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1051 * configure.ac: Ditto.
1052 * configure: Rebuilt.
1053
Anthony Greenf2c2a4f2010-04-13 10:19:28 -040010542010-04-13 Dan Witte <dwitte@mozilla.com>
1055
1056 * msvcc.sh: Build with -W3 instead of -Wall.
1057 * src/powerpc/ffi_darwin.c: Remove build warnings.
1058 * src/x86/ffi.c: Ditto.
1059 * src/x86/ffitarget.h: Ditto.
1060
Anthony Green2db72612010-11-21 10:50:56 -050010612010-04-12 Dan Witte <dwitte@mozilla.com>
1062 Walter Meinl <wuno@lsvw.de>
Anthony Greenc0b69e52010-03-30 08:30:22 -04001063
Anthony Green2db72612010-11-21 10:50:56 -05001064 * configure.ac: Add OS/2 support.
1065 * configure: Rebuilt.
1066 * src/closures.c: Ditto.
1067 * src/dlmalloc.c: Ditto.
1068 * src/x86/win32.S: Ditto.
Anthony Green3f5b1372010-07-12 14:39:18 -04001069
10702010-04-07 Jakub Jelinek <jakub@redhat.com>
1071
Anthony Green2db72612010-11-21 10:50:56 -05001072 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
Anthony Green3f5b1372010-07-12 14:39:18 -04001073
10742010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1075
1076 * Makefile.in: Regenerate.
1077 * aclocal.m4: Regenerate.
1078 * include/Makefile.in: Regenerate.
1079 * man/Makefile.in: Regenerate.
1080 * testsuite/Makefile.in: Regenerate.
1081
Anthony Green2db72612010-11-21 10:50:56 -050010822010-03-30 Dan Witte <dwitte@mozilla.com>
1083
1084 * msvcc.sh: Disable build warnings.
1085 * README (tested): Clarify windows build procedure.
1086
Anthony Green3f5b1372010-07-12 14:39:18 -040010872010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1088
1089 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1090 * configure: Regenerate.
1091 * fficonfig.h.in: Regenerate.
1092 * libffi/src/x86/unix64.S (.eh_frame)
1093 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1094
Anthony Green2db72612010-11-21 10:50:56 -050010952010-03-14 Matthias Klose <doko@ubuntu.com>
1096
1097 * src/x86/ffi64.c: Fix typo in comment.
1098 * src/x86/ffi.c: Use /* ... */ comment style.
1099
Anthony Green9dc9a292010-04-13 10:33:52 -040011002010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1101
1102 * doc/libffi.texi (The Closure API): Fix typo.
1103 * doc/libffi.info: Remove.
1104
11052010-02-15 Matthias Klose <doko@ubuntu.com>
1106
1107 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1108 __ARM_ARCH_7EM__.
1109
Anthony Green2db72612010-11-21 10:50:56 -050011102010-01-15 Anthony Green <green@redhat.com>
1111
1112 * README: Add notes on building with Microsoft Visual C++.
1113
11142010-01-15 Daniel Witte <dwitte@mozilla.com>
1115
1116 * msvcc.sh: New file.
1117
1118 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1119 * src/x86/ffi.c: Tweak function declaration and remove excess
1120 parens.
1121 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1122 ffi_closure.
1123
1124 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1125 function ffi_call_win32 on X86_WIN32.
1126 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1127 (ffi_call_STDCALL): Remove.
1128
1129 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1130 to ffi_prep_cif_machdep for x86.
1131 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1132
11332010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
1134
1135 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
Anthony Green0e584392011-02-08 07:52:40 -05001136 Sun Studio compiler compatibility.
Anthony Green2db72612010-11-21 10:50:56 -05001137
11382010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
1139
1140 * doc/libffi.texi: Add closure example.
1141
Anthony Green7b7a42f2010-01-12 09:14:14 -050011422010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1143
1144 PR libffi/40701
1145 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1146 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1147 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1148 alpha*-dec-osf*.
1149 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1150 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1151 * testsuite/libffi.call/return_ll1.c: Likewise.
1152 * testsuite/libffi.call/stret_medium2.c: Likewise.
1153 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1154 MAP_FAILED to char *.
1155
11562010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1157
1158 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1159
Anthony Greenc3042af2010-01-01 08:08:02 -050011602009-12-31 Anthony Green <green@redhat.com>
1161
1162 * README: Update for libffi 3.0.9.
1163
11642009-12-27 Matthias Klose <doko@ubuntu.com>
1165
1166 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1167 appropriate.
1168 * configure: Rebuilt.
1169
11702009-12-26 Anthony Green <green@redhat.com>
1171
1172 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1173 avr32*-*-*.
1174 * testsuite/libffi.call/cls_double_va.c: Ditto.
1175
11762009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1177
1178 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1179 and inttypes.h.
1180 * testsuite/libffi.special/unwindtest.cc: Ditto.
1181
11822009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1183
1184 * configure.ac: Add amd64-*-openbsd*.
1185 * configure: Rebuilt.
1186 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1187 openbsd programs with -lpthread.
1188
11892009-12-26 Anthony Green <green@redhat.com>
1190
1191 * testsuite/libffi.call/cls_double_va.c,
1192 testsuite/libffi.call/cls_longdouble.c,
1193 testsuite/libffi.call/cls_longdouble_va.c,
1194 testsuite/libffi.call/cls_pointer.c,
1195 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1196 mips*-*-* and arm*-*-*.
1197 * testsuite/libffi.call/cls_align_longdouble_split.c,
1198 testsuite/libffi.call/cls_align_longdouble_split2.c,
1199 testsuite/libffi.call/stret_medium2.c,
1200 testsuite/libffi.call/stret_medium.c,
1201 testsuite/libffi.call/stret_large.c,
1202 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1203
12042009-12-31 Kay Tietz <ktietz70@googlemail.com>
1205
1206 * testsuite/libffi.call/ffitest.h,
1207 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1208 definitions.
1209
12102009-12-31 Carlo Bramini <carlo.bramix@libero.it>
1211
1212 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1213 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1214 * configure: Rebuilt.
1215 * Makefile.in: Rebuilt.
1216
12172009-12-31 Anthony Green <green@redhat.com>
1218 Blake Chaffin.
1219
1220 * testsuite/libffi.call/huge_struct.c: New test case from Blake
1221 Chaffin @ Apple.
1222
Anthony Green0cfe60e2009-12-29 10:06:04 -050012232009-12-28 David Edelsohn <edelsohn@gnu.org>
1224
1225 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1226 local variables.
1227 (aix_adjust_aggregate_sizes): New function.
1228 (ffi_prep_cif_machdep): Call it.
1229
12302009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1231
1232 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1233 * configure: Regenerate.
1234 * fficonfig.h.in: Likewise.
1235 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1236 Solaris/x86.
1237
12382009-12-26 Andreas Schwab <schwab@linux-m68k.org>
1239
1240 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1241 when a float arguments is passed in memory.
1242 (ffi_closure_helper_SYSV): Mark general registers as used up when
1243 a 64bit or soft-float long double argument is passed in memory.
1244
Anthony Green9458d882009-12-26 07:02:27 -050012452009-12-25 Matthias Klose <doko@ubuntu.com>
1246
1247 * man/ffi_call.3: Fix #include in examples.
1248 * doc/libffi.texi: Add dircategory.
1249
12502009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
1251
1252 * include/ffi.h.in: Placed '__GNUC__' ifdef around
1253 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1254 IRIX MIPSPro c99.
1255 * include/ffi_common.h: Added '__sgi' define to non
1256 '__attribute__((__mode__()))' integer typedefs.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001257 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
Anthony Green9458d882009-12-26 07:02:27 -05001258 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1259 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1260 FFI_LONGDOUBLE support and alignment(N32 only).
1261 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1262 fixed non '__attribute__((__mode__()))' integer typedefs.
1263 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1264 since they are Linux/GNU Assembler specific.
1265
12662009-12-25 Bradley Smith <brad@brad-smith.co.uk>
1267
1268 * configure.ac, Makefile.am, src/avr32/ffi.c,
1269 src/avr32/ffitarget.h,
1270 src/avr32/sysv.S: Add AVR32 port.
1271 * configure, Makefile.in: Rebuilt.
1272
Anthony Green115ab362009-12-24 00:22:00 -050012732009-12-21 Andreas Tobler <a.tobler@schweiz.org>
1274
1275 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1276 * configure: Regenerate.
1277
12782009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1279
1280 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1281
12822009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1283
1284 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1285 type on HP-UX.
1286
Anthony Green7c5e60b2012-03-29 08:48:22 -040012872012-02-13 Kai Tietz <ktietz@redhat.com>
1288
1289 PR libffi/52221
1290 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1291 support for X86_WIN32.
1292 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1293
Anthony Green115ab362009-12-24 00:22:00 -050012942009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1295
1296 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1297 double' arguments.
1298
12992009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1300
1301 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1302
13032009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1304
1305 PR libffi/40700
1306 * src/closures.c [X86_64 && __sun__ && __svr4__]
1307 (FFI_MMAP_EXEC_WRIT): Define.
1308
13092009-12-08 David Daney <ddaney@caviumnetworks.com>
1310
1311 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1312 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1313 * testsuite/libffi.call/stret_large.c: Same.
1314 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1315 * testsuite/libffi.call/stret_large2.c: Same.
1316 * testsuite/libffi.call/stret_medium2.c: Same.
1317
13182009-12-07 David Edelsohn <edelsohn@gnu.org>
1319
1320 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1321 typo.
1322
13232009-12-05 David Edelsohn <edelsohn@gnu.org>
1324
1325 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1326 code.
1327 * src/powerpc/aix_closure.S: Same.
1328
13292009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1330
1331 * Makefile.in: Regenerate.
1332 * configure: Regenerate.
1333 * include/Makefile.in: Regenerate.
1334 * man/Makefile.in: Regenerate.
1335 * testsuite/Makefile.in: Regenerate.
1336
13372009-12-04 David Edelsohn <edelsohn@gnu.org>
1338
1339 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
Anthony Green0cfe60e2009-12-29 10:06:04 -05001340 linux64_closure.S.
Anthony Green115ab362009-12-24 00:22:00 -05001341
13422009-12-04 Uros Bizjak <ubizjak@gmail.com>
1343
1344 PR libffi/41908
1345 * src/x86/ffi64.c (classify_argument): Update from
1346 gcc/config/i386/i386.c.
1347 (ffi_closure_unix64_inner): Do not use the address of two consecutive
1348 SSE registers directly.
1349 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1350 for x86_64 linux targets.
1351
13522009-12-04 David Edelsohn <edelsohn@gnu.org>
1353
1354 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1355 pfr for long double split between fpr13 and stack.
1356
13572009-12-03 David Edelsohn <edelsohn@gnu.org>
1358
1359 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1360 fparg_count twice for long double.
1361
13622009-12-03 David Edelsohn <edelsohn@gnu.org>
1363
1364 PR libffi/42243
1365 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1366
13672009-12-03 Uros Bizjak <ubizjak@gmail.com>
1368
1369 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
1370 Remove xfails for x86 linux targets.
1371
13722009-12-02 David Edelsohn <edelsohn@gnu.org>
1373
1374 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1375 case.
1376
13772009-12-01 David Edelsohn <edelsohn@gnu.org>
1378
1379 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1380 register usage. Call ffi_prep_args directly. Add long double
1381 return value support.
1382 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1383 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
1384 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1385 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1386 mode.
1387 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
1388 into case.
1389 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1390 Allocate result area between params and FPRs.
1391
13922009-11-30 David Edelsohn <edelsohn@gnu.org>
1393
1394 PR target/35484
1395 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
1396 AIX64.
1397 * src/powerpc/aix.S: Implement AIX64 version.
1398 * src/powerpc/aix_closure.S: Implement AIX64 version.
1399 (ffi_closure_ASM): Use extsb, lha and displament addresses.
1400 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
1401 support.
1402 (ffi_prep_cif_machdep): Same.
1403 (ffi_call): Same.
1404 (ffi_closure_helper_DARWIN): Same.
1405
14062009-11-02 Andreas Tobler <a.tobler@schweiz.org>
1407
1408 PR libffi/41908
1409 * testsuite/libffi.call/testclosure.c: New test.
1410
Anthony Greenc6dddbd2009-10-04 08:11:33 -040014112009-09-28 Kai Tietz <kai.tietz@onevision.com>
1412
1413 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
1414 assembly version use of ___chkstk.
1415
14162009-09-23 Matthias Klose <doko@ubuntu.com>
1417
1418 PR libffi/40242, PR libffi/41443
1419 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
1420 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
1421 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
1422 Change the conditionals to __SOFTFP__ || __ARM_EABI__
1423 for -mfloat-abi=softfp to work.
1424
14252009-09-17 Loren J. Rittle <ljrittle@acm.org>
1426
1427 PR testsuite/32843 (strikes again)
1428 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
1429 enable proper extension on char and short.
1430
14312009-09-15 David Daney <ddaney@caviumnetworks.com>
1432
1433 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
1434 handling for FFI_TYPE_POINTER.
1435 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
1436 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
1437 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
1438 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
1439 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
1440 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
1441 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
1442 structure and pointer returns.
1443 (ffi_closure_N32): Add handling for pointer returns.
1444 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
1445 calc_n32_return_struct_flags): Handle soft-float.
1446 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
1447 (ffi_call_N32): Declare proper argument types.
1448 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
1449 soft-float.
1450
14512009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1452
1453 * configure.ac (AC_PREREQ): Bump to 2.64.
1454
14552009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1456
1457 * Makefile.am (install-html, install-pdf): Remove.
1458 * Makefile.in: Regenerate.
1459
1460 * Makefile.in: Regenerate.
1461 * aclocal.m4: Regenerate.
1462 * configure: Regenerate.
1463 * fficonfig.h.in: Regenerate.
1464 * include/Makefile.in: Regenerate.
1465 * man/Makefile.in: Regenerate.
1466 * testsuite/Makefile.in: Regenerate.
1467
Anthony Green3d561062011-11-12 07:20:24 -050014682011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1469
1470 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
1471 * configure: Rebuilt.
1472
Anthony Greenc6dddbd2009-10-04 08:11:33 -040014732009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1474
1475 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1476
14772009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
1478
1479 PR libffi/40807
1480 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
1481 return types for X86_WIN32.
1482 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
1483 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
1484 _ffi_closure_STDCALL): Likewise.
1485
1486 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
1487 (dlmmap, dlmunmap): Also use these functions on Cygwin.
1488
14892009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
1490
1491 PR testsuite/40699
1492 PR testsuite/40707
1493 PR testsuite/40709
1494 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
1495 2009-06-30 commits.
1496
14972009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
1498
1499 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
1500 to "" before adding paths. (This reinstates an assignment that
1501 was removed by my 2009-06-30 commit, but changes the initial
1502 value from "." to "".)
1503
15042009-07-01 H.J. Lu <hongjiu.lu@intel.com>
1505
1506 PR testsuite/40601
1507 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
1508 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
1509 empty.
1510
15112009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
1512
1513 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
1514 to ld_library_path. Use add_path. Add just find_libgcc_s
1515 to ld_library_path, not every libgcc multilib directory.
1516
15172009-06-16 Wim Lewis <wiml@hhhh.org>
1518
1519 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
1520 supposed to be callee-saved.
1521 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
1522 return buffer for odd-size structs.
1523
15242009-06-16 Andreas Tobler <a.tobler@schweiz.org>
1525
1526 PR libffi/40444
1527 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
1528 allow_stack_execute for Darwin.
1529
15302009-06-16 Andrew Haley <aph@redhat.com>
1531
1532 * configure.ac (TARGETDIR): Add missing blank lines.
1533 * configure: Regenerate.
1534
15352009-06-16 Andrew Haley <aph@redhat.com>
1536
1537 * testsuite/libffi.call/cls_align_sint64.c,
1538 testsuite/libffi.call/cls_align_uint64.c,
1539 testsuite/libffi.call/cls_longdouble_va.c,
1540 testsuite/libffi.call/cls_ulonglong.c,
1541 testsuite/libffi.call/return_ll1.c,
1542 testsuite/libffi.call/stret_medium2.c: Fix printf format
1543 specifiers.
1544 * testsuite/libffi.call/ffitest.h,
1545 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
1546
15472009-06-15 Andrew Haley <aph@redhat.com>
1548
1549 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
1550 * testsuite/libffi.call/err_bad_abi.c: Likewise.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001551
Anthony Greenc6dddbd2009-10-04 08:11:33 -040015522009-06-12 Andrew Haley <aph@redhat.com>
1553
1554 * Makefile.am: Remove info_TEXINFOS.
1555
15562009-06-12 Andrew Haley <aph@redhat.com>
1557
1558 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
1559 testsuite/libffi.call/cls_align_uint64.c,
1560 testsuite/libffi.call/cls_ulonglong.c,
1561 testsuite/libffi.call/return_ll1.c,
1562 testsuite/libffi.call/stret_medium2.c: Fix printf format
1563 specifiers.
1564 testsuite/libffi.special/unwindtest.cc: include stdint.h.
1565
15662009-06-11 Timothy Wall <twall@users.sf.net>
1567
1568 * Makefile.am,
Anthony Green0cfe60e2009-12-29 10:06:04 -05001569 configure.ac,
1570 include/ffi.h.in,
1571 include/ffi_common.h,
1572 src/closures.c,
1573 src/dlmalloc.c,
1574 src/x86/ffi.c,
1575 src/x86/ffitarget.h,
1576 src/x86/win64.S (new),
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001577 README: Added win64 support (mingw or MSVC)
Anthony Green0cfe60e2009-12-29 10:06:04 -05001578 * Makefile.in,
1579 include/Makefile.in,
1580 man/Makefile.in,
1581 testsuite/Makefile.in,
1582 configure,
1583 aclocal.m4: Regenerated
1584 * ltcf-c.sh: properly escape cygwin/w32 path
1585 * man/ffi_call.3: Clarify size requirements for return value.
1586 * src/x86/ffi64.c: Fix filename in comment.
1587 * src/x86/win32.S: Remove unused extern.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001588
Anthony Green0cfe60e2009-12-29 10:06:04 -05001589 * testsuite/libffi.call/closure_fn0.c,
1590 testsuite/libffi.call/closure_fn1.c,
1591 testsuite/libffi.call/closure_fn2.c,
1592 testsuite/libffi.call/closure_fn3.c,
1593 testsuite/libffi.call/closure_fn4.c,
1594 testsuite/libffi.call/closure_fn5.c,
1595 testsuite/libffi.call/closure_fn6.c,
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001596 testsuite/libffi.call/closure_stdcall.c,
1597 testsuite/libffi.call/cls_12byte.c,
1598 testsuite/libffi.call/cls_16byte.c,
1599 testsuite/libffi.call/cls_18byte.c,
1600 testsuite/libffi.call/cls_19byte.c,
1601 testsuite/libffi.call/cls_1_1byte.c,
1602 testsuite/libffi.call/cls_20byte.c,
1603 testsuite/libffi.call/cls_20byte1.c,
1604 testsuite/libffi.call/cls_24byte.c,
1605 testsuite/libffi.call/cls_2byte.c,
1606 testsuite/libffi.call/cls_3_1byte.c,
1607 testsuite/libffi.call/cls_3byte1.c,
1608 testsuite/libffi.call/cls_3byte2.c,
1609 testsuite/libffi.call/cls_4_1byte.c,
1610 testsuite/libffi.call/cls_4byte.c,
1611 testsuite/libffi.call/cls_5_1_byte.c,
1612 testsuite/libffi.call/cls_5byte.c,
1613 testsuite/libffi.call/cls_64byte.c,
1614 testsuite/libffi.call/cls_6_1_byte.c,
1615 testsuite/libffi.call/cls_6byte.c,
1616 testsuite/libffi.call/cls_7_1_byte.c,
1617 testsuite/libffi.call/cls_7byte.c,
1618 testsuite/libffi.call/cls_8byte.c,
1619 testsuite/libffi.call/cls_9byte1.c,
1620 testsuite/libffi.call/cls_9byte2.c,
1621 testsuite/libffi.call/cls_align_double.c,
1622 testsuite/libffi.call/cls_align_float.c,
1623 testsuite/libffi.call/cls_align_longdouble.c,
1624 testsuite/libffi.call/cls_align_longdouble_split.c,
1625 testsuite/libffi.call/cls_align_longdouble_split2.c,
1626 testsuite/libffi.call/cls_align_pointer.c,
1627 testsuite/libffi.call/cls_align_sint16.c,
1628 testsuite/libffi.call/cls_align_sint32.c,
1629 testsuite/libffi.call/cls_align_sint64.c,
1630 testsuite/libffi.call/cls_align_uint16.c,
1631 testsuite/libffi.call/cls_align_uint32.c,
1632 testsuite/libffi.call/cls_align_uint64.c,
1633 testsuite/libffi.call/cls_dbls_struct.c,
1634 testsuite/libffi.call/cls_double.c,
1635 testsuite/libffi.call/cls_double_va.c,
1636 testsuite/libffi.call/cls_float.c,
1637 testsuite/libffi.call/cls_longdouble.c,
1638 testsuite/libffi.call/cls_longdouble_va.c,
1639 testsuite/libffi.call/cls_multi_schar.c,
1640 testsuite/libffi.call/cls_multi_sshort.c,
1641 testsuite/libffi.call/cls_multi_sshortchar.c,
1642 testsuite/libffi.call/cls_multi_uchar.c,
1643 testsuite/libffi.call/cls_multi_ushort.c,
1644 testsuite/libffi.call/cls_multi_ushortchar.c,
1645 testsuite/libffi.call/cls_pointer.c,
1646 testsuite/libffi.call/cls_pointer_stack.c,
1647 testsuite/libffi.call/cls_schar.c,
1648 testsuite/libffi.call/cls_sint.c,
1649 testsuite/libffi.call/cls_sshort.c,
1650 testsuite/libffi.call/cls_uchar.c,
1651 testsuite/libffi.call/cls_uint.c,
1652 testsuite/libffi.call/cls_ulonglong.c,
1653 testsuite/libffi.call/cls_ushort.c,
1654 testsuite/libffi.call/err_bad_abi.c,
1655 testsuite/libffi.call/err_bad_typedef.c,
1656 testsuite/libffi.call/float2.c,
1657 testsuite/libffi.call/huge_struct.c,
1658 testsuite/libffi.call/nested_struct.c,
1659 testsuite/libffi.call/nested_struct1.c,
1660 testsuite/libffi.call/nested_struct10.c,
1661 testsuite/libffi.call/nested_struct2.c,
1662 testsuite/libffi.call/nested_struct3.c,
1663 testsuite/libffi.call/nested_struct4.c,
1664 testsuite/libffi.call/nested_struct5.c,
1665 testsuite/libffi.call/nested_struct6.c,
1666 testsuite/libffi.call/nested_struct7.c,
1667 testsuite/libffi.call/nested_struct8.c,
1668 testsuite/libffi.call/nested_struct9.c,
1669 testsuite/libffi.call/problem1.c,
1670 testsuite/libffi.call/return_ldl.c,
1671 testsuite/libffi.call/return_ll1.c,
1672 testsuite/libffi.call/stret_large.c,
1673 testsuite/libffi.call/stret_large2.c,
1674 testsuite/libffi.call/stret_medium.c,
1675 testsuite/libffi.call/stret_medium2.c,
Anthony Green0cfe60e2009-12-29 10:06:04 -05001676 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
1677 of checking for MMAP. Use intptr_t instead of long casts.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001678
16792009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
1680
1681 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
1682 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
1683 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
1684
16852009-06-09 Andrew Haley <aph@redhat.com>
1686
1687 * src/x86/freebsd.S: Add missing file.
1688
16892009-06-08 Andrew Haley <aph@redhat.com>
1690
1691 Import from libffi 3.0.8:
1692
1693 * doc/libffi.texi: New file.
1694 * doc/libffi.info: Likewise.
1695 * doc/stamp-vti: Likewise.
1696 * man/Makefile.am: New file.
1697 * man/ffi_call.3: New file.
1698
1699 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
1700 src/dlmalloc.c.
1701 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
1702
1703 * configure.ac: Bump version to 3.0.8.
1704 parisc*-*-linux*: Add.
1705 i386-*-freebsd* | i386-*-openbsd*: Add.
1706 powerpc-*-beos*: Add.
1707 AM_CONDITIONAL X86_FREEBSD: Add.
1708 AC_CONFIG_FILES: Add man/Makefile.
1709
1710 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
1711
17122009-06-08 Andrew Haley <aph@redhat.com>
1713
1714 * README: Import from libffi 3.0.8.
1715
17162009-06-08 Andrew Haley <aph@redhat.com>
1717
1718 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
1719 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
1720 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
1721 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
1722
1723 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
1724 * testsuite/libffi.call/stret_medium.c: Likewise.
1725 * testsuite/libffi.call/stret_large2.c: Likewise.
1726 * testsuite/libffi.call/stret_large.c: Likewise.
1727
17282008-12-26 Timothy Wall <twall@users.sf.net>
1729
Anthony Green0cfe60e2009-12-29 10:06:04 -05001730 * testsuite/libffi.call/cls_longdouble.c,
1731 testsuite/libffi.call/cls_longdouble_va.c,
1732 testsuite/libffi.call/cls_align_longdouble.c,
1733 testsuite/libffi.call/cls_align_longdouble_split.c,
1734 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
1735 failures on x86_64 cygwin/mingw.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001736
17372008-12-22 Timothy Wall <twall@users.sf.net>
1738
Anthony Green0cfe60e2009-12-29 10:06:04 -05001739 * testsuite/libffi.call/closure_fn0.c,
1740 testsuite/libffi.call/closure_fn1.c,
1741 testsuite/libffi.call/closure_fn2.c,
1742 testsuite/libffi.call/closure_fn3.c,
1743 testsuite/libffi.call/closure_fn4.c,
1744 testsuite/libffi.call/closure_fn5.c,
1745 testsuite/libffi.call/closure_fn6.c,
1746 testsuite/libffi.call/closure_loc_fn0.c,
1747 testsuite/libffi.call/closure_stdcall.c,
1748 testsuite/libffi.call/cls_align_pointer.c,
1749 testsuite/libffi.call/cls_pointer.c,
1750 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
1751 pointer to integer (intptr_t).
1752 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001753
17542008-07-24 Anthony Green <green@redhat.com>
1755
Anthony Green0cfe60e2009-12-29 10:06:04 -05001756 * testsuite/libffi.call/cls_dbls_struct.c,
1757 testsuite/libffi.call/cls_double_va.c,
1758 testsuite/libffi.call/cls_longdouble.c,
1759 testsuite/libffi.call/cls_longdouble_va.c,
1760 testsuite/libffi.call/cls_pointer.c,
1761 testsuite/libffi.call/cls_pointer_stack.c,
1762 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
1763 compiler warnings.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001764
17652008-03-04 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001766 Blake Chaffin
1767 hos@tamanegi.org
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001768
Anthony Green0cfe60e2009-12-29 10:06:04 -05001769 * testsuite/libffi.call/cls_align_longdouble_split2.c
1770 testsuite/libffi.call/cls_align_longdouble_split.c
1771 testsuite/libffi.call/cls_dbls_struct.c
1772 testsuite/libffi.call/cls_double_va.c
1773 testsuite/libffi.call/cls_longdouble.c
1774 testsuite/libffi.call/cls_longdouble_va.c
1775 testsuite/libffi.call/cls_pointer.c
1776 testsuite/libffi.call/cls_pointer_stack.c
1777 testsuite/libffi.call/err_bad_abi.c
1778 testsuite/libffi.call/err_bad_typedef.c
1779 testsuite/libffi.call/stret_large2.c
1780 testsuite/libffi.call/stret_large.c
1781 testsuite/libffi.call/stret_medium2.c
1782 testsuite/libffi.call/stret_medium.c: New tests from Apple.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001783
17842009-06-05 Andrew Haley <aph@redhat.com>
1785
1786 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
1787 libffi.
1788
17892009-06-04 Andrew Haley <aph@redhat.com>
1790
1791 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
1792 stdcall changes.
1793
17942008-02-26 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001795 Thomas Heller <theller@ctypes.org>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001796
Anthony Green0cfe60e2009-12-29 10:06:04 -05001797 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
1798 comment.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001799
18002008-02-03 Timothy Wall <twall@users.sf.net>
1801
Anthony Green0cfe60e2009-12-29 10:06:04 -05001802 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
1803 offset based on code pointer, not data pointer.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001804
18052008-01-31 Timothy Wall <twall@users.sf.net>
1806
Anthony Green0cfe60e2009-12-29 10:06:04 -05001807 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
1808 closures.
1809 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
1810 closures.
1811 * src/x86/win32.S: Add assembly for stdcall closure.
1812 * src/x86/ffi.c: Initialize stdcall closure trampoline.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001813
18142009-06-04 Andrew Haley <aph@redhat.com>
1815
1816 * include/ffi.h.in: Change void (*)() to void (*)(void).
1817 * src/x86/ffi.c: Likewise.
1818
18192009-06-04 Andrew Haley <aph@redhat.com>
1820
1821 * src/powerpc/ppc_closure.S: Insert licence header.
1822 * src/powerpc/linux64_closure.S: Likewise.
1823 * src/m68k/sysv.S: Likewise.
1824
1825 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
1826 * src/powerpc/ffi.c: Likewise.
1827 * src/powerpc/ffi_darwin.c: Likewise.
1828 * src/m32r/ffi.c: Likewise.
1829 * src/sh64/ffi.c: Likewise.
1830 * src/x86/ffi64.c: Likewise.
1831 * src/alpha/ffi.c: Likewise.
1832 * src/alpha/osf.S: Likewise.
1833 * src/frv/ffi.c: Likewise.
1834 * src/s390/ffi.c: Likewise.
1835 * src/pa/ffi.c: Likewise.
1836 * src/pa/hpux32.S: Likewise.
1837 * src/ia64/unix.S: Likewise.
1838 * src/ia64/ffi.c: Likewise.
1839 * src/sparc/ffi.c: Likewise.
1840 * src/mips/ffi.c: Likewise.
1841 * src/sh/ffi.c: Likewise.
1842
18432008-02-15 David Daney <ddaney@avtrex.com>
1844
Anthony Green0cfe60e2009-12-29 10:06:04 -05001845 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
1846 Define (conditionally), and use it to include cachectl.h.
1847 (ffi_prep_closure_loc): Fix cache flushing.
1848 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001849
18502009-06-04 Andrew Haley <aph@redhat.com>
1851
1852 include/ffi.h.in,
1853 src/arm/ffitarget.h,
1854 src/arm/ffi.c,
1855 src/arm/sysv.S,
1856 src/powerpc/ffitarget.h,
1857 src/closures.c,
1858 src/sh64/ffitarget.h,
1859 src/sh64/ffi.c,
1860 src/sh64/sysv.S,
1861 src/types.c,
1862 src/x86/ffi64.c,
1863 src/x86/ffitarget.h,
1864 src/x86/win32.S,
1865 src/x86/darwin.S,
1866 src/x86/ffi.c,
1867 src/x86/sysv.S,
1868 src/x86/unix64.S,
1869 src/alpha/ffitarget.h,
1870 src/alpha/ffi.c,
1871 src/alpha/osf.S,
1872 src/m68k/ffitarget.h,
1873 src/frv/ffitarget.h,
1874 src/frv/ffi.c,
1875 src/s390/ffitarget.h,
1876 src/s390/sysv.S,
1877 src/cris/ffitarget.h,
1878 src/pa/linux.S,
1879 src/pa/ffitarget.h,
1880 src/pa/ffi.c,
1881 src/raw_api.c,
1882 src/ia64/ffitarget.h,
1883 src/ia64/unix.S,
1884 src/ia64/ffi.c,
1885 src/ia64/ia64_flags.h,
1886 src/java_raw_api.c,
1887 src/debug.c,
1888 src/sparc/v9.S,
1889 src/sparc/ffitarget.h,
1890 src/sparc/ffi.c,
1891 src/sparc/v8.S,
1892 src/mips/ffitarget.h,
1893 src/mips/n32.S,
1894 src/mips/o32.S,
1895 src/mips/ffi.c,
1896 src/prep_cif.c,
1897 src/sh/ffitarget.h,
1898 src/sh/ffi.c,
1899 src/sh/sysv.S: Update license text.
1900
19012009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
1902
1903 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
1904 (.eh_frame): Add FDE for it.
1905
19062009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
1907
1908 * configure.ac: Also check if assembler supports pc-relative
1909 relocs on X86_WIN32 targets.
1910 * configure: Regenerate.
1911 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
1912 (_ffi_call_SYSV): Add missing function type symbol .def and
1913 add EH markup labels.
1914 (_ffi_call_STDCALL): Likewise.
1915 (_ffi_closure_SYSV): Likewise.
1916 (_ffi_closure_raw_SYSV): Likewise.
1917 (.eh_frame): Add hand-crafted EH data.
1918
19192009-04-09 Jakub Jelinek <jakub@redhat.com>
1920
1921 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
1922 version 3 of the GNU General Public License and to point readers
1923 at the COPYING3 file and the FSF's license web page.
1924 * testsuite/libffi.call/call.exp: Likewise.
1925 * testsuite/libffi.special/special.exp: Likewise.
1926
19272009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1928
1929 * configure: Regenerate.
1930
19312008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1932
1933 PR libffi/26048
1934 * configure.ac (HAVE_AS_X86_PCREL): New test.
1935 * configure: Regenerate.
1936 * fficonfig.h.in: Regenerate.
1937 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
1938 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
1939 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
1940 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1941 * src/x86/unix64.S (.Lstore_table): Move to .text section.
1942 (.Lload_table): Likewise.
1943 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1944
19452008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1946
1947 * configure: Regenerate.
1948
19492008-11-21 Eric Botcazou <ebotcazou@adacore.com>
1950
1951 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
1952 signed/unsigned int8/16 return values.
1953 * src/sparc/v8.S (ffi_call_v8): Likewise.
1954 (ffi_closure_v8): Likewise.
1955
19562008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001957 Steve Ellcey <sje@cup.hp.com>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001958
1959 * configure: Regenerate for new libtool.
1960 * Makefile.in: Ditto.
1961 * include/Makefile.in: Ditto.
1962 * aclocal.m4: Ditto.
1963
19642008-08-25 Andreas Tobler <a.tobler@schweiz.org>
1965
1966 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
1967 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
1968 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
1969 Adjust copyright notice.
1970 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
1971 register or two register to use for FFI_SYSV structs.
1972 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
1973 (ffi_closure_helper_SYSV): Fix the return type for
1974 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
1975 Adjust copyright notice.
1976
19772008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
1978
1979 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
1980 int.
1981
19822008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1983
1984 * configure: Regenerate.
1985 * include/Makefile.in: Regenerate.
1986 * testsuite/Makefile.in: Regenerate.
1987
19882008-06-07 Joseph Myers <joseph@codesourcery.com>
1989
1990 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
1991 powerpc-*-beos*): Remove.
1992 * configure: Regenerate.
1993
19942008-05-09 Julian Brown <julian@codesourcery.com>
1995
1996 * Makefile.am (LTLDFLAGS): New.
1997 (libffi_la_LDFLAGS): Use above.
1998 * Makefile.in: Regenerate.
1999
20002008-04-18 Paolo Bonzini <bonzini@gnu.org>
2001
2002 PR bootstrap/35457
2003 * aclocal.m4: Regenerate.
2004 * configure: Regenerate.
2005
20062008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
2007
2008 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2009 * src/sh64/sysv.S: Likewise.
2010
20112008-03-26 Daniel Jacobowitz <dan@debian.org>
2012
2013 * src/arm/sysv.S: Fix ARM comment marker.
2014
20152008-03-26 Jakub Jelinek <jakub@redhat.com>
2016
2017 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2018 * src/s390/sysv.S: Likewise.
2019 * src/powerpc/ppc_closure.S: Likewise.
2020 * src/powerpc/sysv.S: Likewise.
2021 * src/x86/unix64.S: Likewise.
2022 * src/x86/sysv.S: Likewise.
2023 * src/sparc/v8.S: Likewise.
2024 * src/sparc/v9.S: Likewise.
2025 * src/m68k/sysv.S: Likewise.
2026 * src/arm/sysv.S: Likewise.
2027
20282008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2029
2030 * aclocal.m4: Regenerate.
2031 * configure: Likewise.
2032 * Makefile.in: Likewise.
2033 * include/Makefile.in: Likewise.
2034 * testsuite/Makefile.in: Likewise.
2035
20362008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
2037 Andreas Tobler <a.tobler@schweiz.org>
2038
2039 * configure.ac: Add amd64-*-freebsd* target.
2040 * configure: Regenerate.
2041
20422008-01-30 H.J. Lu <hongjiu.lu@intel.com>
2043
2044 PR libffi/34612
2045 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2046 returning struct.
2047
2048 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2049 tests.
2050
20512008-01-24 David Edelsohn <edelsohn@gnu.org>
2052
2053 * configure: Regenerate.
2054
20552008-01-06 Andreas Tobler <a.tobler@schweiz.org>
2056
2057 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2058
20592008-01-05 Andreas Tobler <a.tobler@schweiz.org>
2060
2061 PR testsuite/32843
2062 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2063 signed/unsigned int8/16 for X86_DARWIN.
2064 Updated copyright info.
2065 Handle one and two byte structs with special cif->flags.
2066 * src/x86/ffitarget.h: Add special types for one and two byte structs.
2067 Updated copyright info.
2068 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2069 sysv.S
2070 Remove code to pop args from the stack after call.
2071 Special-case signed/unsigned for int8/16, one and two byte structs.
2072 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2073 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2074 FFI_TYPE_SINT32.
2075 Updated copyright info.
2076
20772007-12-08 David Daney <ddaney@avtrex.com>
2078
Anthony Green0cfe60e2009-12-29 10:06:04 -05002079 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002080 SUBU, add with ADDU and use smaller code sequences.
2081
20822007-12-07 David Daney <ddaney@avtrex.com>
2083
2084 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2085 type.
2086
20872007-12-06 David Daney <ddaney@avtrex.com>
2088
2089 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2090 defined.
2091 (ffi_java_raw): New typedef.
2092 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2093 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2094 ffi_java_raw.
2095 (ffi_java_raw_closure) : Same.
2096 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2097 parameter types.
2098 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
2099 FFI_SIZEOF_JAVA_RAW.
2100 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2101 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2102 sizeof(ffi_java_raw) for alignment calculations.
2103 (ffi_java_ptrarray_to_raw): Same.
2104 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
Anthony Green0cfe60e2009-12-29 10:06:04 -05002105 if FFI_SIZEOF_JAVA_RAW == 4.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002106 (ffi_java_raw_to_rvalue): Same.
2107 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2108 (ffi_java_translate_args): Same.
2109 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2110 parameter types.
2111 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2112
21132007-12-06 David Daney <ddaney@avtrex.com>
2114
Anthony Green0cfe60e2009-12-29 10:06:04 -05002115 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002116 pointer values.
2117
21182007-12-01 Andreas Tobler <a.tobler@schweiz.org>
2119
2120 PR libffi/31937
2121 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2122 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2123 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2124 set the NUM_FPR_ARG_REGISTERS according to.
2125 Add support for potential soft-float support under hard-float
2126 architecture.
2127 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2128 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2129 to the FFI_LINUX_SOFT_FLOAT ABI.
2130 (ffi_prep_cif_machdep): Likewise.
2131 (ffi_closure_helper_SYSV): Likewise.
2132 * src/powerpc/ppc_closure.S: Make sure not to store float/double
2133 on archs where __NO_FPRS__ is true.
2134 Add FFI_TYPE_UINT128 support.
2135 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2136 Adjust copyright notice.
2137
21382007-11-25 Andreas Tobler <a.tobler@schweiz.org>
2139
2140 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2141 * include/ffi_common.h: ... here.
2142 Update copyright.
2143
21442007-11-17 Andreas Tobler <a.tobler@schweiz.org>
2145
2146 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2147 * src/powerpc/linux64.S: Likewise.
2148 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2149 * testsuite/libffi.call/return_ldl.c: New test.
2150
21512007-09-04 <aph@redhat.com>
2152
2153 * src/arm/sysv.S (UNWIND): New.
2154 (Whole file): Conditionally compile unwinder directives.
2155 * src/arm/sysv.S: Add unwinder directives.
2156
2157 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2158 Only treat r0 as a struct address if we're actually returning a
2159 struct by address.
2160 Only copy the bytes that are actually within a struct.
2161 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2162 is returned in r0, not passed by address.
2163 (ffi_call): Allocate a word-sized temporary for the case where
2164 a composite is returned in r0.
2165 (ffi_prep_incoming_args_SYSV): Align as necessary.
2166
21672007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
2168
Anthony Green0cfe60e2009-12-29 10:06:04 -05002169 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002170 directly using the sys_cacheflush syscall.
2171
21722007-07-27 Andrew Haley <aph@redhat.com>
2173
2174 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2175
21762007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
2177
2178 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2179 * configure.ac: Likewise.
2180 * Makefile.in: Regenerate.
2181 * include/Makefile.in: Likewise.
2182 * testsuite/Makefile.in: Likewise.
2183 * configure: Likewise.
2184
21852007-08-24 David Daney <ddaney@avtrex.com>
2186
2187 * testsuite/libffi.call/return_sl.c: New test.
2188
21892007-08-10 David Daney <ddaney@avtrex.com>
2190
2191 * testsuite/libffi.call/cls_multi_ushort.c,
2192 testsuite/libffi.call/cls_align_uint16.c,
2193 testsuite/libffi.call/nested_struct1.c,
2194 testsuite/libffi.call/nested_struct3.c,
2195 testsuite/libffi.call/cls_7_1_byte.c,
2196 testsuite/libffi.call/nested_struct5.c,
2197 testsuite/libffi.call/cls_double.c,
2198 testsuite/libffi.call/nested_struct7.c,
2199 testsuite/libffi.call/cls_sint.c,
2200 testsuite/libffi.call/nested_struct9.c,
2201 testsuite/libffi.call/cls_20byte1.c,
2202 testsuite/libffi.call/cls_multi_sshortchar.c,
2203 testsuite/libffi.call/cls_align_sint64.c,
2204 testsuite/libffi.call/cls_3byte2.c,
2205 testsuite/libffi.call/cls_multi_schar.c,
2206 testsuite/libffi.call/cls_multi_uchar.c,
2207 testsuite/libffi.call/cls_19byte.c,
2208 testsuite/libffi.call/cls_9byte1.c,
2209 testsuite/libffi.call/cls_align_float.c,
2210 testsuite/libffi.call/closure_fn1.c,
2211 testsuite/libffi.call/problem1.c,
2212 testsuite/libffi.call/closure_fn3.c,
2213 testsuite/libffi.call/cls_sshort.c,
2214 testsuite/libffi.call/closure_fn5.c,
2215 testsuite/libffi.call/cls_align_double.c,
2216 testsuite/libffi.call/nested_struct.c,
2217 testsuite/libffi.call/cls_2byte.c,
2218 testsuite/libffi.call/nested_struct10.c,
2219 testsuite/libffi.call/cls_4byte.c,
2220 testsuite/libffi.call/cls_6byte.c,
2221 testsuite/libffi.call/cls_8byte.c,
2222 testsuite/libffi.call/cls_multi_sshort.c,
2223 testsuite/libffi.call/cls_align_sint16.c,
2224 testsuite/libffi.call/cls_align_uint32.c,
2225 testsuite/libffi.call/cls_20byte.c,
2226 testsuite/libffi.call/cls_float.c,
2227 testsuite/libffi.call/nested_struct2.c,
2228 testsuite/libffi.call/cls_5_1_byte.c,
2229 testsuite/libffi.call/nested_struct4.c,
2230 testsuite/libffi.call/cls_24byte.c,
2231 testsuite/libffi.call/nested_struct6.c,
2232 testsuite/libffi.call/cls_64byte.c,
2233 testsuite/libffi.call/nested_struct8.c,
2234 testsuite/libffi.call/cls_uint.c,
2235 testsuite/libffi.call/cls_multi_ushortchar.c,
2236 testsuite/libffi.call/cls_schar.c,
2237 testsuite/libffi.call/cls_uchar.c,
2238 testsuite/libffi.call/cls_align_uint64.c,
2239 testsuite/libffi.call/cls_ulonglong.c,
2240 testsuite/libffi.call/cls_align_longdouble.c,
2241 testsuite/libffi.call/cls_1_1byte.c,
2242 testsuite/libffi.call/cls_12byte.c,
2243 testsuite/libffi.call/cls_3_1byte.c,
2244 testsuite/libffi.call/cls_3byte1.c,
2245 testsuite/libffi.call/cls_4_1byte.c,
2246 testsuite/libffi.call/cls_6_1_byte.c,
2247 testsuite/libffi.call/cls_16byte.c,
2248 testsuite/libffi.call/cls_18byte.c,
2249 testsuite/libffi.call/closure_fn0.c,
2250 testsuite/libffi.call/cls_9byte2.c,
2251 testsuite/libffi.call/closure_fn2.c,
2252 testsuite/libffi.call/closure_fn4.c,
2253 testsuite/libffi.call/cls_ushort.c,
2254 testsuite/libffi.call/closure_fn6.c,
2255 testsuite/libffi.call/cls_5byte.c,
2256 testsuite/libffi.call/cls_align_pointer.c,
2257 testsuite/libffi.call/cls_7byte.c,
2258 testsuite/libffi.call/cls_align_sint32.c,
2259 testsuite/libffi.special/unwindtest_ffi_call.cc,
2260 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2261
22622007-08-10 David Daney <ddaney@avtrex.com>
2263
2264 PR libffi/28313
2265 * configure.ac: Don't treat mips64 as a special case.
2266 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2267 * configure: Regenerate
2268 * Makefile.in: Ditto.
2269 * fficonfig.h.in: Ditto.
2270 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2271 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2272 (FFI_DEFAULT_ABI): Set for n64 case.
2273 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2274 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2275 (ffi_closure_N32): New function.
2276 (.eh_frame): New section
2277 * src/mips/o32.S: Clean up comments.
2278 (ffi_closure_O32): Pass ffi_closure parameter in $12.
2279 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2280 _MIPS_SIM == _ABIN32 throughout.
2281 (FFI_MIPS_STOP_HERE): New, use in place of
2282 ffi_stop_here.
2283 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
2284 to support n32/n64 ABIs.
2285 (calc_n32_struct_flags): Rewrite.
2286 (calc_n32_return_struct_flags): Remove unused variable. Reverse
2287 position of flag bits.
2288 (ffi_prep_cif_machdep): Rewrite n32 portion.
2289 (ffi_call): Enable for n64. Add special handling for small structure
2290 return values.
2291 (ffi_prep_closure_loc): Add n32 and n64 support.
2292 (ffi_closure_mips_inner_O32): Add cast to silence warning.
2293 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2294
22952007-08-08 David Daney <ddaney@avtrex.com>
2296
2297 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2298 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2299 specifiers.
2300 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2301 * testsuite/libffi.call/cls_sint.c (main): Ditto.
2302 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2303 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2304 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2305 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2306 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2307 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2308 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2309 * testsuite/libffi.call/return_fl3.c (main): Ditto.
2310 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2311 * testsuite/libffi.call/nested_struct.c (main): Ditto.
2312 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2313 * testsuite/libffi.call/return_ll1.c (main): Ditto.
2314 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2315 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2316 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2317 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2318 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2319 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2320 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2321 * testsuite/libffi.call/cls_uint.c (main): Ditto.
2322 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2323 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2324 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2325 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2326 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2327 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2328 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2329 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2330 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2331
23322007-08-07 Andrew Haley <aph@redhat.com>
2333
2334 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2335 checkin.
2336
23372007-08-06 Andrew Haley <aph@redhat.com>
2338
2339 PR testsuite/32843
2340 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2341 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2342 FFI_TYPE_SINT32.
2343
23442007-08-02 David Daney <ddaney@avtrex.com>
2345
2346 * testsuite/libffi.call/return_ul.c (main): Define return type as
2347 ffi_arg. Use proper printf conversion specifier.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002348
Anthony Greenc6dddbd2009-10-04 08:11:33 -040023492007-07-30 Andrew Haley <aph@redhat.com>
2350
2351 PR testsuite/32843
2352 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2353 signed/unsigned int8/16.
2354 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2355 Use a jump table.
2356 Remove code to pop args from the stack after call.
2357 Special-case signed/unsigned int8/16.
2358 * testsuite/libffi.call/return_sc.c (main): Revert.
2359
23602007-07-26 Richard Guenther <rguenther@suse.de>
2361
2362 PR testsuite/32843
2363 * testsuite/libffi.call/return_sc.c (main): Verify call
2364 result as signed char, not ffi_arg.
2365
23662007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2367
2368 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2369 * configure: Regenerate.
2370
23712007-07-11 David Daney <ddaney@avtrex.com>
2372
2373 * src/mips/ffi.c: Don't include sys/cachectl.h.
2374 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2375 cacheflush().
2376
23772007-05-18 Aurelien Jarno <aurelien@aurel32.net>
2378
2379 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2380 from (ffi_prep_closure): ... this.
2381 (FFI_INIT_TRAMPOLINE): Adjust.
2382
23832005-12-31 Phil Blundell <pb@reciva.com>
2384
Anthony Green0cfe60e2009-12-29 10:06:04 -05002385 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2386 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002387 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2388 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2389 (FFI_CLOSURES): Enable closure support.
2390
23912007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
2392
Anthony Green0cfe60e2009-12-29 10:06:04 -05002393 * testsuite/libffi.call/cls_multi_ushort.c,
2394 testsuite/libffi.call/cls_align_uint16.c,
2395 testsuite/libffi.call/nested_struct1.c,
2396 testsuite/libffi.call/nested_struct3.c,
2397 testsuite/libffi.call/cls_7_1_byte.c,
2398 testsuite/libffi.call/cls_double.c,
2399 testsuite/libffi.call/nested_struct5.c,
2400 testsuite/libffi.call/nested_struct7.c,
2401 testsuite/libffi.call/cls_sint.c,
2402 testsuite/libffi.call/nested_struct9.c,
2403 testsuite/libffi.call/cls_20byte1.c,
2404 testsuite/libffi.call/cls_multi_sshortchar.c,
2405 testsuite/libffi.call/cls_align_sint64.c,
2406 testsuite/libffi.call/cls_3byte2.c,
2407 testsuite/libffi.call/cls_multi_schar.c,
2408 testsuite/libffi.call/cls_multi_uchar.c,
2409 testsuite/libffi.call/cls_19byte.c,
2410 testsuite/libffi.call/cls_9byte1.c,
2411 testsuite/libffi.call/cls_align_float.c,
2412 testsuite/libffi.call/closure_fn1.c,
2413 testsuite/libffi.call/problem1.c,
2414 testsuite/libffi.call/closure_fn3.c,
2415 testsuite/libffi.call/cls_sshort.c,
2416 testsuite/libffi.call/closure_fn5.c,
2417 testsuite/libffi.call/cls_align_double.c,
2418 testsuite/libffi.call/cls_2byte.c,
2419 testsuite/libffi.call/nested_struct.c,
2420 testsuite/libffi.call/nested_struct10.c,
2421 testsuite/libffi.call/cls_4byte.c,
2422 testsuite/libffi.call/cls_6byte.c,
2423 testsuite/libffi.call/cls_8byte.c,
2424 testsuite/libffi.call/cls_multi_sshort.c,
2425 testsuite/libffi.call/cls_align_uint32.c,
2426 testsuite/libffi.call/cls_align_sint16.c,
2427 testsuite/libffi.call/cls_float.c,
2428 testsuite/libffi.call/cls_20byte.c,
2429 testsuite/libffi.call/cls_5_1_byte.c,
2430 testsuite/libffi.call/nested_struct2.c,
2431 testsuite/libffi.call/cls_24byte.c,
2432 testsuite/libffi.call/nested_struct4.c,
2433 testsuite/libffi.call/nested_struct6.c,
2434 testsuite/libffi.call/cls_64byte.c,
2435 testsuite/libffi.call/nested_struct8.c,
2436 testsuite/libffi.call/cls_uint.c,
2437 testsuite/libffi.call/cls_multi_ushortchar.c,
2438 testsuite/libffi.call/cls_schar.c,
2439 testsuite/libffi.call/cls_uchar.c,
2440 testsuite/libffi.call/cls_align_uint64.c,
2441 testsuite/libffi.call/cls_ulonglong.c,
2442 testsuite/libffi.call/cls_align_longdouble.c,
2443 testsuite/libffi.call/cls_1_1byte.c,
2444 testsuite/libffi.call/cls_12byte.c,
2445 testsuite/libffi.call/cls_3_1byte.c,
2446 testsuite/libffi.call/cls_3byte1.c,
2447 testsuite/libffi.call/cls_4_1byte.c,
2448 testsuite/libffi.call/cls_6_1_byte.c,
2449 testsuite/libffi.call/cls_16byte.c,
2450 testsuite/libffi.call/cls_18byte.c,
2451 testsuite/libffi.call/closure_fn0.c,
2452 testsuite/libffi.call/cls_9byte2.c,
2453 testsuite/libffi.call/closure_fn2.c,
2454 testsuite/libffi.call/closure_fn4.c,
2455 testsuite/libffi.call/cls_ushort.c,
2456 testsuite/libffi.call/closure_fn6.c,
2457 testsuite/libffi.call/cls_5byte.c,
2458 testsuite/libffi.call/cls_align_pointer.c,
2459 testsuite/libffi.call/cls_7byte.c,
2460 testsuite/libffi.call/cls_align_sint32.c,
2461 testsuite/libffi.special/unwindtest_ffi_call.cc,
2462 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002463
24642007-07-05 H.J. Lu <hongjiu.lu@intel.com>
2465
2466 * aclocal.m4: Regenerated.
2467
24682007-06-02 Paolo Bonzini <bonzini@gnu.org>
2469
2470 * configure: Regenerate.
2471
24722007-05-23 Steve Ellcey <sje@cup.hp.com>
2473
2474 * Makefile.in: Regenerate.
2475 * configure: Regenerate.
2476 * aclocal.m4: Regenerate.
2477 * include/Makefile.in: Regenerate.
2478 * testsuite/Makefile.in: Regenerate.
2479
24802007-05-10 Roman Zippel <zippel@linux-m68k.org>
2481
2482 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
2483 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
2484 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
2485 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2486 (FFI_CLOSURES): Enable closure support.
2487
24882007-05-10 Roman Zippel <zippel@linux-m68k.org>
2489
2490 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
2491 * configure: Regenerate.
2492 * fficonfig.h.in: Regenerate.
2493 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
2494 CFI_OFFSET,CFI_DEF_CFA): New macros.
2495 (ffi_call_SYSV): Add callframe annotation.
2496
24972007-05-10 Roman Zippel <zippel@linux-m68k.org>
2498
2499 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
2500 numerous test suite failures.
2501 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
2502
25032007-04-11 Paolo Bonzini <bonzini@gnu.org>
2504
2505 * Makefile.am (EXTRA_DIST): Bring up to date.
2506 * Makefile.in: Regenerate.
2507 * src/frv/eabi.S: Remove RCS keyword.
2508
25092007-04-06 Richard Henderson <rth@redhat.com>
2510
2511 * configure.ac: Tidy target case.
2512 (HAVE_LONG_DOUBLE): Allow the target to override.
2513 * configure: Regenerate.
2514 * include/ffi.h.in: Don't define ffi_type_foo if
2515 LIBFFI_HIDE_BASIC_TYPES is defined.
2516 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
2517 to ffi_type_double.
2518 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
2519 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
2520 (ffi_type_longdouble): Special case for Alpha. Don't define
2521 if long double == double.
2522
2523 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
2524 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
2525 (ffi_call, ffi_closure_osf_inner): Likewise.
2526 (ffi_closure_osf_inner): Likewise. Mark hidden.
2527 (ffi_call_osf, ffi_closure_osf): Mark hidden.
2528 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
2529 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
2530 (load_table): Handle 128-bit long double.
2531
2532 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
2533
25342007-04-06 Tom Tromey <tromey@redhat.com>
2535
2536 PR libffi/31491:
2537 * README: Fixed bug in example.
2538
25392007-04-03 Jakub Jelinek <jakub@redhat.com>
2540
2541 * src/closures.c: Include sys/statfs.h.
2542 (_GNU_SOURCE): Define on Linux.
2543 (FFI_MMAP_EXEC_SELINUX): Define.
2544 (selinux_enabled): New variable.
2545 (selinux_enabled_check): New function.
2546 (is_selinux_enabled): Define.
2547 (dlmmap): Use it.
2548
25492007-03-24 Uros Bizjak <ubizjak@gmail.com>
2550
2551 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
2552 Use 'volatile float sum' to create sum of floats to avoid false
2553 negative due to excess precision on ix86 targets.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002554 (main): Ditto.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002555
25562007-03-08 Alexandre Oliva <aoliva@redhat.com>
2557
2558 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
2559 patch.
2560 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
2561
25622007-03-07 Alexandre Oliva <aoliva@redhat.com>
2563
2564 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
2565 (ffi_prep_closure_loc): New.
2566 (ffi_prep_raw_closure_loc): New.
2567 (ffi_prep_java_raw_closure_loc): New.
2568 * src/closures.c: New file.
2569 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
2570 Replace sflags with exec_offset.
2571 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
2572 sub_segment_exec_offset): New macros.
2573 (get_segment_flags, set_segment_flags, check_segment_merge): New
2574 macros.
2575 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
2576 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
2577 destroy_mspace): Use new macros.
2578 (sys_alloc): Silence warning.
2579 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
2580 * Makefile.in: Rebuilt.
2581 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
2582 terms of ffi_prep_closure_loc.
2583 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
2584 from...
2585 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
2586 renamed version.
2587 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
2588 adjusted from...
2589 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
2590 the renamed version.
2591 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
2592 (ffi_prep_closure): ... this.
2593 * src/pa/ffi.c: Likewise.
2594 * src/cris/ffi.c: Likewise. Adjust.
2595 * src/frv/ffi.c: Likewise.
2596 * src/ia64/ffi.c: Likewise.
2597 * src/mips/ffi.c: Likewise.
2598 * src/powerpc/ffi_darwin.c: Likewise.
2599 * src/s390/ffi.c: Likewise.
2600 * src/sh/ffi.c: Likewise.
2601 * src/sh64/ffi.c: Likewise.
2602 * src/sparc/ffi.c: Likewise.
2603 * src/x86/ffi64.c: Likewise.
2604 * src/x86/ffi.c: Likewise.
2605 (FFI_INIT_TRAMPOLINE): Adjust.
2606 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
2607 (ffi_prep_raw_closure): ... this.
2608 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
2609 (ffi_prep_closure): ... this.
2610 (flush_icache): Adjust.
2611
26122007-03-07 Alexandre Oliva <aoliva@redhat.com>
2613
2614 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
2615 Lea's malloc.
2616
26172007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2618
2619 * Makefile.am: Add dummy install-pdf target.
2620 * Makefile.in: Regenerate
2621
26222007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
2623
2624 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
2625 ffi_closure_helper_SYSV): Add long double handling.
2626
26272007-02-02 Jakub Jelinek <jakub@redhat.com>
2628
2629 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
2630 immediately after bctrl instruction.
2631
26322007-01-18 Alexandre Oliva <aoliva@redhat.com>
2633
2634 * Makefile.am (all-recursive, install-recursive,
2635 mostlyclean-recursive, clean-recursive, distclean-recursive,
2636 maintainer-clean-recursive): Add missing targets.
2637 * Makefile.in: Rebuilt.
2638
26392006-12-14 Andreas Tobler <a.tobler@schweiz.org>
2640
2641 * configure.ac: Add TARGET for x86_64-*-darwin*.
2642 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
2643 for X86_DARWIN.
2644 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
2645 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
2646 * configure: Regenerate.
2647 * Makefile.in: Regenerate.
2648 * include/Makefile.in: Regenerate.
2649 * testsuite/Makefile.in: Regenerate.
2650 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
2651 ffi_call only.
2652
26532006-12-13 Andreas Tobler <a.tobler@schweiz.org>
2654
2655 * aclocal.m4: Regenerate with aclocal -I .. as written in the
2656 Makefile.am.
2657
26582006-10-31 Geoffrey Keating <geoffk@apple.com>
2659
2660 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
2661 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
2662 Darwin.
2663 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
2664 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
2665
26662006-10-10 Paolo Bonzini <bonzini@gnu.org>
2667 Sandro Tolaini <tolaini@libero.it>
2668
Anthony Green0cfe60e2009-12-29 10:06:04 -05002669 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002670 conditional.
2671 * configure: Regenerated.
2672 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
2673 (EXTRA_DIST): Add src/x86/darwin.S.
2674 * Makefile.in: Regenerated.
2675 * include/Makefile.in: Regenerated.
2676 * testsuite/Makefile.in: Regenerated.
2677
2678 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
2679 X86_WIN32, and additionally align stack to 16 bytes.
2680 * src/x86/darwin.S: New, based on sysv.S.
2681 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
2682
26832006-09-12 David Daney <ddaney@avtrex.com>
2684
2685 PR libffi/23935
2686 * include/Makefile.am: Install both ffi.h and ffitarget.h in
2687 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
2688 * aclocal.m4: Regenerated for automake 1.9.6.
2689 * Makefile.in: Regenerated.
2690 * include/Makefile.in: Regenerated.
2691 * testsuite/Makefile.in: Regenerated.
2692
26932006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
2694
2695 * include/ffi_common.h (struct): Revert accidental commit.
2696
26972006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
2698
2699 * include/ffi_common.h: Remove lint directives.
2700 * include/ffi.h.in: Likewise.
2701
27022006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
2703
2704 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
2705 for 32-bit architectures.
2706 * testsuite/libffi.call/return_ul.c: New test case.
2707
27082006-07-19 David Daney <ddaney@avtrex.com>
2709
2710 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
2711 xfail remains for mips64.
2712
27132006-05-23 Carlos O'Donell <carlos@codesourcery.com>
2714
2715 * Makefile.am: Add install-html target. Add install-html to .PHONY
2716 * Makefile.in: Regenerate.
2717 * aclocal.m4: Regenerate.
2718 * include/Makefile.in: Regenerate.
2719 * testsuite/Makefile.in: Regenerate.
2720
27212006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2722
2723 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
2724 stack slot.
2725
27262006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
2727
2728 * README: Remove notice about 'Crazy Comments'.
2729 * src/debug.c: Remove lint directives. Cleanup white spaces.
2730 * src/java_raw_api.c: Likewise.
2731 * src/prep_cif.c: Likewise.
2732 * src/raw_api.c: Likewise.
2733 * src/ffitest.c: Delete. No longer needed, all test cases migrated
2734 to the testsuite.
2735 * src/arm/ffi.c: Remove lint directives.
2736 * src/m32r/ffi.c: Likewise.
2737 * src/pa/ffi.c: Likewise.
2738 * src/powerpc/ffi.c: Likewise.
2739 * src/powerpc/ffi_darwin.c: Likewise.
2740 * src/sh/ffi.c: Likewise.
2741 * src/sh64/ffi.c: Likewise.
2742 * src/x86/ffi.c: Likewise.
2743 * testsuite/libffi.call/float2.c: Likewise.
2744 * testsuite/libffi.call/promotion.c: Likewise.
2745 * testsuite/libffi.call/struct1.c: Likewise.
2746
27472006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
2748
2749 * src/pa/hpux32.S: Correct unwind offset calculation for
2750 ffi_closure_pa32.
2751 * src/pa/linux.S: Likewise.
2752
27532006-04-12 James E Wilson <wilson@specifix.com>
2754
2755 PR libgcj/26483
2756 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
2757 (hfa_type_load): Call stf_spill.
2758 (hfa_type_store): Call ldf_fill.
2759 (ffi_call): Adjust calls to above routines. Add local temps for
2760 macro result.
2761
27622006-04-10 Matthias Klose <doko@debian.org>
2763
2764 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
2765 directory names containing underscores.
2766
27672006-04-07 James E Wilson <wilson@specifix.com>
2768
2769 * testsuite/libffi.call/float4.c: New testcase.
2770
27712006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2772 Andreas Tobler <a.tobler@schweiz.ch>
2773
2774 * Makefile.am: Add PA_HPUX port.
2775 * Makefile.in: Regenerate.
2776 * include/Makefile.in: Likewise.
2777 * testsuite/Makefile.in: Likewise.
2778 * configure.ac: Add PA_HPUX rules.
2779 * configure: Regenerate.
2780 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
2781 Add PA_HPUX and PA64_HPUX.
2782 Rename FFI_LINUX ABI to FFI_PA32 ABI.
2783 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
2784 (FFI_TYPE_SMALL_STRUCT2): Define.
2785 (FFI_TYPE_SMALL_STRUCT4): Likewise.
2786 (FFI_TYPE_SMALL_STRUCT8): Likewise.
2787 (FFI_TYPE_SMALL_STRUCT3): Redefine.
2788 (FFI_TYPE_SMALL_STRUCT5): Likewise.
2789 (FFI_TYPE_SMALL_STRUCT6): Likewise.
2790 (FFI_TYPE_SMALL_STRUCT7): Likewise.
2791 * src/pa/ffi.c (ROUND_DOWN): Delete.
2792 (fldw, fstw, fldd, fstd): Use '__asm__'.
2793 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
2794 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
2795 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
2796 Simplify incrementing of stack slot variable. Change type of local
2797 'n' to unsigned int.
2798 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
2799 double on PA_HPUX.
2800 (ffi_prep_cif_machdep): Likewise.
2801 (ffi_call): Likewise.
2802 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
2803 return type to ffi_status. Simplify incrementing of stack slot
2804 variable. Only copy floating point argument registers when PA_LINUX
2805 is true. Reformat debug statement.
2806 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
2807 FFI_TYPE_SMALL_STRUCT8.
2808 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
2809 declaration.
2810 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
2811 Add nops to cache flush. Add trampoline for PA_HPUX.
2812 * src/pa/hpux32.S: New file.
2813 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
2814 ffi_prep_args_LINUX to ffi_prep_args_pa32.
2815 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
2816 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
2817 argument type checks so that common argument types appear first.
2818 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
2819 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
2820
28212006-03-24 Alan Modra <amodra@bigpond.net.au>
2822
2823 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
2824 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
2825 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
2826 FFI_TYPE_LONGDOUBLE.
2827 (ffi_prep_args64): Assert using IBM extended double.
2828 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
2829 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
2830 (ffi_call): Handle FFI_LINUX.
2831 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
2832 gpr3 return pointer as for struct return. Handle FFI_LINUX
2833 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
2834 unnecessarily.
2835 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
2836 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
2837 Don't use r6 as pointer to results, instead use sp offset. Don't
2838 make a special call to load lr with case table address, instead
2839 use offset from previous call.
2840 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
2841 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
2842 return.
2843
28442006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
2845
2846 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
2847 passed with FP registers correctly.
2848 (ffi_closure_helper_SYSV): Likewise.
2849 * src/sh64/sysv.S: Likewise.
2850
28512006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
2852
2853 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
2854 args and userdata unused.
2855 (closure_test_fn1): Mark cif and userdata unused.
2856 (main): Remove unused res.
2857
28582006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
2859
2860 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
2861 -O2, -O3, -Os and the warning flags -W -Wall.
2862 * testsuite/libffi.special/special.exp: Likewise.
2863 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
2864 unused parameter unused for gcc or else do nothing.
2865 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2866 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
2867 and userdata unused.
2868 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
2869 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
2870 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
2871 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
2872 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
2873 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
2874 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
2875 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
2876 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
2877 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
2878 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
2879 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
2880 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
2881 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
2882 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
2883 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
2884 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
2885 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
2886 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
2887 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
2888 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
2889 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
2890 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
2891 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
2892 Likewise.
2893 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
2894 Likewise.
2895 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
2896 Likewise.
2897 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
2898 void* to avoid compiler warning.
2899 (main): Likewise.
2900 (cls_struct_align_gn): Mark cif and userdata unused.
2901 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
2902 Likewise.
2903 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
2904 Likewise.
2905 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
2906 Likewise.
2907 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
2908 Likewise.
2909 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
2910 Likewise.
2911 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
2912 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
2913 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
2914 data unused.
2915 (main): Cast res_call to silence gcc.
2916 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
2917 data unused.
2918 (main): Cast res_call to silence gcc.
2919 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
2920 and data unused.
2921 (main): Cast res_call to silence gcc.
2922 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
2923 data unused.
2924 (main): Cast res_call to silence gcc.
2925 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
2926 data unused.
2927 (main): Cast res_call to silence gcc.
2928 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
2929 and data unused.
2930 (main): Cast res_call to silence gcc.
2931 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
2932 userdata unused.
2933 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
2934 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
2935 userdata unused.
2936 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
2937 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
2938 userdata unused.
2939 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
2940 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
2941 userdata unused.
2942 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
2943 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
2944 userdata unused.
2945 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
2946 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
2947 and userdata unused.
2948 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
2949 userdata unused.
2950 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
2951 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
2952 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
2953 Cleanup white spaces.
2954 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
2955 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
2956 cif and userdata unused.
2957 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
2958 Likewise.
2959 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
2960 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
2961 formatters to silence gcc.
2962 (B_gn): Mark cif and userdata unused.
2963 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
2964 unused.
2965 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
2966 (B_gn): Mark cif and userdata unused.
2967 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
2968 unused.
2969 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
2970 (B_gn): Mark cif and userdata unused.
2971 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
2972 unused.
2973 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
2974 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
2975 * testsuite/libffi.call/problem1.c (stub): Likewise.
2976 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
2977 gcc.
2978 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
2979 in the last commit for this test case in the test case itself.
2980 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
2981 unused.
2982 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
2983 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
2984 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
2985 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
2986 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
2987 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
2988
29892006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
2990
2991 * src/sh/sysv.S: Fix register numbers in the FDE for
2992 ffi_closure_SYSV.
2993
29942006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
2995
2996 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
2997 declaration to avoid a false negative on ix86. See PR323.
2998
29992006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
3000
3001 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3002 and cast integer to void * if needed. Update the pointer to
3003 the FP register saved area correctly.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003004
Anthony Greenc6dddbd2009-10-04 08:11:33 -040030052006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
3006
3007 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3008 is fixed.
3009 * testsuite/libffi.call/nested_struct4.c: Likewise.
3010
30112006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
3012
3013 * testsuite/libffi.call/return_dbl.c: New test case.
3014 * testsuite/libffi.call/return_dbl1.c: Likewise.
3015 * testsuite/libffi.call/return_dbl2.c: Likewise.
3016 * testsuite/libffi.call/return_fl.c: Likewise.
3017 * testsuite/libffi.call/return_fl1.c: Likewise.
3018 * testsuite/libffi.call/return_fl2.c: Likewise.
3019 * testsuite/libffi.call/return_fl3.c: Likewise.
3020 * testsuite/libffi.call/closure_fn6.c: Likewise.
3021
3022 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3023 definition.
3024 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3025 here to be used by other test cases too.
3026
3027 * testsuite/libffi.call/nested_struct10.c: New test case.
3028 * testsuite/libffi.call/nested_struct9.c: Likewise.
3029 * testsuite/libffi.call/nested_struct8.c: Likewise.
3030 * testsuite/libffi.call/nested_struct7.c: Likewise.
3031 * testsuite/libffi.call/nested_struct6.c: Likewise.
3032 * testsuite/libffi.call/nested_struct5.c: Likewise.
3033 * testsuite/libffi.call/nested_struct4.c: Likewise.
3034
30352006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3036
3037 * configure.ac: Enable libffi for sparc64-*-freebsd*.
3038 * configure: Rebuilt.
3039
30402006-01-18 Jakub Jelinek <jakub@redhat.com>
3041
3042 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3043 instead do the shifting inline.
3044 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3045 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
3046 and 8 byte structs, for the remaining struct sizes don't call
3047 __lshrdi3, instead do the shifting inline.
3048
30492005-12-07 Thiemo Seufer <ths@networkno.de>
3050
3051 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3052 missing parentheses.
3053 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3054 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3055 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3056 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3057 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3058 FA_0_0_OFF2.
3059 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3060 endianness bugs.
3061 (ffi_prep_closure): Improve trampoline instruction scheduling.
3062 (ffi_closure_mips_inner_O32): Fix endianness bugs.
3063
30642005-12-03 Alan Modra <amodra@bigpond.net.au>
3065
3066 * src/powerpc/ffi.c: Formatting.
3067 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3068 (ffi_prep_args64): Likewise.
3069
30702005-09-30 Geoffrey Keating <geoffk@apple.com>
3071
3072 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3073 darwin, use -shared-libgcc not -lgcc_s, and explain why.
3074
30752005-09-26 Tom Tromey <tromey@redhat.com>
3076
3077 * testsuite/libffi.call/float1.c (value_type): New typedef.
3078 (CANARY): New define.
3079 (main): Check for result buffer overflow.
3080 * src/powerpc/linux64.S: Handle linux64 long double returns.
3081 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3082 (ffi_prep_cif_machdep): Handle linux64 long double returns.
3083
30842005-08-25 Alan Modra <amodra@bigpond.net.au>
3085
3086 PR target/23404
3087 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3088 homed fp args.
3089 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3090
30912005-08-11 Jakub Jelinek <jakub@redhat.com>
3092
3093 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3094 (AH_BOTTOM): Add FFI_HIDDEN definition.
3095 * configure: Rebuilt.
3096 * fficonfig.h.in: Rebuilt.
3097 * src/powerpc/ffi.c (hidden): Remove.
3098 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3099 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3100 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3101 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3102 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3103 add FFI_HIDDEN to its prototype.
3104 (ffi_closure_SYSV_inner): New.
3105 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3106 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3107
31082005-08-10 Alfred M. Szmidt <ams@gnu.org>
3109
3110 PR libffi/21819:
3111 * configure: Rebuilt.
3112 * configure.ac: Handle i*86-*-gnu*.
3113
31142005-08-09 Jakub Jelinek <jakub@redhat.com>
3115
3116 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3117 DW_CFA_offset_extended_sf rather than
3118 DW_CFA_GNU_negative_offset_extended.
3119 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3120
31212005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3122
3123 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3124 on sh3.
3125 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3126 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3127 partially on register.
3128 (ffi_closure_helper_SYSV): Likewise.
3129 (ffi_prep_cif_machdep): Don't set too many cif->flags.
3130
31312005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
3132
3133 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3134 Remove empty line.
3135 * src/sh64/ffi.c (simple_type): Remove.
3136 (return_type): Handle small structures correctly.
3137 (ffi_prep_args): Likewise.
3138 (ffi_call): Likewise.
3139 (ffi_closure_helper_SYSV): Likewise.
3140 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3141 Emit position independent code if PIC and remove wrong datalabel
3142 prefixes from EH data.
3143
31442005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
3145
3146 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3147 * Makefile.in: Regenerate.
3148 * include/Makefile.in: Likewise.
3149 * testsuite/Makefile.in: Likewise.
3150 * configure.ac: Add POWERPC_FREEBSD rules.
3151 * configure: Regenerate.
3152 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3153 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3154 * src/powerpc/ffi.c: Add flags to handle small structure returns
3155 in ffi_call_SYSV.
3156 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3157 Aka FFI_SYSV.
3158 (ffi_closure_helper_SYSV): Likewise.
3159 * src/powerpc/ppc_closure.S: Add return types for small structures.
3160 * src/powerpc/sysv.S: Add bits to handle small structures for
3161 final SYSV 4 ABI.
3162
31632005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
3164
3165 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3166 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3167 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3168
31692005-07-05 Randolph Chung <tausq@debian.org>
3170
3171 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3172 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
3173 structures. Kill compilation warnings.
3174 (ffi_closure_inner_LINUX): Print return values as hex in debug
3175 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3176 Properly handle 5-7 byte structure returns.
3177 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3178 (FFI_TYPE_SMALL_STRUCT2): Remove.
3179 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3180 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3181 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3182 (checksmst1, checksmst2): Remove.
3183 (checksmst3): Optimize handling of 3-byte struct returns.
3184 (checksmst567): Properly handle 5-7 byte struct returns.
3185
31862005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3187
3188 PR libgcj/21943
3189 * src/mips/n32.S: Enforce PIC code.
3190 * src/mips/o32.S: Likewise.
3191
31922005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3193
3194 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3195 * configure: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003196
Anthony Greenc6dddbd2009-10-04 08:11:33 -040031972005-06-01 Alan Modra <amodra@bigpond.net.au>
3198
3199 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3200 to call ffi_closure_helper_SYSV. Append @local instead.
3201 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3202
32032005-05-17 Kelley Cook <kcook@gcc.gnu.org>
3204
3205 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3206 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3207 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3208 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3209 include/Makefile.in, testsuite/Makefile.in: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003210
Anthony Greenc6dddbd2009-10-04 08:11:33 -040032112005-05-09 Mike Stump <mrs@apple.com>
3212
3213 * configure: Regenerate.
3214
32152005-05-08 Richard Henderson <rth@redhat.com>
3216
3217 PR libffi/21285
3218 * src/alpha/osf.S: Update unwind into to match code.
3219
32202005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
3221 Richard Henderson <rth@redhat.com>
3222
3223 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3224 bit 11 of flags.
3225 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
3226 (ffi_prep_closure): Set carry bit if sse-used flag set.
3227 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3228 Only load sse registers if ssecount non-zero.
3229 (ffi_closure_unix64): Only save sse registers if carry set on entry.
3230
32312005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
3232
3233 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3234 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3235 * configure: Regenerate.
3236
32372005-04-20 Hans-Peter Nilsson <hp@axis.com>
3238
3239 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3240 have Tcl8.3-compatible intermediate variable.
3241
Anthony Green0cfe60e2009-12-29 10:06:04 -050032422005-04-18 Simon Posnjak <simon.posnjak@siol.net>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003243 Hans-Peter Nilsson <hp@axis.com>
3244
3245 * Makefile.am: Add CRIS support.
3246 * configure.ac: Likewise.
3247 * Makefile.in, configure, testsuite/Makefile.in,
3248 include/Makefile.in: Regenerate.
3249 * src/cris: New directory.
3250 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3251 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
3252
3253 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3254 \r?\n in output tests.
3255
32562005-04-12 Mike Stump <mrs@apple.com>
3257
3258 * configure: Regenerate.
3259
32602005-03-30 Hans Boehm <Hans.Boehm@hp.com>
3261
3262 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003263
Anthony Greenc6dddbd2009-10-04 08:11:33 -040032642005-03-30 Steve Ellcey <sje@cup.hp.com>
3265
3266 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3267 (ffi_sarg) Ditto.
3268 * src/ia64/unix.S (ffi_closure_unix): Extend gp
3269 to 64 bits in ILP32 mode.
3270 Load 64 bits even for short data.
3271
32722005-03-23 Mike Stump <mrs@apple.com>
3273
3274 * src/powerpc/darwin.S: Update for -m64 multilib.
3275 * src/powerpc/darwin_closure.S: Likewise.
3276
32772005-03-21 Zack Weinberg <zack@codesourcery.com>
3278
3279 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3280 Do not set tool_include_dir.
3281 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3282 Regenerate.
3283 * include/Makefile.am: Set gcc_version and toollibffidir.
3284 * include/Makefile.in: Regenerate.
3285
32862005-02-22 Andrew Haley <aph@redhat.com>
3287
3288 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3289 odd-numbered register pairs for 64-bit integer types.
3290
32912005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
3292
3293 PR libffi/20104
3294 * testsuite/libffi.call/return_ll1.c: New test case.
3295
32962005-02-11 Janis Johnson <janis187@us.ibm.com>
3297
3298 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3299 * testsuite/libffi.call/float.c: Ditto.
3300 * testsuite/libffi.call/float2.c: Ditto.
3301 * testsuite/libffi.call/float3.c: Ditto.
3302
33032005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
3304
3305 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3306
33072005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3308
3309 * testsuite/libffi.special/special.exp (cxx_options): Add
3310 -shared-libgcc.
3311
33122004-12-31 Richard Henderson <rth@redhat.com>
3313
3314 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3315 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
3316 offset parameters with a type parameter; deduce size and structure
3317 alignment. Update all users.
3318
33192004-12-31 Richard Henderson <rth@redhat.com>
3320
3321 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3322 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
3323 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
3324 into ffi_prep_closure.
3325 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3326 from scratch.
3327
33282004-12-27 Richard Henderson <rth@redhat.com>
3329
3330 * src/x86/unix64.S: Fix typo in unwind info.
3331
33322004-12-25 Richard Henderson <rth@redhat.com>
3333
3334 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3335 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3336 (merge_classes): Check for it.
3337 (SSE_CLASS_P): New.
3338 (classify_argument): Pass byte_offset by value; perform all updates
3339 inside struct case.
3340 (examine_argument): Add classes argument; handle
3341 X86_64_COMPLEX_X87_CLASS.
3342 (ffi_prep_args): Merge into ...
3343 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
3344 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3345 (ffi_fill_return_value): Remove.
3346 (ffi_prep_closure): Remove dead assert.
3347 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3348 Rewrite to use struct register_args instead of va_list. Create
3349 flags for handling structure returns.
3350 * src/x86/unix64.S: Remove dead strings.
3351 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
3352 stack frame with ffi_call. Handle structure returns properly.
3353 (float2sse, floatfloat2sse, double2sse): Remove.
3354 (sse2float, sse2double, sse2floatfloat): Remove.
3355 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
3356 to handle structure returns properly.
3357
33582004-12-08 David Edelsohn <edelsohn@gnu.org>
3359
3360 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3361 PICFLAG.
3362 * Makefile.in: Regenerated.
3363
33642004-12-02 Richard Sandiford <rsandifo@redhat.com>
3365
3366 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3367 * configure, aclocal.m4, Makefile.in: Regenerate.
3368 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3369
33702004-11-29 Kelley Cook <kcook@gcc.gnu.org>
3371
3372 * configure: Regenerate for libtool change.
3373
33742004-11-25 Kelley Cook <kcook@gcc.gnu.org>
3375
3376 * configure: Regenerate for libtool reversion.
3377
33782004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3379
3380 * configure: Regenerate for libtool change.
3381
33822004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3383
3384 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3385
33862004-11-23 Richard Sandiford <rsandifo@redhat.com>
3387
3388 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3389 of jal. Use an absolute encoding for the frame information.
3390
33912004-11-23 Kelley Cook <kcook@gcc.gnu.org>
3392
3393 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
3394 * acinclude.m4: Delete logic for sincludes.
3395 * aclocal.m4, Makefile.in, configure: Regenerate.
3396 * include/Makefile: Likewise.
3397 * testsuite/Makefile: Likewise.
3398
33992004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3400
3401 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
3402 on a 8-byte boundary.
3403 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
3404
34052004-10-27 Richard Earnshaw <rearnsha@arm.com>
3406
3407 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
3408 long long values. Round stack allocation to a multiple of 8 bytes
3409 for ATPCS compatibility.
3410 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
3411 names. Handle returning long long types. Add Thumb and interworking
3412 support. Improve soft-float code.
3413
34142004-10-27 Richard Earnshaw <rearnsha@arm.com>
3415
3416 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
3417 (libffi_exit): New function.
3418 (libffi_init): Build the testglue wrapper if needed.
3419
34202004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3421
3422 PR other/18138
3423 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
3424
34252004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3426
3427 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
3428
34292004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
3430
3431 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
3432 * testsuite/libffi.call/float3.c: New test case.
3433
34342004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
3435
3436 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
3437 the function returning a structure pointed with R2.
3438 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
3439 the structure return value if T bit set. Emit position
3440 independent code and EH data if PIC.
3441
34422004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3443
3444 * Makefile.am: Add m32r support.
3445 * configure.ac: Likewise.
3446 * Makefile.in: Regenerate.
3447 * confiugre: Regenerate.
3448 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
3449 (uint64, sint64, double, longdouble)
3450 * src/m32r: New directory.
3451 * src/m32r/ffi.c: New file.
3452 * src/m32r/sysv.S: Likewise.
3453 * src/m32r/ffitarget.h: Likewise.
3454
34552004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
3456
3457 * testsuite/libffi.call/negint.c: New test case.
3458
34592004-09-14 H.J. Lu <hongjiu.lu@intel.com>
3460
3461 PR libgcj/17465
3462 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
3463 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
3464 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
3465 DYLD_LIBRARY_PATH.
3466
34672004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3468
3469 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
3470 * testsuite/libffi.call/promotion.c: Likewise.
3471 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
3472 whitespaces.
3473 * testsuite/libffi.call/return_sc.c: Likewise.
3474 * testsuite/libffi.call/return_uc.c: Likewise.
3475
34762004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3477
3478 * src/powerpc/darwin.S: Fix comments and identation.
3479 * src/powerpc/darwin_closure.S: Likewise.
3480
34812004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3482
3483 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
3484 (ffi_prep_args): Handle longdouble arguments.
3485 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
3486 longdouble.
3487 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
3488 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
3489 values.
3490 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
3491 * src/types.c: Defined longdouble size and alignment for darwin.
3492
34932004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3494
3495 * src/powerpc/aix.S: Remove whitespaces.
3496 * src/powerpc/aix_closure.S: Likewise.
3497 * src/powerpc/asm.h: Likewise.
3498 * src/powerpc/ffi.c: Likewise.
3499 * src/powerpc/ffitarget.h: Likewise.
3500 * src/powerpc/linux64.S: Likewise.
3501 * src/powerpc/linux64_closure.S: Likewise.
3502 * src/powerpc/ppc_closure.S: Likewise.
3503 * src/powerpc/sysv.S: Likewise.
3504
35052004-08-30 Anthony Green <green@redhat.com>
3506
3507 * Makefile.am: Add frv support.
3508 * Makefile.in, testsuite/Makefile.in: Rebuilt.
3509 * configure.ac: Read configure.host.
3510 * configure.in: Read configure.host.
3511 * configure.host: New file. frv-elf needs libgloss.
3512 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
3513 alignment. This is needed to frv and shouldn't harm the others.
3514 * include/ffi_common.h (ALIGN_DOWN): New macro.
3515 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
3516
35172004-08-24 David Daney <daney@avtrex.com>
3518
3519 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
3520 * testsuite/libffi.call/closure_fn1.c: Likewise.
3521 * testsuite/libffi.call/closure_fn2.c Likewise.
3522 * testsuite/libffi.call/closure_fn3.c: Likewise.
3523 * testsuite/libffi.call/closure_fn4.c: Likewise.
3524 * testsuite/libffi.call/closure_fn5.c: Likewise.
3525 * testsuite/libffi.call/cls_18byte.c: Likewise.
3526 * testsuite/libffi.call/cls_19byte.c: Likewise.
3527 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3528 * testsuite/libffi.call/cls_20byte.c: Likewise.
3529 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3530 * testsuite/libffi.call/cls_24byte.c: Likewise.
3531 * testsuite/libffi.call/cls_2byte.c: Likewise.
3532 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3533 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3534 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3535 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3536 * testsuite/libffi.call/cls_4byte.c: Likewise.
3537 * testsuite/libffi.call/cls_64byte.c: Likewise.
3538 * testsuite/libffi.call/cls_6byte.c: Likewise.
3539 * testsuite/libffi.call/cls_7byte.c: Likewise.
3540 * testsuite/libffi.call/cls_8byte.c: Likewise.
3541 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3542 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3543 * testsuite/libffi.call/cls_align_double.c: Likewise.
3544 * testsuite/libffi.call/cls_align_float.c: Likewise.
3545 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3546 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3547 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3548 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3549 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3550 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3551 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3552 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
3553 * testsuite/libffi.call/cls_double.c: Likewise.
3554 * testsuite/libffi.call/cls_float.c: Likewise.
3555 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3556 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
3557 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3558 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3559 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3560 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3561 * testsuite/libffi.call/cls_schar.c: Likewise.
3562 * testsuite/libffi.call/cls_sint.c: Likewise.
3563 * testsuite/libffi.call/cls_sshort.c: Likewise.
3564 * testsuite/libffi.call/cls_uchar.c: Likewise.
3565 * testsuite/libffi.call/cls_uint.c: Likewise.
3566 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3567 * testsuite/libffi.call/cls_ushort.c: Likewise.
3568 * testsuite/libffi.call/nested_struct.c: Likewise.
3569 * testsuite/libffi.call/nested_struct1.c: Likewise.
3570 * testsuite/libffi.call/nested_struct2.c: Likewise.
3571 * testsuite/libffi.call/nested_struct3.c: Likewise.
3572 * testsuite/libffi.call/problem1.c: Likewise.
3573 * testsuite/libffi.special/unwindtest.cc: Likewise.
3574 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
3575 to zero.
3576 * testsuite/libffi.call/cls_16byte.c: Likewise.
3577 * testsuite/libffi.call/cls_5byte.c: Likewise.
3578
35792004-08-23 David Daney <daney@avtrex.com>
3580
3581 PR libgcj/13141
3582 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
3583 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
3584 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
3585 parameters and return types.
3586 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
3587 (ffi_prep_closure): Ditto.
3588 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
3589 alignment calculations.
3590 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
3591 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
3592
35932004-08-14 Casey Marshall <csm@gnu.org>
3594
3595 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
3596 contain `FFI_TYPE_UINT64' as return type for any 64-bit
3597 integer (O32 ABI only).
3598 (ffi_prep_closure): new function.
3599 (ffi_closure_mips_inner_O32): new function.
3600 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
3601 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
3602 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
3603 64 bit integers correctly.
3604 (ffi_closure_O32): new function.
3605 Added DWARF-2 unwind info for both functions.
3606
36072004-08-10 Andrew Haley <aph@redhat.com>
3608
3609 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
3610
36112004-08-01 Robert Millan <robertmh@gnu.org>
3612
3613 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
3614 * configure: Regenerate.
3615
36162004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
3617
3618 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3619 and mmap() explicitly instead of relying on preset autoconf cache
3620 variables.
3621 * aclocal.m4: Regenerate.
3622 * configure: Regenerate.
3623
36242004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
3625
3626 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
3627 (ffi_check_float_struct): Remove unused prototype.
3628
36292004-06-30 Geoffrey Keating <geoffk@apple.com>
3630
3631 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
3632 character on Darwin, use '\n\t' instead.
3633
36342004-06-26 Matthias Klose <doko@debian.org>
3635
3636 * libtool-version: Fix typo in revision/age.
3637
36382004-06-17 Matthias Klose <doko@debian.org>
3639
3640 * libtool-version: New.
3641 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
3642 * Makefile.in: Regenerate.
3643
36442004-06-15 Paolo Bonzini <bonzini@gnu.org>
3645
3646 * Makefile.am: Remove useless multilib rules.
3647 * Makefile.in: Regenerate.
3648 * aclocal.m4: Regenerate with automake 1.8.5.
3649 * configure.ac: Remove useless multilib configury.
3650 * configure: Regenerate.
3651
36522004-06-15 Paolo Bonzini <bonzini@gnu.org>
3653
3654 * .cvsignore: New file.
3655
36562004-06-10 Jakub Jelinek <jakub@redhat.com>
3657
3658 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
3659 fp_done.
3660 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
3661 changed from 8.
3662
36632004-06-06 Sean McNeil <sean@mcneil.com>
3664
3665 * configure.ac: Add x86_64-*-freebsd* support.
3666 * configure: Regenerate.
3667
36682004-04-26 Joe Buck <jbuck@welsh-buck.org>
3669
3670 Bug 15093
3671 * configure.ac: Test for existence of mmap and sys/mman.h before
3672 checking blacklist. Fix suggested by Jim Wilson.
3673 * configure: Regenerate.
3674
36752004-04-26 Matt Austern <austern@apple.com>
3676
3677 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
3678 FDE location.
3679 * src/powerpc/darwin_closure.S: Likewise.
3680
36812004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
3682
3683 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
3684 error. Reported by Thomas Heller <theller@python.net>.
3685 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
3686 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
3687
36882004-03-20 Matthias Klose <doko@debian.org>
3689
3690 * src/pa/linux.S: Fix typo.
3691
36922004-03-19 Matthias Klose <doko@debian.org>
3693
3694 * Makefile.am: Update.
3695 * Makefile.in: Regenerate.
3696 * src/pa/ffi.h.in: Remove.
3697 * src/pa/ffitarget.h: New file.
3698
36992004-02-10 Randolph Chung <tausq@debian.org>
3700
3701 * Makefile.am: Add PA support.
3702 * Makefile.in: Regenerate.
3703 * include/Makefile.in: Regenerate.
3704 * configure.ac: Add PA target.
3705 * configure: Regenerate.
3706 * src/pa/ffi.c: New file.
3707 * src/pa/ffi.h.in: Add PA support.
3708 * src/pa/linux.S: New file.
3709 * prep_cif.c: Add PA support.
3710
37112004-03-16 Hosaka Yuji <hos@tamanegi.org>
3712
3713 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
3714 double.
3715 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
3716 with ecif->cif->flags.
3717 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
3718 with cif->flags.
3719 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
3720 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
3721 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
3722 sc_retstruct2b): Add for 1 or 2-bytes struct case.
3723
37242004-03-15 Kelley Cook <kcook@gcc.gnu.org>
3725
3726 * configure.in: Rename file to ...
3727 * configure.ac: ... this.
3728 * fficonfig.h.in: Regenerate.
3729 * Makefile.in: Regenerate.
3730 * include/Makefile.in: Regenerate.
3731 * testsuite/Makefile.in: Regenerate.
3732
37332004-03-12 Matt Austern <austern@apple.com>
3734
3735 * src/powerpc/darwin.S: Fix EH information so it corresponds to
3736 changes in EH format resulting from addition of linkonce support.
3737 * src/powerpc/darwin_closure.S: Likewise.
3738
37392004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
3740 Paolo Bonzini <bonzini@gnu.org>
3741
3742 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
3743 Remove VPATH. Remove rules for object files. Remove multilib support.
3744 (AM_CCASFLAGS): Add.
3745 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
3746 (AC_PREREQ): Bump version to 2.59.
3747 (AC_INIT): Fill with version info and bug address.
3748 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
3749 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
3750 De-precious CC so that the right flags are passed down to multilibs.
3751 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
3752 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
3753 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
3754 * configure: Rebuilt.
3755 * aclocal.m4: Likewise.
3756 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
3757 * fficonfig.h.in: Likewise.
3758
37592004-03-11 Andreas Schwab <schwab@suse.de>
3760
3761 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
3762 arguments from fp registers only for the first 8 parameter slots.
3763 Don't convert a float parameter when passed in memory.
3764
37652004-03-09 Hans-Peter Nilsson <hp@axis.com>
3766
3767 * configure: Regenerate for config/accross.m4 correction.
3768
37692004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
3770
3771 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
3772 ecif->cif->bytes to bytes.
3773 (ffi_prep_cif_machdep): Add braces around nested if statement.
3774
37752004-02-09 Alan Modra <amodra@bigpond.net.au>
3776
3777 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
3778
3779 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
3780 (ffi_closure_helper_LINUX64): Fix typo.
3781 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
3782 for powerpc64-*-*.
3783 * testsuite/libffi.call/float.c: Likewise.
3784 * testsuite/libffi.call/float2.c: Likewise.
3785
37862004-02-08 Alan Modra <amodra@bigpond.net.au>
3787
3788 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
3789 long double function return and long double arg handling.
3790 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
3791 Use "end_pfr" instead of "nf". Correct long double handling.
3792 Localise "temp".
3793 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
3794 return value.
3795 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
3796 space for long double return value. Adjust stack frame and offsets.
3797 Load f2 long double return.
3798
37992004-02-07 Alan Modra <amodra@bigpond.net.au>
3800
3801 * src/types.c: Use 16 byte long double for POWERPC64.
3802
38032004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3804
3805 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
3806 when the structure return address is passed in %o0.
3807 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
3808 (ffi_v9_layout_struct): Align the field following a nested structure
3809 on a word boundary. Use memmove instead of memcpy.
3810 (ffi_call): Update call to ffi_V9_return_struct.
3811 (ffi_prep_closure): Define 'ctx' only for V8.
3812 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
3813 and ffi_closure_sparc_inner_v9.
3814 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
3815 Always skip the structure return address. For structures and long
3816 doubles, copy the argument directly.
3817 (ffi_closure_sparc_inner_v9): Skip the structure return address only
3818 if required. Shift the maximum floating-point slot accordingly. For
3819 big structures, copy the argument directly; otherwise, left-justify the
3820 argument and call ffi_v9_layout_struct to lay out the structure on
3821 the stack.
3822 * src/sparc/v8.S: Undef STACKFRAME before defining it.
3823 (ffi_closure_v8): Pass the structure return address. Update call to
3824 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
3825 Skip the 'unimp' insn when returning long doubles and structures.
3826 * src/sparc/v9.S: Undef STACKFRAME before defining it.
3827 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
3828 FFI_TYPE_INT handling. Load structures both in integers and
3829 floating-point registers on return.
3830 * README: Update status of the SPARC port.
3831
38322004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
3833
3834 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
3835 as of type ffi_arg.
3836 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
3837
38382004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
3839
3840 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
3841 value as of type ffi_arg, not unsigned int.
3842
38432004-01-21 Michael Ritzert <ritzert@t-online.de>
3844
3845 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
3846 of the LHS.
3847
38482004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
3849
3850 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
3851 Solaris.
3852
38532004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3854
3855 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
3856 to void *.
3857
38582003-12-10 Richard Henderson <rth@redhat.com>
3859
3860 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
3861 size_t instead of int.
3862
38632003-12-04 Hosaka Yuji <hos@tamanegi.org>
3864
3865 * testsuite/libffi.call/many_win32.c: Include <float.h>.
3866 * testsuite/libffi.call/many_win32.c (main): Replace variable
3867 int i with unsigned long ul.
3868
3869 * testsuite/libffi.call/cls_align_uint64.c: New test case.
3870 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3871 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3872 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3873 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3874 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3875 * testsuite/libffi.call/cls_align_float.c: Likewise.
3876 * testsuite/libffi.call/cls_align_double.c: Likewise.
3877 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3878 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3879
38802003-12-02 Hosaka Yuji <hos@tamanegi.org>
3881
3882 PR other/13221
3883 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
3884 Align arguments to 32 bits.
3885
38862003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
3887
3888 PR other/13221
3889 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
3890 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3891 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3892 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3893 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3894 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3895
3896 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
3897
38982003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3899
3900 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
3901 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3902
39032003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
3904
3905 * Makefile.in: Rebuilt.
3906 * configure: Likewise.
3907 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
3908 the right type.
3909
39102003-11-21 Andreas Jaeger <aj@suse.de>
3911 Andreas Tobler <a.tobler@schweiz.ch>
3912
3913 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
3914 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
3915 * Makefile.in: Rebuilt.
3916 * aclocal.m4: Likewise.
3917 * configure: Likewise.
3918 * fficonfig.h.in: Likewise.
3919 * testsuite/lib/libffi-dg.exp: Add include dir.
3920 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
3921 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3922 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
3923 for ffi_closure if available.
3924 * testsuite/libffi.call/closure_fn1.c: Likewise.
3925 * testsuite/libffi.call/closure_fn2.c: Likewise.
3926 * testsuite/libffi.call/closure_fn3.c: Likewise.
3927 * testsuite/libffi.call/closure_fn4.c: Likewise.
3928 * testsuite/libffi.call/closure_fn5.c: Likewise.
3929 * testsuite/libffi.call/cls_12byte.c: Likewise.
3930 * testsuite/libffi.call/cls_16byte.c: Likewise.
3931 * testsuite/libffi.call/cls_18byte.c: Likewise.
3932 * testsuite/libffi.call/cls_19byte.c: Likewise.
3933 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3934 * testsuite/libffi.call/cls_20byte.c: Likewise.
3935 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3936 * testsuite/libffi.call/cls_24byte.c: Likewise.
3937 * testsuite/libffi.call/cls_2byte.c: Likewise.
3938 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3939 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3940 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3941 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3942 * testsuite/libffi.call/cls_4byte.c: Likewise.
3943 * testsuite/libffi.call/cls_5byte.c: Likewise.
3944 * testsuite/libffi.call/cls_64byte.c: Likewise.
3945 * testsuite/libffi.call/cls_6byte.c: Likewise.
3946 * testsuite/libffi.call/cls_7byte.c: Likewise.
3947 * testsuite/libffi.call/cls_8byte.c: Likewise.
3948 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3949 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3950 * testsuite/libffi.call/cls_double.c: Likewise.
3951 * testsuite/libffi.call/cls_float.c: Likewise.
3952 * testsuite/libffi.call/cls_schar.c: Likewise.
3953 * testsuite/libffi.call/cls_sint.c: Likewise.
3954 * testsuite/libffi.call/cls_sshort.c: Likewise.
3955 * testsuite/libffi.call/cls_uchar.c: Likewise.
3956 * testsuite/libffi.call/cls_uint.c: Likewise.
3957 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3958 * testsuite/libffi.call/cls_ushort.c: Likewise.
3959 * testsuite/libffi.call/nested_struct.c: Likewise.
3960 * testsuite/libffi.call/nested_struct1.c: Likewise.
3961 * testsuite/libffi.call/nested_struct2.c: Likewise.
3962 * testsuite/libffi.call/nested_struct3.c: Likewise.
3963 * testsuite/libffi.call/problem1.c: Likewise.
3964 * testsuite/libffi.special/unwindtest.cc: Likewise.
3965
39662003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
3967
3968 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
3969
39702003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
3971
3972 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
3973 Add -lgcc_s to additional flags.
3974
39752003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
3976
3977 * configure.in, include/Makefile.am: PR libgcj/11147, install
3978 the ffitarget.h header file in a gcc versioned and target
3979 dependent place.
3980 * configure: Regenerated.
3981 * Makefile.in, include/Makefile.in: Likewise.
3982 * testsuite/Makefile.in: Likewise.
3983
39842003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
3985
3986 * testsuite/libffi.call/closure_fn0.c: Print result and check
3987 with dg-output to make debugging easier.
3988 * testsuite/libffi.call/closure_fn1.c: Likewise.
3989 * testsuite/libffi.call/closure_fn2.c: Likewise.
3990 * testsuite/libffi.call/closure_fn3.c: Likewise.
3991 * testsuite/libffi.call/closure_fn4.c: Likewise.
3992 * testsuite/libffi.call/closure_fn5.c: Likewise.
3993 * testsuite/libffi.call/cls_12byte.c: Likewise.
3994 * testsuite/libffi.call/cls_16byte.c: Likewise.
3995 * testsuite/libffi.call/cls_18byte.c: Likewise.
3996 * testsuite/libffi.call/cls_19byte.c: Likewise.
3997 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3998 * testsuite/libffi.call/cls_20byte.c: Likewise.
3999 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4000 * testsuite/libffi.call/cls_24byte.c: Likewise.
4001 * testsuite/libffi.call/cls_2byte.c: Likewise.
4002 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4003 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4004 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4005 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4006 * testsuite/libffi.call/cls_4byte.c: Likewise.
4007 * testsuite/libffi.call/cls_5byte.c: Likewise.
4008 * testsuite/libffi.call/cls_64byte.c: Likewise.
4009 * testsuite/libffi.call/cls_6byte.c: Likewise.
4010 * testsuite/libffi.call/cls_7byte.c: Likewise.
4011 * testsuite/libffi.call/cls_8byte.c: Likewise.
4012 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4013 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4014 * testsuite/libffi.call/cls_double.c: Likewise.
4015 * testsuite/libffi.call/cls_float.c: Likewise.
4016 * testsuite/libffi.call/cls_schar.c: Likewise.
4017 * testsuite/libffi.call/cls_sint.c: Likewise.
4018 * testsuite/libffi.call/cls_sshort.c: Likewise.
4019 * testsuite/libffi.call/cls_uchar.c: Likewise.
4020 * testsuite/libffi.call/cls_uint.c: Likewise.
4021 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4022 * testsuite/libffi.call/cls_ushort.c: Likewise.
4023 * testsuite/libffi.call/problem1.c: Likewise.
4024
4025 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4026 static.
4027
40282003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4029
4030 * testsuite/libffi.call/cls_9byte2.c: New test case.
4031 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4032 * testsuite/libffi.call/cls_64byte.c: Likewise.
4033 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4034 * testsuite/libffi.call/cls_19byte.c: Likewise.
4035 * testsuite/libffi.call/cls_18byte.c: Likewise.
4036 * testsuite/libffi.call/closure_fn4.c: Likewise.
4037 * testsuite/libffi.call/closure_fn5.c: Likewise.
4038 * testsuite/libffi.call/cls_schar.c: Likewise.
4039 * testsuite/libffi.call/cls_sint.c: Likewise.
4040 * testsuite/libffi.call/cls_sshort.c: Likewise.
4041 * testsuite/libffi.call/nested_struct2.c: Likewise.
4042 * testsuite/libffi.call/nested_struct3.c: Likewise.
4043
40442003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4045
4046 * testsuite/libffi.call/cls_double.c: Do a check on the result.
4047 * testsuite/libffi.call/cls_uchar.c: Likewise.
4048 * testsuite/libffi.call/cls_uint.c: Likewise.
4049 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4050 * testsuite/libffi.call/cls_ushort.c: Likewise.
4051 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4052
40532003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
4054
4055 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4056 the initialization.
4057
40582003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
4059
4060 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
4061 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4062
40632003-10-22 David Daney <ddaney@avtrex.com>
4064
4065 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4066 __attribute__((__mode__(__SI__))) and friends.
4067
40682003-10-22 Andreas Schwab <schwab@suse.de>
4069
4070 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4071
40722003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
4073
4074 * configure.in: AC_LINK_FILES(ffitarget.h).
4075 * configure: Regenerate.
4076 * Makefile.in: Likewise.
4077 * include/Makefile.in: Likewise.
4078 * testsuite/Makefile.in: Likewise.
4079 * fficonfig.h.in: Likewise.
4080
40812003-10-21 Paolo Bonzini <bonzini@gnu.org>
4082 Richard Henderson <rth@redhat.com>
4083
4084 Avoid that ffi.h includes fficonfig.h.
4085
4086 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4087 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4088 (TARGET_SRC_MIPS_SGI): Removed.
4089 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4090 (MIPS_SGI): Removed.
4091 (CLEANFILES): Removed.
4092 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4093 targets.
4094 * acconfig.h: Removed.
4095 * configure.in: Compute sizeofs only for double and long double.
4096 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
4097 into AC_DEFINE instead of using acconfig.h. Create
4098 include/ffitarget.h instead of include/fficonfig.h. Rename
4099 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4100 AC_DEFINE EH_FRAME_FLAGS.
4101 * include/Makefile.am (DISTCLEANFILES): New automake macro.
4102 (hack_DATA): Add ffitarget.h.
4103 * include/ffi.h.in: Remove all system specific definitions.
4104 Declare raw API even if it is not installed, why bother?
4105 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
4106 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
4107 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
4108 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4109 * include/ffi_common.h (bool): Do not define.
4110 (ffi_assert): Accept failed assertion.
4111 (ffi_type_test): Return void and accept file/line.
4112 (FFI_ASSERT): Pass stringized failed assertion.
4113 (FFI_ASSERT_AT): New macro.
4114 (FFI_ASSERT_VALID_TYPE): New macro.
4115 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4116 UINT64, SINT64): Define here with gcc's __attribute__ macro
4117 instead of in ffi.h
4118 (FLOAT32, ALIGN): Define here instead of in ffi.h
4119 * include/ffi-mips.h: Removed. Its content moved to
4120 src/mips/ffitarget.h after separating assembly and C sections.
4121 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4122 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4123 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4124 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4125 SIZEOF_ARG -> FFI_SIZEOF_ARG.
4126 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4127 * src/debug.c (ffi_assert): Accept stringized failed assertion.
4128 (ffi_type_test): Rewritten.
4129 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4130 FFI_ASSERT_VALID_TYPE.
4131 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4132 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4133 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4134 src/s390/ffitarget.h, src/sh/ffitarget.h,
4135 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4136 src/x86/ffitarget.h: New files.
4137 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4138 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4139 src/powerpc/aix.S, src/powerpc/darwin.S,
4140 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4141 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4142 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4143 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4144 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4145 include fficonfig.h
4146
41472003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4148
4149 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4150 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4151
41522003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
4153
4154 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4155 Used when FFI_DEBUG = 1.
4156
41572003-10-14 Alan Modra <amodra@bigpond.net.au>
4158
4159 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4160 and align.
4161
41622003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4163
4164 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4165 FFI_MIPS_O32 for O32 ABI.
4166
41672003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
4168
4169 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4170 SPARC64. Cleanup whitespaces.
4171
41722003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
4173
4174 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4175 strongarm, xscale. Cleanup whitespaces.
4176 * testsuite/libffi.call/closure_fn1.c: Likewise.
4177 * testsuite/libffi.call/closure_fn2.c: Likewise.
4178 * testsuite/libffi.call/closure_fn3.c: Likewise.
4179 * testsuite/libffi.call/cls_12byte.c: Likewise.
4180 * testsuite/libffi.call/cls_16byte.c: Likewise.
4181 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4182 * testsuite/libffi.call/cls_20byte.c: Likewise.
4183 * testsuite/libffi.call/cls_24byte.c: Likewise.
4184 * testsuite/libffi.call/cls_2byte.c: Likewise.
4185 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4186 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4187 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4188 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4189 * testsuite/libffi.call/cls_4byte.c: Likewise.
4190 * testsuite/libffi.call/cls_5byte.c: Likewise.
4191 * testsuite/libffi.call/cls_6byte.c: Likewise.
4192 * testsuite/libffi.call/cls_7byte.c: Likewise.
4193 * testsuite/libffi.call/cls_8byte.c: Likewise.
4194 * testsuite/libffi.call/cls_double.c: Likewise.
4195 * testsuite/libffi.call/cls_float.c: Likewise.
4196 * testsuite/libffi.call/cls_uchar.c: Likewise.
4197 * testsuite/libffi.call/cls_uint.c: Likewise.
4198 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4199 * testsuite/libffi.call/cls_ushort.c: Likewise.
4200 * testsuite/libffi.call/nested_struct.c: Likewise.
4201 * testsuite/libffi.call/nested_struct1.c: Likewise.
4202 * testsuite/libffi.call/problem1.c: Likewise.
4203 * testsuite/libffi.special/unwindtest.cc: Likewise.
4204 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4205
42062003-09-18 David Edelsohn <edelsohn@gnu.org>
4207
4208 * src/powerpc/aix.S: Cleanup whitespaces.
4209 * src/powerpc/aix_closure.S: Likewise.
4210
42112003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4212
4213 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4214 * src/powerpc/darwin_closure.S: Likewise.
4215 * src/powerpc/ffi_darwin.c: Likewise.
4216
42172003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4218 David Edelsohn <edelsohn@gnu.org>
4219
4220 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4221 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4222 parameter stack.
4223 * src/powerpc/darwin_closure.S: Likewise.
4224 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4225 according to the Darwin/AIX ABI.
4226 (ffi_prep_cif_machdep): Likewise.
4227 (ffi_closure_helper_DARWIN): Likewise.
4228 Remove the outgoing parameter stack logic. Simplify the evaluation
4229 of the different CASE types.
4230 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4231 statement in the trampoline code.
4232
42332003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
4234
4235 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4236 for the register size.
4237 (ffi_closure_helper_SYSV): Handle the structure return value
4238 address correctly.
4239 (ffi_closure_helper_SYSV): Return the appropriate type when
4240 the registers are used for the structure return value.
4241 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4242 the 64-bit return value. Update copyright years.
4243
42442003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4245
4246 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4247 srcdir for ffi_mips.h.
4248
42492003-09-12 Alan Modra <amodra@bigpond.net.au>
4250
4251 * src/prep_cif.c (initialize_aggregate): Include tail padding in
4252 structure size.
4253 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4254 placement of float result.
4255 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4256 cast of "resp" for big-endian 64 bit machines.
4257
42582003-09-11 Alan Modra <amodra@bigpond.net.au>
4259
4260 * src/types.c (double, longdouble): Merge identical SH and ARM
4261 typedefs, and add POWERPC64.
4262 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4263 struct split over gpr and rest.
4264 (ffi_prep_cif_machdep): Correct intarg_count for structures.
4265 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4266
42672003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
4268
4269 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4270 passing correctly.
4271
42722003-09-09 Alan Modra <amodra@bigpond.net.au>
4273
4274 * configure: Regenerate.
4275
42762003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4277
4278 * Makefile.am: Remove build rules for ffitest.
4279 * Makefile.in: Rebuilt.
4280
42812003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4282
4283 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4284 about implicit declaration of abort().
4285
42862003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4287
4288 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4289 * Makefile.in: Rebuilt.
4290 * configure.in: Add dejagnu test framework.
4291 * configure: Rebuilt.
4292
4293 * testsuite/Makefile.am: New file.
4294 * testsuite/Makefile.in: Built
4295 * testsuite/lib/libffi-dg.exp: New file.
4296 * testsuite/config/default.exp: Likewise.
4297 * testsuite/libffi.call/call.exp: Likewise.
4298 * testsuite/libffi.call/ffitest.h: Likewise.
4299 * testsuite/libffi.call/closure_fn0.c: Likewise.
4300 * testsuite/libffi.call/closure_fn1.c: Likewise.
4301 * testsuite/libffi.call/closure_fn2.c: Likewise.
4302 * testsuite/libffi.call/closure_fn3.c: Likewise.
4303 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4304 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4305 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4306 * testsuite/libffi.call/cls_2byte.c: Likewise.
4307 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4308 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4309 * testsuite/libffi.call/cls_4byte.c: Likewise.
4310 * testsuite/libffi.call/cls_5byte.c: Likewise.
4311 * testsuite/libffi.call/cls_6byte.c: Likewise.
4312 * testsuite/libffi.call/cls_7byte.c: Likewise.
4313 * testsuite/libffi.call/cls_8byte.c: Likewise.
4314 * testsuite/libffi.call/cls_12byte.c: Likewise.
4315 * testsuite/libffi.call/cls_16byte.c: Likewise.
4316 * testsuite/libffi.call/cls_20byte.c: Likewise.
4317 * testsuite/libffi.call/cls_24byte.c: Likewise.
4318 * testsuite/libffi.call/cls_double.c: Likewise.
4319 * testsuite/libffi.call/cls_float.c: Likewise.
4320 * testsuite/libffi.call/cls_uchar.c: Likewise.
4321 * testsuite/libffi.call/cls_uint.c: Likewise.
4322 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4323 * testsuite/libffi.call/cls_ushort.c: Likewise.
4324 * testsuite/libffi.call/float.c: Likewise.
4325 * testsuite/libffi.call/float1.c: Likewise.
4326 * testsuite/libffi.call/float2.c: Likewise.
4327 * testsuite/libffi.call/many.c: Likewise.
4328 * testsuite/libffi.call/many_win32.c: Likewise.
4329 * testsuite/libffi.call/nested_struct.c: Likewise.
4330 * testsuite/libffi.call/nested_struct1.c: Likewise.
4331 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4332 * testsuite/libffi.call/problem1.c: Likewise.
4333 * testsuite/libffi.call/promotion.c: Likewise.
4334 * testsuite/libffi.call/return_ll.c: Likewise.
4335 * testsuite/libffi.call/return_sc.c: Likewise.
4336 * testsuite/libffi.call/return_uc.c: Likewise.
4337 * testsuite/libffi.call/strlen.c: Likewise.
4338 * testsuite/libffi.call/strlen_win32.c: Likewise.
4339 * testsuite/libffi.call/struct1.c: Likewise.
4340 * testsuite/libffi.call/struct2.c: Likewise.
4341 * testsuite/libffi.call/struct3.c: Likewise.
4342 * testsuite/libffi.call/struct4.c: Likewise.
4343 * testsuite/libffi.call/struct5.c: Likewise.
4344 * testsuite/libffi.call/struct6.c: Likewise.
4345 * testsuite/libffi.call/struct7.c: Likewise.
4346 * testsuite/libffi.call/struct8.c: Likewise.
4347 * testsuite/libffi.call/struct9.c: Likewise.
4348 * testsuite/libffi.special/special.exp: New file.
4349 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4350 * testsuite/libffi.special/unwindtest.cc: Likewise.
4351
4352
43532003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
4354
4355 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
4356 copyright years.
4357
43582003-08-02 Alan Modra <amodra@bigpond.net.au>
4359
4360 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4361 structure passing.
4362 (ffi_closure_helper_LINUX64): Likewise.
4363 * src/powerpc/linux64.S: Remove code writing to parm save area.
4364 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4365 address in lr from ffi_closure_helper_LINUX64 call to calculate
4366 table address. Optimize function tail.
4367
43682003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
4369
4370 * src/sparc/ffi.c: Handle all floating point registers.
4371 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4372
43732003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4374
4375 * README: Note that libffi is not part of GCC. Update the project
4376 URL and status.
4377
43782003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4379
4380 * src/powerpc/ppc_closure.S: Include ffi.h.
4381
43822003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4383
4384 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4385 Use C style comments.
4386
43872003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4388
4389 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
4390 * Makefile.in: Regenerate.
4391 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
4392 * configure: Regenerate.
4393 * include/ffi.h.in: Add SHmedia support.
4394 * src/sh64/ffi.c: New file.
4395 * src/sh64/sysv.S: New file.
4396
43972003-05-16 Jakub Jelinek <jakub@redhat.com>
4398
4399 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
4400 should be read-only.
4401 * configure: Rebuilt.
4402 * fficonfig.h.in: Rebuilt.
4403 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
4404 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
4405 * src/powerpc/linux64.S: Likewise.
4406 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
4407 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
4408 if -fpic/-fPIC/-mrelocatable.
4409 * src/powerpc/powerpc_closure.S: Likewise.
4410 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
4411 #write in .eh_frame flags.
4412 * src/sparc/v9.S: Likewise.
4413 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
4414 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
4415 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
4416
44172003-05-07 Jeff Sturm <jsturm@one-point.com>
4418
4419 Fixes PR bootstrap/10656
4420 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
4421 support for .register pseudo-op.
4422 * src/sparc/v8.S: Use it.
4423 * fficonfig.h.in: Rebuilt.
4424 * configure: Rebuilt.
4425
44262003-04-18 Jakub Jelinek <jakub@redhat.com>
4427
4428 * include/ffi.h.in (POWERPC64): Define if 64-bit.
4429 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
4430 Make it the default on POWERPC64.
4431 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
4432 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
4433 * configure: Rebuilt.
4434 * src/powerpc/ffi.c (hidden): Define.
4435 (ffi_prep_args_SYSV): Renamed from
4436 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
4437 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
4438 ASM_NEEDS_REGISTERS64): New.
4439 (ffi_prep_args64): New function.
4440 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
4441 (ffi_call): Likewise.
4442 (ffi_prep_closure): Likewise.
4443 (flush_icache): Surround by #ifndef POWERPC64.
4444 (ffi_dblfl): New union type.
4445 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
4446 (ffi_closure_helper_LINUX64): New function.
4447 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
4448 __powerpc64__.
4449 * src/powerpc/sysv.S: Likewise.
4450 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
4451 * src/powerpc/linux64.S: New file.
4452 * src/powerpc/linux64_closure.S: New file.
4453 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
4454 src/powerpc/linux64_closure.S.
4455 (TARGET_SRC_POWERPC): Likewise.
4456
4457 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
4458 closure_test_fn3): Fix result printing on big-endian 64-bit
4459 machines.
4460 (main): Print tst2_arg instead of uninitialized tst2_result.
4461
4462 * src/ffitest.c (main): Hide what closure pointer really points to
4463 from the compiler.
4464
44652003-04-16 Richard Earnshaw <rearnsha@arm.com>
4466
4467 * configure.in (arm-*-netbsdelf*): Add configuration.
4468 (configure): Regenerated.
4469
44702003-04-04 Loren J. Rittle <ljrittle@acm.org>
4471
4472 * include/Makefile.in: Regenerate.
4473
44742003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4475
4476 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
4477 bit mode.
4478 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
4479 Receive closure pointer through parameter, read args using
4480 __builtin_dwarf_cfa.
4481 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
4482
44832003-03-12 Andreas Schwab <schwab@suse.de>
4484
4485 * configure.in: Avoid trailing /. in toolexeclibdir.
4486 * configure: Rebuilt.
4487
44882003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
4489
4490 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
4491
44922003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
4493
4494 * libffi/src/powerpc/darwin_closure.S:
4495 Fix alignement bug, allocate 8 bytes for the result.
4496 * libffi/src/powerpc/aix_closure.S:
4497 Likewise.
4498 * libffi/src/powerpc/ffi_darwin.c:
4499 Update stackframe description for aix/darwin_closure.S.
4500
45012003-02-06 Jakub Jelinek <jakub@redhat.com>
4502
4503 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
4504 attribute.
4505
45062003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
4507 Andreas Schwab <schwab@suse.de>
4508
4509 * configure.in: Adjust command to source config-ml.in to account
4510 for changes to the libffi_basedir definition.
4511 (libffi_basedir): Remove ${srcdir} from value and include trailing
4512 slash if nonempty.
4513
4514 * configure: Regenerate.
4515
45162003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4517
4518 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
4519
45202003-01-28 Andrew Haley <aph@redhat.com>
4521
4522 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
4523 * src/x86/ffi64.c (ffi_prep_closure): New.
4524 (ffi_closure_UNIX64_inner): New.
4525 * src/x86/unix64.S (ffi_closure_UNIX64): New.
4526
45272003-01-27 Alexandre Oliva <aoliva@redhat.com>
4528
4529 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
4530 Remove USE_LIBDIR conditional.
4531 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
4532 * Makefile.in, configure: Rebuilt.
4533
45342003-01027 David Edelsohn <edelsohn@gnu.org>
4535
4536 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
4537 * Makefile.in: Regenerate.
4538
45392003-01-22 Andrew Haley <aph@redhat.com>
4540
4541 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
4542 unwind info.
4543
45442003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
4545
4546 * src/powerpc/darwin.S: Add unwind info.
4547 * src/powerpc/darwin_closure.S: Likewise.
4548
45492003-01-14 Andrew Haley <aph@redhat.com>
4550
4551 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
4552 (ffi_prep_cif_machdep): Likewise.
4553 * src/x86/unix64.S: Add unwind info.
4554
45552003-01-14 Andreas Jaeger <aj@suse.de>
4556
4557 * src/ffitest.c (main): Only use ffi_closures if those are
4558 supported.
4559
45602003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
4561
4562 * libffi/src/ffitest.c
4563 add closure testcases
4564
45652003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
4566
4567 * libffi/src/powerpc/ffi.c
4568 fix alignment bug for float (4 byte aligned iso 8 byte)
4569
45702003-01-09 Geoffrey Keating <geoffk@apple.com>
4571
4572 * src/powerpc/ffi_darwin.c: Remove RCS version string.
4573 * src/powerpc/darwin.S: Remove RCS version string.
4574
45752003-01-03 Jeff Sturm <jsturm@one-point.com>
4576
4577 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
4578 * src/ffitest.c (main): Use static storage for closure.
4579 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
4580 * src/sparc/v8.S (ffi_closure_v8): New.
4581 * src/sparc/v9.S (ffi_closure_v9): New.
4582
45832002-11-10 Ranjit Mathew <rmathew@hotmail.com>
4584
4585 * include/ffi.h.in: Added FFI_STDCALL ffi_type
4586 enumeration for X86_WIN32.
4587 * src/x86/win32.S: Added ffi_call_STDCALL function
4588 definition.
4589 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
4590 switch cases for recognising FFI_STDCALL and
4591 calling ffi_call_STDCALL if target is X86_WIN32.
4592 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
4593 stdcall versions of the "my_strlen" and "many"
4594 test functions (for X86_WIN32).
4595 Added test cases to test stdcall invocation using
4596 these functions.
4597
45982002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
4599
4600 * src/sh/sysv.S: Add DWARF2 unwind info.
4601
46022002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
4603
4604 * src/s390/sysv.S (.eh_frame section): Make section read-only.
4605
46062002-11-26 Jim Wilson <wilson@redhat.com>
4607
4608 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
4609
46102002-11-23 H.J. Lu <hjl@gnu.org>
4611
4612 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
4613 Include ../config/accross.m4.
4614 * aclocal.m4; Rebuild.
4615 * configure: Likewise.
4616
46172002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
4618
4619 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
4620
46212002-11-11 DJ Delorie <dj@redhat.com>
4622
4623 * configure.in: Look for common files in the right place.
4624
46252002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
4626
4627 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
4628 raw data as _Jv_word values, not ffi_raw.
4629 (ffi_java_ptrarray_to_raw): Likewise.
4630 (ffi_java_rvalue_to_raw): New function.
4631 (ffi_java_raw_call): Call it.
4632 (ffi_java_raw_to_rvalue): New function.
4633 (ffi_java_translate_args): Call it.
4634 * src/ffitest.c (closure_test_fn): Interpret return value
4635 as ffi_arg, not int.
4636 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
4637 FFI_TYPE_POINTER case.
4638 (ffi_closure_helper_SYSV): Likewise. Also, assume return
4639 values extended to word size.
4640
46412002-10-02 Andreas Jaeger <aj@suse.de>
4642
4643 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
4644
46452002-10-01 Bo Thorsen <bo@smetana.suse.de>
4646
4647 * include/ffi.h.in: Fix i386 win32 compilation.
4648
46492002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
4650
4651 * configure.in: Add s390x-*-linux-* target.
4652 * configure: Regenerate.
4653 * include/ffi.h.in: Define S390X for s390x targets.
4654 (FFI_CLOSURES): Define for s390/s390x.
4655 (FFI_TRAMPOLINE_SIZE): Likewise.
4656 (FFI_NATIVE_RAW_API): Likewise.
4657 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
4658 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
4659 * src/s390/ffi.c: Major rework of existing code. Add support for
4660 s390x targets. Add closure support.
4661 * src/s390/sysv.S: Likewise.
4662
46632002-09-29 Richard Earnshaw <rearnsha@arm.com>
4664
4665 * src/arm/sysv.S: Fix typo.
4666
46672002-09-28 Richard Earnshaw <rearnsha@arm.com>
4668
4669 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
4670 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
4671 (ffi_call_SYSV): Handle soft-float.
4672
46732002-09-27 Bo Thorsen <bo@suse.de>
4674
4675 * include/ffi.h.in: Fix multilib x86-64 support.
4676
46772002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4678
4679 * Makefile.am (all-multi): Fix multilib parallel build.
4680
46812002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
4682
4683 * configure.in (sh[34]*-*-linux*): Add brackets.
4684 * configure: Regenerate.
4685
46862002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
4687
4688 * Makefile.am: Add SH support.
4689 * Makefile.in: Regenerate.
4690 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
4691 * configure: Regenerate.
4692 * include/ffi.h.in: Add SH support.
4693 * src/sh/ffi.c: New file.
4694 * src/sh/sysv.S: New file.
4695 * src/types.c: Add SH support.
4696
46972002-07-16 Bo Thorsen <bo@suse.de>
4698
4699 * src/x86/ffi64.c: New file that adds x86-64 support.
4700 * src/x86/unix64.S: New file that handles argument setup for
4701 x86-64.
4702 * src/x86/sysv.S: Don't use this on x86-64.
4703 * src/x86/ffi.c: Don't use this on x86-64.
4704 Remove unused vars.
4705 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
4706 for x86-64.
4707 * src/ffitest.c (struct6): New test that tests a special case in
4708 the x86-64 ABI.
4709 (struct7): Likewise.
4710 (struct8): Likewise.
4711 (struct9): Likewise.
4712 (closure_test_fn): Silence warning about this when it's not used.
4713 (main): Add the new tests.
4714 (main): Fix a couple of wrong casts and silence some compiler warnings.
4715 * include/ffi.h.in: Add x86-64 ABI definition.
4716 * fficonfig.h.in: Regenerate.
4717 * Makefile.am: Add x86-64 support.
4718 * configure.in: Likewise.
4719 * Makefile.in: Regenerate.
4720 * configure: Likewise.
4721
47222002-06-24 Bo Thorsen <bo@suse.de>
4723
4724 * src/types.c: Merge settings for similar architectures.
4725 Add x86-64 sizes and alignments.
4726
47272002-06-23 Bo Thorsen <bo@suse.de>
4728
4729 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
4730 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
4731 * src/mips/ffi.c (ffi_prep_args): Likewise.
4732 * src/m68k/ffi.c (ffi_prep_args): Likewise.
4733
47342002-07-18 H.J. Lu (hjl@gnu.org)
4735
4736 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
4737 (libffi_la_SOURCES): Support MIPS_LINUX.
4738 (libffi_convenience_la_SOURCES): Likewise.
4739 * Makefile.in: Regenerated.
4740
4741 * configure.in (mips64*-*): Skip.
4742 (mips*-*-linux*): New.
4743 * configure: Regenerated.
4744
4745 * src/mips/ffi.c: Include <sgidefs.h>.
4746
47472002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
4748
4749 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
4750
47512002-05-27 Roger Sayle <roger@eyesopen.com>
4752
4753 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
4754
47552002-05-27 Bo Thorsen <bo@suse.de>
4756
4757 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
4758 fix formatting.
4759
47602002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
4761
4762 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
4763 beginning of function (for older apple cc).
4764
47652002-05-08 Alexandre Oliva <aoliva@redhat.com>
4766
4767 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
4768 script entry, and set LD to it when configuring multilibs.
4769 * configure: Rebuilt.
4770
47712002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
4772
4773 * configure.in (sparc64-*-netbsd*): Add target.
4774 (sparc-*-netbsdelf*): Likewise.
4775 * configure: Regenerate.
4776
47772002-04-28 David S. Miller <davem@redhat.com>
4778
4779 * configure.in, configure: Fix SPARC test in previous change.
4780
47812002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
4782
4783 * Makefile.am: Add Linux for S/390 support.
4784 * Makefile.in: Regenerate.
4785 * configure.in: Add Linux for S/390 support.
4786 * configure: Regenerate.
4787 * include/ffi.h.in: Add Linux for S/390 support.
4788 * src/s390/ffi.c: New file from libffi CVS tree.
4789 * src/s390/sysv.S: New file from libffi CVS tree.
4790
47912002-04-28 Jakub Jelinek <jakub@redhat.com>
4792
4793 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
4794 %r_disp32().
4795 * src/sparc/v8.S: Use it.
4796 * src/sparc/v9.S: Likewise.
4797 * fficonfig.h.in: Rebuilt.
4798 * configure: Rebuilt.
4799
48002002-04-08 Hans Boehm <Hans_Boehm@hp.com>
4801
4802 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
4803 correctly.
4804 * src/ia64/unix.S: Add unwind information. Fix comments.
4805 Save sp in a way that's compatible with unwind info.
4806 (ffi_call_unix): Correctly restore sp in all cases.
4807 * src/ia64/ffi.c: Add, fix comments.
4808
48092002-04-08 Jakub Jelinek <jakub@redhat.com>
4810
4811 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
4812
48132002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
4814
4815 * configure.in (alpha*-*-netbsd*): Add target.
4816 * configure: Regenerate.
4817
48182002-04-04 Jeff Sturm <jsturm@one-point.com>
4819
4820 * src/sparc/v8.S: Add unwind info.
4821 * src/sparc/v9.S: Likewise.
4822
48232002-03-30 Krister Walfridsson <cato@df.lth.se>
4824
4825 * configure.in: Enable i*86-*-netbsdelf*.
4826 * configure: Rebuilt.
4827
48282002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
4829
4830 PR other/2620
4831 * src/mips/n32.s: Delete
4832 * src/mips/o32.s: Delete
4833
48342002-03-21 Loren J. Rittle <ljrittle@acm.org>
4835
4836 * configure.in: Enable alpha*-*-freebsd*.
4837 * configure: Rebuilt.
4838
48392002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4840
4841 * Makefile.am: libfficonvenience -> libffi_convenience.
4842 * Makefile.in: Rebuilt.
4843
4844 * Makefile.am: Define ffitest_OBJECTS.
4845 * Makefile.in: Rebuilt.
4846
48472002-03-07 Andreas Tobler <toa@pop.agri.ch>
4848 David Edelsohn <edelsohn@gnu.org>
4849
4850 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
4851 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
4852 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
4853 * Makefile.in: Regenerate.
4854 * include/ffi.h.in: Add AIX and Darwin closure definitions.
4855 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
4856 (flush_icache, flush_range): New functions.
4857 (ffi_closure_helper_DARWIN): New function.
4858 * src/powerpc/aix_closure.S: New file.
4859 * src/powerpc/darwin_closure.S: New file.
4860
48612002-02-24 Jeff Sturm <jsturm@one-point.com>
4862
4863 * include/ffi.h.in: Add typedef for ffi_arg.
4864 * src/ffitest.c (main): Declare rint with ffi_arg.
4865
48662002-02-21 Andreas Tobler <toa@pop.agri.ch>
4867
4868 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
4869 number of GPRs for floating-point arguments.
4870
48712002-01-31 Anthony Green <green@redhat.com>
4872
4873 * configure: Rebuilt.
4874 * configure.in: Replace CHECK_SIZEOF and endian tests with
4875 cross-compiler friendly macros.
4876 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
4877 macros.
4878
48792002-01-18 David Edelsohn <edelsohn@gnu.org>
4880
4881 * src/powerpc/darwin.S (_ffi_call_AIX): New.
4882 * src/powerpc/aix.S (ffi_call_DARWIN): New.
4883
48842002-01-17 David Edelsohn <edelsohn@gnu.org>
4885
4886 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
4887 (TARGET_SRC_POWERPC_AIX): New.
4888 (POWERPC_AIX): New stanza.
4889 * Makefile.in: Regenerate.
4890 * configure.in: Add AIX case.
4891 * configure: Regenerate.
4892 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
4893 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
4894 size. Fix "long double" support.
4895 (ffi_call): Add FFI_AIX case.
4896 * src/powerpc/aix.S: New.
4897
48982001-10-09 John Hornkvist <john@toastedmarshmallow.com>
4899
4900 Implement Darwin PowerPC ABI.
4901 * configure.in: Handle powerpc-*-darwin*.
4902 * Makefile.am: Set source files for POWERPC_DARWIN.
4903 * configure: Rebuilt.
4904 * Makefile.in: Rebuilt.
4905 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
4906 POWERPC_DARWIN.
4907 * src/powerpc/darwin.S: New file.
4908 * src/powerpc/ffi_darwin.c: New file.
4909
49102001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
4911
4912 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
4913
49142001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4915
4916 * src/x86/sysv.S: Avoid gas-only .balign directive.
4917 Use C style comments.
4918
49192001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4920
4921 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
4922 Fixes PR bootstrap/3563.
4923
49242001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4925
4926 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
4927
49282001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4929
4930 * configure.in: Recognize sparc*-sun-* host.
4931 * configure: Regenerate.
4932
49332001-06-06 Andrew Haley <aph@redhat.com>
4934
4935 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
4936
49372001-06-03 Andrew Haley <aph@redhat.com>
4938
4939 * src/alpha/osf.S: Add unwind info.
4940 * src/powerpc/sysv.S: Add unwind info.
4941 * src/powerpc/ppc_closure.S: Likewise.
4942
49432000-05-31 Jeff Sturm <jsturm@one-point.com>
4944
4945 * configure.in: Fix AC_ARG_ENABLE usage.
4946 * configure: Rebuilt.
4947
49482001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4949
4950 * configure.in: Remove warning about beta code.
4951 * configure: Rebuilt.
4952
49532001-04-25 Hans Boehm <Hans_Boehm@hp.com>
4954
4955 * src/ia64/unix.S: Restore stack pointer when returning from
4956 ffi_closure_UNIX.
4957 * src/ia64/ffi.c: Fix typo in comment.
4958
49592001-04-18 Jim Wilson <wilson@redhat.com>
4960
4961 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
4962 to eliminate RAW DV.
4963
49642001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
4965
4966 * Makefile.am: Make a libtool convenience library.
4967 * Makefile.in: Rebuilt.
4968
49692001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
4970
4971 * configure.in: Use different syntax for subdirectory creation.
4972 * configure: Rebuilt.
4973
49742001-03-27 Jon Beniston <jon@beniston.com>
4975
4976 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
4977 * configure: Rebuilt.
4978 * Makefile.am: Added X86_WIN32 target support.
4979 * Makefile.in: Rebuilt.
4980
4981 * include/ffi.h.in: Added X86_WIN32 target support.
4982
4983 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
4984 * src/types.c: Added X86_WIN32 target support.
4985
4986 * src/x86/win32.S: New file. Based on sysv.S, but with EH
4987 stuff removed and made to work with CygWin's gas.
4988
49892001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
4990
4991 * configure.in: Make target subdirectory in build dir.
4992 * Makefile.am: Override suffix based rules to specify correct output
4993 subdirectory.
4994 * Makefile.in: Rebuilt.
4995 * configure: Rebuilt.
4996
49972001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
4998
4999 * src/powerpc/ppc_closure.S: New file.
5000 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5001 involving long long and register pairs.
5002 (ffi_prep_closure): New function.
5003 (flush_icache): Likewise.
5004 (ffi_closure_helper_SYSV): Likewise.
5005 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5006 (FFI_TRAMPOLINE_SIZE): Likewise.
5007 (FFI_NATIVE_RAW_API): Likewise.
5008 * Makefile.in: Rebuilt.
5009 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5010 (TARGET_SRC_POWERPC): Likewise.
5011
50122001-03-19 Tom Tromey <tromey@redhat.com>
5013
5014 * Makefile.in: Rebuilt.
5015 * Makefile.am (ffitest_LDFLAGS): New macro.
5016
50172001-03-02 Nick Clifton <nickc@redhat.com>
5018
5019 * include/ffi.h.in: Remove RCS ident string.
5020 * include/ffi_mips.h: Remove RCS ident string.
5021 * src/debug.c: Remove RCS ident string.
5022 * src/ffitest.c: Remove RCS ident string.
5023 * src/prep_cif.c: Remove RCS ident string.
5024 * src/types.c: Remove RCS ident string.
5025 * src/alpha/ffi.c: Remove RCS ident string.
5026 * src/alpha/osf.S: Remove RCS ident string.
5027 * src/arm/ffi.c: Remove RCS ident string.
5028 * src/arm/sysv.S: Remove RCS ident string.
5029 * src/mips/ffi.c: Remove RCS ident string.
5030 * src/mips/n32.S: Remove RCS ident string.
5031 * src/mips/o32.S: Remove RCS ident string.
5032 * src/sparc/ffi.c: Remove RCS ident string.
5033 * src/sparc/v8.S: Remove RCS ident string.
5034 * src/sparc/v9.S: Remove RCS ident string.
5035 * src/x86/ffi.c: Remove RCS ident string.
5036 * src/x86/sysv.S: Remove RCS ident string.
5037
50382001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5039
5040 * include/ffi.h.in: Change sourceware.cygnus.com references to
5041 gcc.gnu.org.
5042
50432000-12-09 Richard Henderson <rth@redhat.com>
5044
5045 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5046 (ffi_closure_osf_inner): Index rather than increment avalue
5047 and arg_types. Give ffi_closure_osf the raw return value type.
5048 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5049 promotion.
5050
50512000-12-07 Richard Henderson <rth@redhat.com>
5052
5053 * src/raw_api.c (ffi_translate_args): Fix typo.
5054 (ffi_prep_closure): Likewise.
5055
5056 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5057 FFI_TRAMPOLINE_SIZE.
5058 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5059 cif->bytes for new ffi_call_osf implementation.
5060 (ffi_prep_args): Absorb into ...
5061 (ffi_call): ... here. Do all stack allocation here and
5062 avoid a callback function.
5063 (ffi_prep_closure, ffi_closure_osf_inner): New.
5064 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5065 (ffi_closure_osf): New.
5066
50672000-09-10 Alexandre Oliva <aoliva@redhat.com>
5068
5069 * config.guess, config.sub, install-sh: Removed.
5070 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5071 * Makefile.in: Rebuilt.
5072
5073 * acinclude.m4: Include libtool macros from the top level.
5074 * aclocal.m4, configure: Rebuilt.
5075
50762000-08-22 Alexandre Oliva <aoliva@redhat.com>
5077
5078 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5079 * configure: Rebuilt.
5080
50812000-05-11 Scott Bambrough <scottb@netwinder.org>
5082
5083 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5084 memory correctly. Use conditional instructions, not branches where
5085 possible.
5086
50872000-05-04 Tom Tromey <tromey@cygnus.com>
5088
5089 * configure: Rebuilt.
5090 * configure.in: Match `arm*-*-linux-*'.
5091 From Chris Dornan <cdornan@arm.com>.
5092
50932000-04-28 Jakub Jelinek <jakub@redhat.com>
5094
5095 * Makefile.am (SUBDIRS): Define.
5096 (AM_MAKEFLAGS): Likewise.
5097 (Multilib support.): Add section.
5098 * Makefile.in: Rebuilt.
5099 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
5100 New variables. Set for gcc using -print-multi-lib. Export them
5101 to libtool.
5102 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5103 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5104 for -shared links.
5105 (extra_compiler_flags_value, extra_compiler_flags): Check these
5106 for extra compiler options which need to be passed down in
5107 compiler_flags.
5108
51092000-04-16 Anthony Green <green@redhat.com>
5110
5111 * configure: Rebuilt.
5112 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5113
51142000-04-14 Jakub Jelinek <jakub@redhat.com>
5115
5116 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
5117 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5118 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5119 Replace all void * sizeofs with sizeof(int).
5120 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5121 different than DOUBLE.
5122 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5123 (ffi_prep_args_v9): New function.
5124 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5125 (ffi_V9_return_struct): New function.
5126 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5127 32bit code (not yet cross-arch calls).
5128 * src/sparc/v8.S: Add struct return delay nop.
5129 Handle long long.
5130 * src/sparc/v9.S: New file.
5131 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5132 is used on sparc64 only for structures larger than 32 bytes.
5133 Pass by reference for structures is done for structure arguments
5134 larger than 16 bytes.
5135 * src/ffitest.c (main): Use 64bit rint on sparc64.
5136 Run long long tests on sparc.
5137 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5138 sparc64.
5139 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5140 on sparc64.
5141 * configure.in (sparc-*-linux*): New supported target.
5142 (sparc64-*-linux*): Likewise.
5143 * configure: Rebuilt.
5144 * Makefile.am: Add v9.S to SPARC files.
5145 * Makefile.in: Likewise.
5146 (LINK): Surround $(CCLD) into double quotes, so that multilib
5147 compiles work correctly.
5148
51492000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5150
5151 * configure: Rebuilt.
5152 * configure.in: (i*86-*-solaris*): New libffi target. Patch
5153 proposed by Bryce McKinlay.
5154
51552000-03-20 Tom Tromey <tromey@cygnus.com>
5156
5157 * Makefile.in: Hand edit for java_raw_api.lo.
5158
51592000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
5160
5161 * config.guess, config.sub: Update from the gcc tree.
5162 Fix for PR libgcj/168.
5163
51642000-03-03 Tom Tromey <tromey@cygnus.com>
5165
5166 * Makefile.in: Fixed ia64 by hand.
5167
5168 * configure: Rebuilt.
5169 * configure.in (--enable-multilib): New option.
5170 (libffi_basedir): New subst.
5171 (AC_OUTPUT): Added multilib code.
5172
51732000-03-02 Tom Tromey <tromey@cygnus.com>
5174
5175 * Makefile.in: Rebuilt.
5176 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5177 directory name.
5178
51792000-02-25 Hans Boehm <boehm@acm.org>
5180
5181 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5182 files.
5183 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5184 list.
5185 (ffi_prep_raw_closure): Use ffi_translate_args, not
5186 ffi_closure_translate.
5187 * src/java_raw_api.c: New file.
5188 * src/ffitest.c (closure_test_fn): New function.
5189 (main): Define `rint' as long long on IA64. Added new test when
5190 FFI_CLOSURES is defined.
5191 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5192 (ffi_abi): Recognize IA64.
5193 (ffi_raw): Added `flt' field.
5194 Added "Java raw API" code.
5195 * configure.in: Recognize ia64.
5196 * Makefile.am (TARGET_SRC_IA64): New macro.
5197 (libffi_la_common_SOURCES): Added java_raw_api.c.
5198 (libffi_la_SOURCES): Define in IA64 case.
5199
52002000-01-04 Tom Tromey <tromey@cygnus.com>
5201
5202 * Makefile.in: Rebuilt with newer automake.
5203
52041999-12-31 Tom Tromey <tromey@cygnus.com>
5205
5206 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5207
52081999-09-01 Tom Tromey <tromey@cygnus.com>
5209
5210 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5211 undefs.
5212 * fficonfig.h.in: Rebuilt.
5213 * configure: Rebuilt.
5214 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5215 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5216 * acconfig.h: Don't #undef PACKAGE or VERSION.
5217
52181999-08-09 Anthony Green <green@cygnus.com>
5219
5220 * include/ffi.h.in: Try to work around messy header problem
5221 with PACKAGE and VERSION.
5222
5223 * configure: Rebuilt.
5224 * configure.in: Change version to 2.00-beta.
5225
5226 * fficonfig.h.in: Rebuilt.
5227 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5228
5229 * src/x86/ffi.c (ffi_raw_call): Rename.
5230
52311999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
5232
5233 * src/x86/ffi.c (ffi_closure_SYSV): New function.
5234 (ffi_prep_incoming_args_SYSV): Ditto.
5235 (ffi_prep_closure): Ditto.
5236 (ffi_closure_raw_SYSV): Ditto.
5237 (ffi_prep_raw_closure): More ditto.
5238 (ffi_call_raw): Final ditto.
5239
5240 * include/ffi.h.in: Add definitions for closure and raw API.
5241
5242 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
5243 FFI_TYPE_UINT64.
5244
5245 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5246
5247 * src/raw_api.c: New file.
5248
5249 * include/ffi.h.in (ffi_raw): New type.
5250 (UINT_ARG, SINT_ARG): New defines.
5251 (ffi_closure, ffi_raw_closure): New types.
5252 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
5253
5254 * configure.in: Add check for endianness and sizeof void*.
5255
5256 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5257 instead of directly.
5258
5259 * configure: Rebuilt.
5260
5261Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
5262
5263 * configure.in: Add x86 and powerpc BeOS configurations.
5264 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5265
52661999-05-09 Anthony Green <green@cygnus.com>
5267
5268 * configure.in: Add warning about this being beta code.
5269 Remove src/Makefile.am from the picture.
5270 * configure: Rebuilt.
5271
5272 * Makefile.am: Move logic from src/Makefile.am. Add changes
5273 to support libffi as a target library.
5274 * Makefile.in: Rebuilt.
5275
5276 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5277 Upgraded to new autoconf, automake, libtool.
5278
5279 * README: Tweaks.
5280
5281 * LICENSE: Update copyright date.
5282
5283 * src/Makefile.am, src/Makefile.in: Removed.
5284
52851998-11-29 Anthony Green <green@cygnus.com>
5286
5287 * include/ChangeLog: Removed.
5288 * src/ChangeLog: Removed.
5289 * src/mips/ChangeLog: Removed.
5290 * src/sparc/ChangeLog: Remboved.
5291 * src/x86/ChangeLog: Removed.
5292
5293 * ChangeLog.v1: Created.