blob: fd6f4774c0f5baa1fa706072c66dcfb7064dcc10 [file] [log] [blame]
Anthony Green8bd15d12013-02-08 13:56:37 -050012012-04-02 Peter Bergner <bergner@vnet.ibm.com>
2
3 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Account for FP args pushed
4 on the stack.
5
Anthony Greencb03ea82013-02-08 12:25:18 -050062013-02-08 Anthony Green <green@moxielogic.com>
7
Anthony Green7aab8252013-02-08 13:26:21 -05008 * Makefile.am (EXTRA_DIST): Add missing files.
9 * testsuite/Makefile.am (EXTRA_DIST): Ditto.
10 * Makefile.in: Rebuilt.
11
122013-02-08 Anthony Green <green@moxielogic.com>
13
Anthony Greencb03ea82013-02-08 12:25:18 -050014 * configure.ac: Move sparc asm config checks to within functions
15 for compatibility with sun tools.
16 * configure: Rebuilt.
17 * src/sparc/ffi.c (ffi_prep_closure_loc): Flush cache on v9
18 systems.
19 * src/sparc/v8.S (ffi_flush_icache): Implement a sparc v9 cache
20 flusher.
21
Anthony Green35ee8d42013-02-08 07:12:41 -0500222013-02-08 Nathan Rossi <nathan.rossi@xilinx.com>
23
24 * src/microblaze/ffi.c (ffi_closure_call_SYSV): Fix handling of
25 small big-endian structures.
26 (ffi_prep_args): Ditto.
27
Anthony Greened6ae952013-02-07 16:43:36 -0500282013-02-07 Anthony Green <green@moxielogic.com>
29
Anthony Green9db7e1a2013-02-07 21:06:08 -050030 * src/sparc/v8.S (ffi_call_v8): Fix typo from last patch
31 (effectively hiding ffi_call_v8).
32
332013-02-07 Anthony Green <green@moxielogic.com>
34
Anthony Greence0138e2013-02-07 18:04:01 -050035 * configure.ac: Update bug reporting address.
36 * configure.in: Rebuild.
37
Anthony Greenfd07c9e2013-02-07 18:00:36 -050038 * src/sparc/v8.S (ffi_flush_icache): Out-of-line cache flusher for
39 Sun compiler.
40 * src/sparc/ffi.c (ffi_call): Remove warning.
41 Call ffi_flush_icache for non-GCC builds.
42 (ffi_prep_closure_loc): Use ffi_flush_icache.
43
Anthony Greened6ae952013-02-07 16:43:36 -050044 * Makefile.am (EXTRA_DIST): Add libtool-ldflags.
45 * Makefile.in: Rebuilt.
46 * libtool-ldflags: New file.
47
Anthony Greenffef2e02013-02-07 15:47:01 -0500482013-02-07 Daniel Schepler <dschepler@gmail.com>
49
50 * configure.ac: Correctly identify x32 systems as 64-bit.
51 * m4/libtool.m4: Remove libtool expr error.
52 * aclocal.m4, configure: Rebuilt.
53
Anthony Greenf3a4f3f2013-02-07 09:57:20 -0500542013-02-07 Anthony Green <green@moxielogic.com>
55
Anthony Green176aa9d2013-02-07 15:29:22 -050056 * configure.ac: Fix GCC usage test.
57 * configure: Rebuilt.
Anthony Green95eeceb2013-02-07 15:32:46 -050058 * README: Mention LLVM/GCC x86_64 issue.
59 * testsuite/Makefile.in: Rebuilt.
Anthony Green176aa9d2013-02-07 15:29:22 -050060
612013-02-07 Anthony Green <green@moxielogic.com>
62
Anthony Greenf3a4f3f2013-02-07 09:57:20 -050063 * testsuite/libffi.call/cls_double_va.c (main): Replace // style
64 comments with /* */ for xlc compiler.
65 * testsuite/libffi.call/stret_large.c (main): Ditto.
66 * testsuite/libffi.call/stret_large2.c (main): Ditto.
67 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
68 * testsuite/libffi.call/huge_struct.c (main): Ditto.
69 * testsuite/libffi.call/float_va.c (main): Ditto.
70 * testsuite/libffi.call/cls_struct_va1.c (main): Ditto.
71 * testsuite/libffi.call/cls_pointer_stack.c (main): Ditto.
72 * testsuite/libffi.call/cls_pointer.c (main): Ditto.
73 * testsuite/libffi.call/cls_longdouble_va.c (main): Ditto.
74
Anthony Greenf7cd61e2013-02-06 17:38:04 -0500752013-02-06 Anthony Green <green@moxielogic.com>
76
Anthony Green522f8fe2013-02-06 20:31:31 -050077 * man/ffi_prep_cif.3: Clean up for debian lintian checker.
78
792013-02-06 Anthony Green <green@moxielogic.com>
80
Anthony Greenf7cd61e2013-02-06 17:38:04 -050081 * Makefile.am (pkgconfigdir): Add missing pkgconfig install bits.
82 * Makefile.in: Rebuild.
83
Anthony Green6a790122013-02-06 17:37:15 -0500842013-02-02 Mark H Weaver <mhw@netris.org>
85
86 * src/x86/ffi64.c (ffi_call): Sign-extend integer arguments passed
87 via general purpose registers.
88
Anthony Greenaeb87192013-01-21 07:37:30 -0500892013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
90
91 * README: Add MicroBlaze details.
92 * Makefile.am: Add MicroBlaze support.
93 * configure.ac: Likewise.
94 * src/microblaze/ffi.c: New.
95 * src/microblaze/ffitarget.h: Likewise.
96 * src/microblaze/sysv.S: Likewise.
97
982013-01-21 Nathan Rossi <nathan.rossi@xilinx.com>
99 * testsuite/libffi.call/return_uc.c: Fixed issue.
100
Anthony Green20cae322013-01-21 07:07:38 -05001012013-01-21 Chris Zankel <chris@zankel.net>
102
103 * README: Add Xtensa support.
104 * Makefile.am: Likewise.
105 * configure.ac: Likewise.
106 * Makefile.in Regenerate.
107 * configure: Likewise.
108 * src/prep_cif.c: Handle Xtensa.
109 * src/xtensa: New directory.
110 * src/xtensa/ffi.c: New file.
111 * src/xtensa/ffitarget.h: Ditto.
112 * src/xtensa/sysv.S: Ditto.
113
Anthony Greenbff052d2013-01-11 10:24:32 -05001142013-01-11 Anthony Green <green@moxielogic.com>
115
Anthony Green05fbe1f2013-01-11 16:54:40 -0500116 * src/powerpc/ffi_darwin.c (ffi_prep_args): Replace // style
117 comments with /* */ for xlc compiler.
118 * src/powerpc/aix.S (ffi_call_AIX): Ditto.
Anthony Greenf03eab02013-01-11 17:14:11 -0500119 * testsuite/libffi.call/ffitest.h (allocate_mmap): Delete
120 deprecated inline function.
121 * testsuite/libffi.special/ffitestcxx.h: Ditto.
Anthony Green05fbe1f2013-01-11 16:54:40 -0500122 * README: Add update for AIX support.
123
1242013-01-11 Anthony Green <green@moxielogic.com>
125
Anthony Greenbff052d2013-01-11 10:24:32 -0500126 * configure.ac: Robustify pc relative reloc check.
127 * m4/ax_cc_maxopt.m4: Don't -malign-double. This is an ABI
128 changing option for 32-bit x86.
129 * aclocal.m4, configure: Rebuilt.
130 * README: Update supported target list.
131
Anthony Green2d9b3932013-01-09 21:14:54 -05001322013-01-10 Anthony Green <green@moxielogic.com>
133
Anthony Greencd41aea2013-01-10 17:25:45 -0500134 * README (tested): Add Compiler column to table.
135
1362013-01-10 Anthony Green <green@moxielogic.com>
137
Anthony Green8bf987d2013-01-10 17:24:51 -0500138 * src/x86/ffi64.c (struct register_args): Make sse array and array
139 of unions for sunpro compiler compatibility.
140
1412013-01-10 Anthony Green <green@moxielogic.com>
142
Anthony Green13e2d7b2013-01-10 10:52:02 -0500143 * configure.ac: Test target platform size_t size. Handle both 32
144 and 64-bit builds for x86_64-* and i?86-* targets (allowing for
145 CFLAG option to change default settings).
146 * configure, aclocal.m4: Rebuilt.
147
1482013-01-10 Anthony Green <green@moxielogic.com>
149
Anthony Green51415432013-01-10 07:35:53 -0500150 * testsuite/libffi.special/special.exp: Only run exception
151 handling tests when using GNU compiler.
152
Anthony Green56ba8d82013-01-10 07:25:10 -0500153 * m4/ax_compiler_vendor.m4: New file.
154 * configure.ac: Test for compiler vendor and don't use
155 AX_CFLAGS_WARN_ALL with the sun compiler.
156 * aclocal.m4, configure: Rebuilt.
157
1582013-01-10 Anthony Green <green@moxielogic.com>
159
Anthony Green6a028ca2013-01-10 01:19:43 -0500160 * include/ffi_common.h: Don't use GCCisms to define types when
161 building with the SUNPRO compiler.
162
1632013-01-10 Anthony Green <green@moxielogic.com>
164
Anthony Green2d9b3932013-01-09 21:14:54 -0500165 * configure.ac: Put local.exp in the right place.
166 * configure: Rebuilt.
167
168 * src/x86/ffi.c: Update comment about regparm function attributes.
169 * src/x86/sysv.S (ffi_closure_SYSV): The SUNPRO compiler requires
170 that all function arguments be passed on the stack (no regparm
171 support).
172
Anthony Greenf7879bc2013-01-08 07:30:28 -05001732013-01-08 Anthony Green <green@moxielogic.com>
174
Anthony Green83089842013-01-08 15:14:21 -0500175 * configure.ac: Generate local.exp. This sets CC_FOR_TARGET
176 when we are using the vendor compiler.
177 * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): Point to
178 ../local.exp.
179 * configure, testsuite/Makefile.in: Rebuilt.
180
Anthony Greenf26c7ca2013-01-08 14:47:05 -0500181 * testsuite/libffi.call/call.exp: Run tests with different
182 options, depending on whether or not we are using gcc or the
183 vendor compiler.
184 * testsuite/lib/libffi.exp (libffi-init): Set using_gcc based on
185 whether or not we are building/testing with gcc.
186
1872013-01-08 Anthony Green <green@moxielogic.com>
188
Anthony Green74c776e2013-01-08 12:25:54 -0500189 * configure.ac: Switch x86 solaris target to X86 by default.
190 * configure: Rebuilt.
191
1922013-01-08 Anthony Green <green@moxielogic.com>
193
Anthony Green8962c8c2013-01-08 12:22:24 -0500194 * configure.ac: Fix test for read-only eh_frame.
195 * configure: Rebuilt.
196
1972013-01-08 Anthony Green <green@moxielogic.com>
198
Anthony Green35ddb692013-01-08 07:53:37 -0500199 * src/x86/sysv.S, src/x86/unix64.S: Only emit DWARF unwind info
200 when building with the GNU toolchain.
Anthony Greenf7879bc2013-01-08 07:30:28 -0500201 * testsuite/libffi.call/ffitest.h (CHECK): Fix for Solaris vendor
202 compiler.
203
Anthony Green8f4772f2013-01-07 06:14:53 -05002042013-01-07 Thorsten Glaser <tg@mirbsd.org>
205
Anthony Green67cea902013-01-07 06:30:24 -0500206 * testsuite/libffi.call/cls_uchar_va.c,
207 testsuite/libffi.call/cls_ushort_va.c,
208 testsuite/libffi.call/va_1.c: Testsuite fixes.
209
2102013-01-07 Thorsten Glaser <tg@mirbsd.org>
211
Anthony Green8f4772f2013-01-07 06:14:53 -0500212 * src/m68k/ffi.c (CIF_FLAGS_SINT8, CIF_FLAGS_SINT16): Define.
213 (ffi_prep_cif_machdep): Fix 8-bit and 16-bit signed calls.
214 * src/m68k/sysv.S (ffi_call_SYSV, ffi_closure_SYSV): Ditto.
215
Anthony Greenea7f8442013-01-04 09:09:32 -05002162013-01-04 Anthony Green <green@moxielogic.com>
217
218 * Makefile.am (AM_CFLAGS): Don't automatically add -fexceptions
219 and -Wall. This is set in the configure script after testing for
220 GCC.
221 * Makefile.in: Rebuilt.
222
Anthony Greenf06c0f12013-01-02 09:39:17 -05002232013-01-02 rofl0r <https://github.com/rofl0r>
224
225 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix build error on ppc
226 when long double == double.
227
2282013-01-02 Reini Urban <rurban@x-ray.at>
229
230 * Makefile.am (libffi_la_LDFLAGS): Add -no-undefined to LDFLAGS
231 (required for shared libs on cygwin/mingw).
232 * Makefile.in: Rebuilt.
233
Anthony Greendfadfb12012-10-31 06:46:41 -04002342012-10-31 Alan Modra <amodra@gmail.com>
235
236 * src/powerpc/linux64_closure.S: Add new ABI support.
237 * src/powerpc/linux64.S: Likewise.
238
Anthony Greene944b8c2012-10-30 14:06:09 -04002392012-10-30 Magnus Granberg <zorry@gentoo.org>
240 Pavel Labushev <pavel.labushev@runbox.ru>
241
242 * configure.ac: New options pax_emutramp
243 * configure, fficonfig.h.in: Regenerated
244 * src/closures.c: New function emutramp_enabled_check() and
245 checks.
246
Anthony Greenf3429962012-10-30 07:42:27 -04002472012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
248
249 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
250 lion) and future version.
251 * configure: Rebuild.
252
Anthony Green58e8b662012-10-30 07:07:19 -04002532012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
254 Marcus Shawcroft <marcus.shawcroft at arm.com>
255
256 * README: Add details of aarch64 port.
257 * src/aarch64/ffi.c: New.
258 * src/aarch64/ffitarget.h: Likewise.
259 * src/aarch64/sysv.S: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500260 * Makefile.am: Support aarch64.
261 * configure.ac: Support aarch64.
262 * Makefile.in, configure: Rebuilt.
Anthony Green58e8b662012-10-30 07:07:19 -0400263
2642012-10-30 James Greenhalgh <james.greenhalgh at arm.com>
265 Marcus Shawcroft <marcus.shawcroft at arm.com>
266
267 * testsuite/lib/libffi.exp: Add support for aarch64.
268 * testsuite/libffi.call/cls_struct_va1.c: New.
269 * testsuite/libffi.call/cls_uchar_va.c: Likewise.
270 * testsuite/libffi.call/cls_uint_va.c: Likewise.
Anthony Greenf680b592012-11-06 16:00:40 -0500271 * testsuite/libffi.call/cls_ulong_va.c: Likewise.
Anthony Green58e8b662012-10-30 07:07:19 -0400272 * testsuite/libffi.call/cls_ushort_va.c: Likewise.
273 * testsuite/libffi.call/nested_struct11.c: Likewise.
274 * testsuite/libffi.call/uninitialized.c: Likewise.
275 * testsuite/libffi.call/va_1.c: Likewise.
276 * testsuite/libffi.call/va_struct1.c: Likewise.
277 * testsuite/libffi.call/va_struct2.c: Likewise.
278 * testsuite/libffi.call/va_struct3.c: Likewise.
279
Anthony Green9c00a3f2012-10-12 16:46:06 -04002802012-10-12 Walter Lee <walt@tilera.com>
281
282 * Makefile.am: Add TILE-Gx/TILEPro support.
283 * configure.ac: Likewise.
284 * Makefile.in: Regenerate.
285 * configure: Likewise.
286 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro.
287 * src/tile: New directory.
288 * src/tile/ffi.c: New file.
289 * src/tile/ffitarget.h: Ditto.
290 * src/tile/tile.S: Ditto.
291
2922012-10-12 Matthias Klose <doko@ubuntu.com>
293
294 * generate-osx-source-and-headers.py: Normalize whitespace.
295
Anthony Green048d2f42012-10-11 10:55:25 -04002962012-09-14 David Edelsohn <dje.gcc@gmail.com>
297
298 * configure: Regenerated.
299
3002012-08-26 Andrew Pinski <apinski@cavium.com>
301
302 PR libffi/53014
303 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with
304 soft-float.
305
3062012-08-08 Uros Bizjak <ubizjak@gmail.com>
307
308 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
309 just return FFI_BAD_ABI when things are wrong.
310
3112012-07-18 H.J. Lu <hongjiu.lu@intel.com>
312
313 PR libffi/53982
314 PR libffi/53973
315 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32.
316 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32.
317
3182012-05-16 H.J. Lu <hongjiu.lu@intel.com>
319
320 * configure: Regenerated.
321
Nicolas Lelongd330f192012-05-05 09:37:02 -04003222012-05-05 Nicolas Lelong
323
324 * libffi.xcodeproj/project.pbxproj: Fixes.
325 * README: Update for iOS builds.
326
Anthony Green213ed152012-04-27 01:34:15 -04003272012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com>
328
329 * configure.ac: Add Blackfin/sysv support
330 * Makefile.am: Add Blackfin/sysv support
331 * src/bfin/ffi.c: Add Blackfin/sysv support
332 * src/bfin/ffitarget.h: Add Blackfin/sysv support
Anthony Green213ed152012-04-27 01:34:15 -0400333
Anthony Green7e0a4122012-04-11 22:47:44 -04003342012-04-11 Anthony Green <green@moxielogic.com>
335
336 * Makefile.am (EXTRA_DIST): Add new script.
337 * Makefile.in: Rebuilt.
338
Zachary Waldowski39e6a582012-04-11 22:39:46 -04003392012-04-11 Zachary Waldowski <zwaldowski@gmail.com>
340
341 * generate-ios-source-and-headers.py,
342 libffi.xcodeproj/project.pbxproj: Support a Mac static library via
343 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline
344 generation into an Xcode "run script" phase. Include both as
345 Xcode build scripts. Don't always regenerate config files.
346
Anthony Green853cc722012-04-10 06:33:33 -04003472012-04-10 Anthony Green <green@moxielogic.com>
348
349 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon.
350
Anthony Green3f502302012-04-06 20:34:51 -04003512012-04-06 Anthony Green <green@moxielogic.com>
352
353 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files.
354 * Makefile.in: Rebuilt.
355
Mike Lewisebb8e892012-04-06 20:02:08 -04003562012-04-06 Mike Lewis <mikelikespie@gmail.com>
357
358 * generate-ios-source-and-headers.py: New file.
359 * libffi.xcodeproj/project.pbxproj: New file.
360 * README: Update instructions on building iOS binary.
361 * build-ios.sh: Delete.
362
Anthony Greena044a562012-04-06 10:39:10 -04003632012-04-06 Anthony Green <green@moxielogic.com>
364
365 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU
366 compilers, then use it.
367
Anthony Green048d2f42012-10-11 10:55:25 -04003682012-04-06 H.J. Lu <hongjiu.lu@intel.com>
369
370 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32.
371
Anthony Green59bb61a2012-04-06 08:26:14 -04003722012-04-06 Anthony Green <green@moxielogic.com>
373
374 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases.
375 * testsuite/Makefile.in: Rebuilt.
376
Zachary Waldowski39dccdd2012-04-05 12:32:41 -04003772012-04-05 Zachary Waldowski <zwaldowski@gmail.com>
378
379 * include/ffi.h.in: Add missing trampoline table fields.
380 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references
381 in CNAME.
382 * src/x86/ffi.c: Wrap Windows specific code in ifdefs.
383
Anthony Green089dbce2013-01-02 08:37:35 -05003842012-04-02 Peter Bergner <bergner@vnet.ibm.com>
385
386 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
387 Silence casting pointer to integer of different size warning.
388 Delete goto to previously deleted label.
389 (ffi_call): Silence possibly undefined warning.
390 (ffi_closure_helper_SYSV): Declare variable type.
391
3922012-04-02 Peter Rosin <peda@lysator.liu.se>
393
394 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return
395 value in the Intel version as is already done for the AT&T version.
396 (ffi_closure_SYSV): Likewise.
397 (ffi_closure_raw_SYSV): Likewise.
398 (ffi_closure_STDCALL): Likewise.
399
Peter Rosin0a1ab122012-03-30 08:14:08 -04004002012-03-29 Peter Rosin <peda@lysator.liu.se>
401
402 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame
403 generation, fix the ENDP label and remove the surplus third arg
404 from the 'lea' insn.
405
4062012-03-29 Peter Rosin <peda@lysator.liu.se>
407
408 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label
409 visible outside the PROC, so that ffi_closure_raw_THISCALL can see
410 it. Also instruct the assembler to add a frame to the function.
411
4122012-03-23 Peter Rosin <peda@lysator.liu.se>
413
414 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING.
415 * Makefile.in: Rebuilt.
416 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations
417 to all data exports, when compiling libffi clients using MSVC.
418
4192012-03-29 Peter Rosin <peda@lysator.liu.se>
420
421 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and
422 make it the default for MSVC.
423 (FFI_TYPE_MS_STRUCT): New structure return convention.
424 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure
425 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT
426 instead of an ordinary FFI_TYPE_STRUCT.
427 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
428 (ffi_call): Likewise.
429 (ffi_prep_incoming_args_SYSV): Likewise.
430 (ffi_raw_call): Likewise.
431 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV.
432 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT,
433 return a pointer to the result structure in eax and don't pop
434 that pointer from the stack, the caller takes care of it.
435 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT.
436 (ffi_closure_raw_SYSV): Likewise.
437
4382012-03-22 Peter Rosin <peda@lysator.liu.se>
439
440 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline
441 assembly version with Intel syntax.
442 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise.
443
4442012-03-23 Peter Rosin <peda@lysator.liu.se>
445
446 * testsuite/libffi.call/ffitest.h: Provide abstration of
447 __attribute__((fastcall)) in the form of a __FASTCALL__
448 define. Define it to __fastcall for MSVC.
449 * testsuite/libffi.call/fastthis1_win32.c: Use the above.
450 * testsuite/libffi.call/fastthis2_win32.c: Likewise.
451 * testsuite/libffi.call/fastthis3_win32.c: Likewise.
452 * testsuite/libffi.call/strlen2_win32.c: Likewise.
453 * testsuite/libffi.call/struct1_win32.c: Likewise.
454 * testsuite/libffi.call/struct2_win32.c: Likewise.
455
4562012-03-22 Peter Rosin <peda@lysator.liu.se>
457
458 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual
459 frame on function entry, MASM adds one automatically.
460
4612012-03-22 Peter Rosin <peda@lysator.liu.se>
462
463 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing
464 bits in the MSVC headers.
465
4662012-03-22 Peter Rosin <peda@lysator.liu.se>
467
468 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style
469 with no declarations after statements.
470 * testsuite/libffi.call/cls_16byte.c: Likewise.
471 * testsuite/libffi.call/cls_18byte.c: Likewise.
472 * testsuite/libffi.call/cls_19byte.c: Likewise.
473 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
474 * testsuite/libffi.call/cls_20byte.c: Likewise.
475 * testsuite/libffi.call/cls_20byte1.c: Likewise.
476 * testsuite/libffi.call/cls_24byte.c: Likewise.
477 * testsuite/libffi.call/cls_2byte.c: Likewise.
478 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
479 * testsuite/libffi.call/cls_3byte1.c: Likewise.
480 * testsuite/libffi.call/cls_3byte2.c: Likewise.
481 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
482 * testsuite/libffi.call/cls_4byte.c: Likewise.
483 * testsuite/libffi.call/cls_5_1_byte.c: Likewise.
484 * testsuite/libffi.call/cls_5byte.c: Likewise.
485 * testsuite/libffi.call/cls_64byte.c: Likewise.
486 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
487 * testsuite/libffi.call/cls_6byte.c: Likewise.
488 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
489 * testsuite/libffi.call/cls_7byte.c: Likewise.
490 * testsuite/libffi.call/cls_8byte.c: Likewise.
491 * testsuite/libffi.call/cls_9byte1.c: Likewise.
492 * testsuite/libffi.call/cls_9byte2.c: Likewise.
493 * testsuite/libffi.call/cls_align_double.c: Likewise.
494 * testsuite/libffi.call/cls_align_float.c: Likewise.
495 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
496 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise.
497 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
498 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
499 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
500 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
501 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
502 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
503 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
504 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
505 * testsuite/libffi.call/cls_dbls_struct.c: Likewise.
506 * testsuite/libffi.call/cls_pointer_stack.c: Likewise.
507 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
508 * testsuite/libffi.call/huge_struct.c: Likewise.
509 * testsuite/libffi.call/nested_struct.c: Likewise.
510 * testsuite/libffi.call/nested_struct1.c: Likewise.
511 * testsuite/libffi.call/nested_struct10.c: Likewise.
512 * testsuite/libffi.call/nested_struct2.c: Likewise.
513 * testsuite/libffi.call/nested_struct3.c: Likewise.
514 * testsuite/libffi.call/nested_struct4.c: Likewise.
515 * testsuite/libffi.call/nested_struct5.c: Likewise.
516 * testsuite/libffi.call/nested_struct6.c: Likewise.
517 * testsuite/libffi.call/nested_struct7.c: Likewise.
518 * testsuite/libffi.call/nested_struct8.c: Likewise.
519 * testsuite/libffi.call/nested_struct9.c: Likewise.
520 * testsuite/libffi.call/stret_large.c: Likewise.
521 * testsuite/libffi.call/stret_large2.c: Likewise.
522 * testsuite/libffi.call/stret_medium.c: Likewise.
523 * testsuite/libffi.call/stret_medium2.c: Likewise.
524 * testsuite/libffi.call/struct1.c: Likewise.
525 * testsuite/libffi.call/struct1_win32.c: Likewise.
526 * testsuite/libffi.call/struct2.c: Likewise.
527 * testsuite/libffi.call/struct2_win32.c: Likewise.
528 * testsuite/libffi.call/struct3.c: Likewise.
529 * testsuite/libffi.call/struct4.c: Likewise.
530 * testsuite/libffi.call/struct5.c: Likewise.
531 * testsuite/libffi.call/struct6.c: Likewise.
532 * testsuite/libffi.call/struct7.c: Likewise.
533 * testsuite/libffi.call/struct8.c: Likewise.
534 * testsuite/libffi.call/struct9.c: Likewise.
535 * testsuite/libffi.call/testclosure.c: Likewise.
536
Anthony Greene72ed5e2012-03-21 09:52:28 -04005372012-03-21 Peter Rosin <peda@lysator.liu.se>
538
539 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when
540 printing doubles (%lf is for long doubles).
541 (main): Likewise.
542
Anthony Greenbd78c9c2012-03-21 08:09:30 -04005432012-03-21 Peter Rosin <peda@lysator.liu.se>
544
545 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
546 (set_ld_library_path_env_vars): Add the library search dir to PATH
547 (and save PATH for later).
548 (restore_ld_library_path_env_vars): Restore PATH.
549
Anthony Greenccee09a2013-01-02 08:41:55 -05005502012-03-21 Peter Rosin <peda@lysator.liu.se>
551
552 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*]
553 (set_ld_library_path_env_vars): Add the library search dir to PATH
554 (and save PATH for later).
555 (restore_ld_library_path_env_vars): Restore PATH.
556
Anthony Greenbd78c9c2012-03-21 08:09:30 -04005572012-03-20 Peter Rosin <peda@lysator.liu.se>
558
559 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
560 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
561 visible outside the PROC, so that ffi_closure_THISCALL can see it.
562
Anthony Green048d2f42012-10-11 10:55:25 -04005632012-03-20 Peter Rosin <peda@lysator.liu.se>
564
565 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug.
566 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label
567 visible outside the PROC, so that ffi_closure_THISCALL can see it.
568
Anthony Greenbd78c9c2012-03-21 08:09:30 -04005692012-03-19 Alan Hourihane <alanh@fairlite.co.uk>
570
571 * src/m68k/ffi.c: Add MINT support.
572 * src/m68k/sysv.S: Ditto.
573
Anthony Green048d2f42012-10-11 10:55:25 -04005742012-03-06 Chung-Lin Tang <cltang@codesourcery.com>
575
576 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to
577 ffi_call_VFP().
578 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of
579 ffi_closure_VFP.
580 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code.
581
Anthony Green089dbce2013-01-02 08:37:35 -05005822012-03-19 chennam <csit@axway.com>
Anthony Green65f40c32012-04-03 07:35:59 -0400583
Anthony Green089dbce2013-01-02 08:37:35 -0500584 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure
585 support.
Anthony Green048d2f42012-10-11 10:55:25 -0400586
Anthony Green84d32532012-03-19 23:07:35 -04005872012-03-13 Kaz Kojima <kkojima@gcc.gnu.org>
588
589 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
590 just return FFI_BAD_ABI when things are wrong.
591 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto.
592
5932012-03-09 David Edelsohn <dje.gcc@gmail.com>
594
595 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64
596 change to return value of ffi_closure_helper_DARWIN and load type
597 from return type.
598
Anthony Green964c5b92012-03-03 14:46:20 -05005992012-03-03 H.J. Lu <hongjiu.lu@intel.com>
600
601 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned
602 long.
603 (ffi_prep_closure_loc): Cast to 64bit address in trampoline.
604 (ffi_closure_unix64_inner): Cast return pointer to unsigned long
605 first.
606
607 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32.
608 (ffi_arg): Set to unsigned long long for x32.
609 (ffi_sarg): Set to long long for x32.
610
6112012-03-03 H.J. Lu <hongjiu.lu@intel.com>
612
613 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI.
614
Anthony Green6c194232012-03-03 14:17:54 -05006152012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com>
616
617 * configure.ac: Add -no-undefined for both 32- and 64-bit x86
618 windows-like hosts.
619 * configure: Rebuilt.
620
Anthony Green7c5e60b2012-03-29 08:48:22 -04006212012-02-27 Mikael Pettersson <mikpe@it.uu.se>
622
623 PR libffi/52223
624 * Makefile.am (FLAGS_TO_PASS): Define.
625 * Makefile.in: Regenerate.
626
Anthony Green8360bf12012-02-23 07:01:13 -05006272012-02-23 Anthony Green <green@moxielogic.com>
628
629 * src/*/ffitarget.h: Ensure that users never include ffitarget.h
630 directly.
631
Anthony Green7c5e60b2012-03-29 08:48:22 -04006322012-02-23 Kai Tietz <ktietz@redhat.com>
633
634 PR libffi/52221
635 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New
636 prototype.
637 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for
638 thiscall-convention.
639 (ffi_raw_call): Use ffi_prep_args_raw.
640 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add
641 implementation for stub.
642
Anthony Greendee20f82012-02-10 13:06:46 -05006432012-02-10 Kai Tietz <ktietz@redhat.com>
644
645 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
646 windows target.
647 * configure: Regenerated.
Anthony Green8360bf12012-02-23 07:01:13 -0500648
Anthony Greendee20f82012-02-10 13:06:46 -05006492012-02-08 Kai Tietz <ktietz@redhat.com>
650
651 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
652 also FFI_THISCALL.
653 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
654 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
655 (ffi_prep_closure_loc): Add FFI_THISCALL support.
656 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
657 * src/x86/win32.S (ffi_closure_THISCALL): New closure code
658 for thiscall-calling convention.
659 * testsuite/libffi.call/closure_thiscall.c: New test.
660
Anthony Green1ff9c602012-02-01 16:34:30 -06006612012-01-28 Kai Tietz <ktietz@redhat.com>
662
663 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
664 argument to prototype for specify calling-convention.
665 (ffi_call): Add support for stdcall/thiscall convention.
666 (ffi_prep_args): Likewise.
667 (ffi_raw_call): Likewise.
668 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
669 FFI_FASTCALL.
670 * src/x86/win32.S (_ffi_call_win32): Add support for
671 fastcall/thiscall calling-convention calls.
672 * testsuite/libffi.call/fastthis1_win32.c: New test.
673 * testsuite/libffi.call/fastthis2_win32.c: New test.
674 * testsuite/libffi.call/fastthis3_win32.c: New test.
675 * testsuite/libffi.call/strlen2_win32.c: New test.
676 * testsuite/libffi.call/many2_win32.c: New test.
677 * testsuite/libffi.call/struct1_win32.c: New test.
678 * testsuite/libffi.call/struct2_win32.c: New test.
679
Anthony Green211060e2012-01-23 14:24:01 -05006802012-01-23 Uros Bizjak <ubizjak@gmail.com>
681
682 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI.
683
Anthony Green1ff9c602012-02-01 16:34:30 -06006842012-01-23 Anthony Green <green@moxielogic.com>
685 Chris Young <cdyoung@ntlworld.com>
Anthony Green9e9c4ae2012-01-23 14:11:23 -0500686
687 * configure.ac: Add Amiga support.
688 * configure: Rebuilt.
689
6902012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com>
Anthony Green8efc0b12012-01-23 13:47:38 -0500691
692 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions.
693
Anthony Green1ff9c602012-02-01 16:34:30 -06006942012-01-23 Andreas Schwab <schwab@linux-m68k.org>
Anthony Greencd2277c2012-01-23 13:43:38 -0500695
696 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain
697 mc68000. Test for __HAVE_68881__ in addition to __MC68881__.
698
Anthony Greenc365ee72012-01-23 11:13:18 -05006992012-01-19 Jakub Jelinek <jakub@redhat.com>
700
701 PR rtl-optimization/48496
702 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations.
703
7042012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
705
706 * configure.ac (i?86-*-*): Set TARGET to X86_64.
707 * configure: Regenerate.
708
7092011-12-07 Andrew Pinski <apinski@cavium.com>
710
711 PR libffi/50051
712 * src/mips/n32.S: Add ".set mips4".
713
7142011-11-21 Andreas Tobler <andreast@fgznet.ch>
715
716 * configure: Regenerate.
717
Anthony Greenff9454d2011-11-12 17:18:51 -05007182011-11-12 David Gilbert <david.gilbert@linaro.org>
719
720 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h,
721 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3,
722 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h,
723 src/cris/ffi.c, src/prep_cif.c,
724 testsuite/libffi.call/cls_double_va.c,
725 testsuite/libffi.call/cls_longdouble_va.c,
726 testsuite/libffi.call/float_va.c: Many changes to support variadic
727 function calls.
728
Anthony Green52891f82011-11-12 16:35:55 -05007292011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
730
731 * src/powerpc/ffi.c, src/powerpc/ffitarget.h,
732 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for
733 softfloat powerpc variants.
734
Anthony Green6a6e7f82011-11-12 16:20:42 -05007352011-11-12 Petr Salinger <Petr.Salinger@seznam.cz>
736
737 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support.
738 * configure: Rebuilt.
739
Anthony Greend52fbed2011-11-12 16:13:41 -05007402011-11-12 Timothy Wall <twall@users.sf.net>
741
742 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max
743 alignment of 4 for wince on ARM.
744
Anthony Greenaf18df22011-11-12 15:52:08 -05007452011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
746 Anthony Green <green@moxielogic.com>
747
748 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
749 instructions (not available on some cores, like the PPC440).
750
Anthony Greenc411f142011-11-12 07:32:36 -05007512011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
Anthony Green8c019542011-09-06 14:26:32 -0400752
Anthony Greenc411f142011-11-12 07:32:36 -0500753 * m4/ax_enable_builddir: Change from string comparison to numeric
Anthony Green52891f82011-11-12 16:35:55 -0500754 comparison for wc output.
Anthony Green236c9392011-11-12 07:37:40 -0500755 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
756 X 10.7.
757 * configure: Rebuilt.
Anthony Greenee6696f2011-08-23 12:30:29 -0400758
Anthony Green6a6e7f82011-11-12 16:20:42 -05007592011-11-12 Anthony Green <green@moxielogic.com>
760
761 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
762 files with debug info.
763 * Makefile.in: Rebuilt.
764
7652011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
766
767 * README: Update list of supported OpenBSD systems.
768
7692011-11-12 Anthony Green <green@moxielogic.com>
770
771 * libtool-version: Update.
772 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
773 FFI_DEBUG.
774 (libffi_la_SOURCES): Remove src/debug.c
775 (EXTRA_DIST): Add src/debug.c
776 * Makefile.in: Rebuilt.
777 * README: Update for 3.0.11.
778
Anthony Green3d561062011-11-12 07:20:24 -05007792011-11-10 Richard Henderson <rth@redhat.com>
Anthony Green049d8382011-08-22 14:50:10 -0400780
Anthony Green3d561062011-11-12 07:20:24 -0500781 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
782 * configure, aclocal.m4: Rebuild.
783
7842011-09-04 Iain Sandoe <iains@gcc.gnu.org>
785
786 PR libffi/49594
787 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
788 helper reference track the architecture pointer size.
789
7902011-08-25 Andrew Haley <aph@redhat.com>
791
792 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
793 instructions.
794 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
Anthony Green049d8382011-08-22 14:50:10 -0400795
Anthony Greend992ac52011-07-29 17:32:53 -04007962011-07-11 Andrew Haley <aph@redhat.com>
797
798 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
799
8002011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
801
802 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
803 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
804
8052011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
806
807 PR libffi/46660
808 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
809 mips-sgi-irix6*.
810 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
811
8122011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
813
814 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
815 PRId8 instead of %hhu, %hhd.
816 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
817 PRIu8): Define.
818 [__sgi__] (PRId8, PRIu8): Define.
819
8202011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
821
822 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
823 Define.
824 Use them to handle ELF vs. ECOFF differences.
825 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
826
Anthony Green2d3fb362011-03-30 16:54:42 -04008272011-03-30 Timothy Wall <twall@users.sf.net>
828
829 * src/powerpc/darwin.S: Fix unknown FDE encoding.
830 * src/powerpc/darwin_closure.S: ditto.
831
Anthony Green25416792011-02-25 15:09:13 -05008322011-02-25 Anthony Green <green@moxielogic.com>
833
Anthony Green74ee6ea2011-02-25 15:52:14 -0500834 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
835 32-bit ABIs.
Anthony Green25416792011-02-25 15:09:13 -0500836
Anthony Green8cf88782011-02-15 15:19:49 -05008372011-02-15 Anthony Green <green@moxielogic.com>
838
839 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
840 * configure: Rebuilt.
841
Anthony Greend992ac52011-07-29 17:32:53 -04008422011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
843
844 * configure: Regenerate.
845
Anthony Green1fbf9dc2011-02-13 08:06:39 -05008462011-02-13 Anthony Green <green@moxielogic.com>
847
848 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
849 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
850 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
851
852 * src/prep_cif.c (initialize_aggregate): Convert assertion into
853 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
854
855 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
856 just return FFI_BAD_ABI when things are wrong.
857 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
858 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
859 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
860 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
861 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
862
Anthony Green1833aa02011-02-11 07:11:04 -05008632011-02-11 Anthony Green <green@moxielogic.com>
864
865 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
866 just return FFI_BAD_ABI when things are wrong.
867
Anthony Green7c5e60b2012-03-29 08:48:22 -04008682012-02-11 Eric Botcazou <ebotcazou@adacore.com>
869
870 * src/sparc/v9.S (STACKFRAME): Bump to 176.
871
Anthony Green42695e72011-02-09 15:12:35 -05008722011-02-09 Stuart Shelton <srcshelton@gmail.com>
873
874 http://bugs.gentoo.org/show_bug.cgi?id=286911
875 * src/mips/ffitarget.h: Clean up error messages.
876 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
877 ffi_raw*.
878 * include/ffi.h.in: Add pragma for SGI compiler.
879
Anthony Greena6e56b92011-02-09 15:00:42 -05008802011-02-09 Anthony Green <green@moxielogic.com>
881
882 * configure.ac: Add powerpc64-*-darwin* support.
883
Anthony Green0cad4382011-02-09 06:11:46 -05008842011-02-09 Anthony Green <green@moxielogic.com>
Anthony Green11062292011-02-08 19:20:09 -0500885
Anthony Green747d6c32011-02-09 14:56:23 -0500886 * README: Mention Interix.
887
8882011-02-09 Jonathan Callen <abcd@gentoo.org>
889
890 * configure.ac: Add Interix to win32/cygwin/mingw case.
891 * configure: Ditto.
892 * src/closures.c: Treat Interix like Cygwin, instead of as a
893 generic win32.
894
8952011-02-09 Anthony Green <green@moxielogic.com>
896
Anthony Green69dbe842011-02-09 07:38:43 -0500897 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
898 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
899 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
900 (ffi_prep_closure_loc): Check for bad ABI.
901 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
902 (initialize_aggregate): Check for bad types.
Anthony Green0cad4382011-02-09 06:11:46 -0500903
Anthony Green90af15e2011-02-12 12:29:36 -05009042011-02-09 Landon Fuller <landonf@plausible.coop>
Anthony Green0cad4382011-02-09 06:11:46 -0500905
906 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
907 src/arm/trampoline.S.
908 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
909 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
910 * src/arm/ffi.c (ffi_trampoline_table)
911 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
912 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
913 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
914 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
915 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
916 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
917 separately.
918 * src/arm/sysv.S: Handle Apple iOS host.
919 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
Anthony Greenf4983182011-02-09 06:26:46 -0500920 * build-ios.sh: New file.
Anthony Green0cad4382011-02-09 06:11:46 -0500921 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
Anthony Green69dbe842011-02-09 07:38:43 -0500922 * README: Mention ARM iOS.
Anthony Green11062292011-02-08 19:20:09 -0500923
Anthony Greendc411e82011-02-08 10:49:29 -05009242011-02-08 Oren Held <orenhe@il.ibm.com>
925
926 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
927 redefinition of mallinfo on HP-UX.
928
Anthony Green404585d2011-02-08 10:44:36 -05009292011-02-08 Ginn Chen <ginn.chen@oracle.com>
930
931 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
Anthony Green049d8382011-08-22 14:50:10 -0400932 aggregate return ABI. Flush cache.
933 (ffi_prep_closure_loc): Flush cache.
Anthony Green404585d2011-02-08 10:44:36 -0500934
Anthony Green6972a4f2011-02-11 07:32:51 -05009352011-02-11 Anthony Green <green@moxielogic.com>
936
937 From Tom Honermann <tom.honermann@oracle.com>:
938 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
939 AIX. Declare .ffi_prep_args. Insert nops after branch
940 instructions so that the AIX linker can insert TOC reload
941 instructions.
942 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
943
Anthony Greend992ac52011-07-29 17:32:53 -04009442011-02-08 Ed <ed@kdtc.net>
945
946 * src/powerpc/asm.h: Fix grammar nit in comment.
947
Anthony Green89284fe2011-02-08 10:19:19 -05009482011-02-08 Uli Link <ul.mcamafia@linkitup.de>
949
950 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
951
Anthony Greend992ac52011-07-29 17:32:53 -04009522011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
953
954 PR libffi/46661
955 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
956 uintptr_t first.
957 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
958
Anthony Greened2c5182011-02-08 10:10:07 -05009592011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
960
961 * configure.ac: Fix x86 test for pc related relocs.
Anthony Green09f8f312011-02-28 15:36:07 -0500962 * configure: Rebuilt.
Anthony Greened2c5182011-02-08 10:10:07 -0500963
Anthony Green3b836242011-02-08 14:28:59 -05009642011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
965
966 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
967 Handle case when CPU variant does not have long double support.
968 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
969 and cores with soft floating point.
970
9712011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
972
973 * configure.ac: Add mips*-*-rtems* support.
974 * configure: Regenerate.
975 * src/mips/ffitarget.h: Ensure needed constants are available
976 for targets which do not have sgidefs.h.
977
Anthony Green0e584392011-02-08 07:52:40 -05009782011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
979
980 PR target/40125
981 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
982 * configure: Regenerate.
983
9842010-12-18 Iain Sandoe <iains@gcc.gnu.org>
985
986 PR libffi/29152
987 PR libffi/42378
988 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
989 update comments.
990 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
991 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
992 * src/powerpc/darwin.S: Provide Darwin64 implementation,
993 update comments.
994 * src/powerpc/ffi_darwin.c: Likewise.
995
9962010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
997
998 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
999 backslashes.
1000 (libffi_cv_as_string_pseudo_op): Likewise.
1001 * configure: Regenerate.
1002
10032010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
1004
1005 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
1006 (ffi_closure_VFP): Same.
1007 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
1008 directive.
1009
10102010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1011
1012 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
1013 (PRIuPTR): Define.
1014
10152010-11-29 Richard Henderson <rth@redhat.com>
1016 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1017
1018 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
1019 (.eh_frame): Use FDE_ENCODING.
1020 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
1021
Anthony Green5b9cd522010-11-22 15:19:57 -050010222010-11-22 Jacek Caban <jacek@codeweavers.com>
1023
1024 * configure.ac: Check for symbol underscores on mingw-w64.
1025 * configure: Rebuilt.
1026 * src/x86/win64.S: Correctly access extern symbols in respect to
1027 underscores.
1028
Anthony Green2db72612010-11-21 10:50:56 -050010292010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1030
1031 * testsuite/lib/libffi-dg.exp: Rename ...
1032 * testsuite/lib/libffi.exp: ... to this.
1033 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
1034 * libffi/testsuite/libffi.special/special.exp: Likewise.
1035
10362010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
1037
1038 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
1039 code, new parameter, and return value. Update comments.
1040 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
1041 call to layout_vfp_args().
1042 (ffi_call_SYSV): Update declaration.
1043 (ffi_call_VFP): New declaration.
1044 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
1045 when ABI is FFI_VFP.
1046 (ffi_closure_VFP): New declaration.
1047 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
1048 ffi_prep_incoming_args_SYSV().
1049 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
1050 case handling.
1051 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
1052 construction under VFP hard-float.
1053 (rec_vfp_type_p): New function.
1054 (vfp_type_p): Same.
1055 (place_vfp_arg): Same.
1056 (layout_vfp_args): Same.
1057 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
1058 based on __ARM_PCS_VFP.
1059 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
1060 fields.
1061 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
1062 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
1063 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
1064 direct call. Move function pointer load upwards.
1065 (ffi_call_VFP): New function.
1066 (ffi_closure_VFP): Same.
1067
1068 * testsuite/lib/libffi-dg.exp (check-flags): New function.
1069 (dg-skip-if): New function.
1070 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
1071 and compiler options include -mfloat-abi=hard.
1072 * testsuite/libffi.call/cls_longdouble_va.c: Same.
1073
10742010-10-01 Jakub Jelinek <jakub@redhat.com>
1075
1076 PR libffi/45677
1077 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
1078 a multiple of 8.
1079 * testsuite/libffi.call/many2.c: New test.
1080
10812010-08-20 Mark Wielaard <mjw@redhat.com>
1082
1083 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
1084 returns NULL.
1085
10862010-08-09 Andreas Tobler <andreast@fgznet.ch>
1087
1088 * configure.ac: Add target powerpc64-*-freebsd*.
1089 * configure: Regenerate.
1090 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
1091 -mlong-double-128 only to linux targets.
1092 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
1093 * testsuite/libffi.call/cls_longdouble.c: Likewise.
1094 * testsuite/libffi.call/huge_struct.c: Likewise.
1095
Anthony Green00d0b592010-08-05 14:56:53 -040010962010-08-05 Dan Witte <dwitte@mozilla.com>
1097
1098 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
1099 debug CRT when --enable-debug is given.
1100 * configure.ac: Define it.
1101 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
1102
Anthony Greenc1d28ba2010-08-05 08:48:16 -040011032010-08-04 Dan Witte <dwitte@mozilla.com>
1104
1105 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
1106 platforms.
1107 * src/x86/ffi.c: Remove redundant ifdef checks.
1108 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
1109 for X86_ANY so return value space doesn't get added twice.
1110
Anthony Greenbda487e2010-08-05 09:02:41 -040011112010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
1112
1113 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
1114
Anthony Greend14178b2010-07-23 09:14:00 -040011152010-07-22 Dan Witte <dwitte@mozilla.com>
1116
1117 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
1118 * src/prep_cif.c: Fix ABI assertion.
1119 * src/cris/ffi.c: Ditto.
1120
Anthony Greeneaf444e2010-07-10 08:59:09 -040011212010-07-10 Evan Phoenix <evan@fallingsnow.net>
1122
1123 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
1124
Anthony Green5feacad2010-08-05 08:30:04 -040011252010-07-07 Dan Horák <dan@danny.cz>
1126
1127 * include/ffi.h.in: Protect #define with #ifndef.
1128 * src/powerpc/ffitarget.h: Ditto.
1129 * src/s390/ffitarget.h: Ditto.
1130 * src/sparc/ffitarget.h: Ditto.
1131
Anthony Green2db72612010-11-21 10:50:56 -050011322010-07-07 Neil Roberts <neil@linux.intel.com>
1133
1134 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
1135 16-bytes.
1136
11372010-07-02 Jakub Jelinek <jakub@redhat.com>
1138
1139 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
1140 * Makefile.in: Regenerated.
1141
11422010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1143
1144 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
1145 output, too.
1146 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
1147 (libffi_cv_as_string_pseudo_op): Check for .string.
1148 * configure: Regenerate.
1149 * fficonfig.h.in: Regenerate.
1150 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
1151
Anthony Green10ea8482010-08-05 08:24:27 -040011522010-05-11 Dan Witte <dwitte@mozilla.com>
1153
1154 * doc/libffi.tex: Document previous change.
1155
11562010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
1157
1158 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
1159
Anthony Green63097412010-05-05 20:14:56 -040011602010-05-05 Michael Kohler <michaelkohler@live.com>
1161
1162 * src/dlmalloc.c (dlfree): Fix spelling.
1163 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
1164 * configure.ac: Ditto.
1165 * configure: Rebuilt.
1166
Anthony Greenf2c2a4f2010-04-13 10:19:28 -040011672010-04-13 Dan Witte <dwitte@mozilla.com>
1168
1169 * msvcc.sh: Build with -W3 instead of -Wall.
1170 * src/powerpc/ffi_darwin.c: Remove build warnings.
1171 * src/x86/ffi.c: Ditto.
1172 * src/x86/ffitarget.h: Ditto.
1173
Anthony Green2db72612010-11-21 10:50:56 -050011742010-04-12 Dan Witte <dwitte@mozilla.com>
1175 Walter Meinl <wuno@lsvw.de>
Anthony Greenc0b69e52010-03-30 08:30:22 -04001176
Anthony Green2db72612010-11-21 10:50:56 -05001177 * configure.ac: Add OS/2 support.
1178 * configure: Rebuilt.
1179 * src/closures.c: Ditto.
1180 * src/dlmalloc.c: Ditto.
1181 * src/x86/win32.S: Ditto.
Anthony Green3f5b1372010-07-12 14:39:18 -04001182
11832010-04-07 Jakub Jelinek <jakub@redhat.com>
1184
Anthony Green2db72612010-11-21 10:50:56 -05001185 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
Anthony Green3f5b1372010-07-12 14:39:18 -04001186
11872010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1188
1189 * Makefile.in: Regenerate.
1190 * aclocal.m4: Regenerate.
1191 * include/Makefile.in: Regenerate.
1192 * man/Makefile.in: Regenerate.
1193 * testsuite/Makefile.in: Regenerate.
1194
Anthony Green2db72612010-11-21 10:50:56 -050011952010-03-30 Dan Witte <dwitte@mozilla.com>
1196
1197 * msvcc.sh: Disable build warnings.
1198 * README (tested): Clarify windows build procedure.
1199
Anthony Green3f5b1372010-07-12 14:39:18 -040012002010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1201
1202 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
1203 * configure: Regenerate.
1204 * fficonfig.h.in: Regenerate.
1205 * libffi/src/x86/unix64.S (.eh_frame)
1206 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
1207
Anthony Green2db72612010-11-21 10:50:56 -050012082010-03-14 Matthias Klose <doko@ubuntu.com>
1209
1210 * src/x86/ffi64.c: Fix typo in comment.
1211 * src/x86/ffi.c: Use /* ... */ comment style.
1212
Anthony Green9dc9a292010-04-13 10:33:52 -040012132010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1214
1215 * doc/libffi.texi (The Closure API): Fix typo.
1216 * doc/libffi.info: Remove.
1217
12182010-02-15 Matthias Klose <doko@ubuntu.com>
1219
1220 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
1221 __ARM_ARCH_7EM__.
1222
Anthony Green2db72612010-11-21 10:50:56 -050012232010-01-15 Anthony Green <green@redhat.com>
1224
1225 * README: Add notes on building with Microsoft Visual C++.
1226
12272010-01-15 Daniel Witte <dwitte@mozilla.com>
1228
1229 * msvcc.sh: New file.
1230
1231 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
1232 * src/x86/ffi.c: Tweak function declaration and remove excess
1233 parens.
1234 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
1235 ffi_closure.
1236
1237 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
1238 function ffi_call_win32 on X86_WIN32.
1239 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
1240 (ffi_call_STDCALL): Remove.
1241
1242 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
1243 to ffi_prep_cif_machdep for x86.
1244 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
1245
12462010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
1247
1248 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
Anthony Green0e584392011-02-08 07:52:40 -05001249 Sun Studio compiler compatibility.
Anthony Green2db72612010-11-21 10:50:56 -05001250
12512010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
1252
1253 * doc/libffi.texi: Add closure example.
1254
Anthony Green7b7a42f2010-01-12 09:14:14 -050012552010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1256
1257 PR libffi/40701
1258 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
1259 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
1260 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
1261 alpha*-dec-osf*.
1262 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
1263 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
1264 * testsuite/libffi.call/return_ll1.c: Likewise.
1265 * testsuite/libffi.call/stret_medium2.c: Likewise.
1266 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
1267 MAP_FAILED to char *.
1268
12692010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1270
1271 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
1272
Anthony Greenc3042af2010-01-01 08:08:02 -050012732009-12-31 Anthony Green <green@redhat.com>
1274
1275 * README: Update for libffi 3.0.9.
1276
12772009-12-27 Matthias Klose <doko@ubuntu.com>
1278
1279 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
1280 appropriate.
1281 * configure: Rebuilt.
1282
12832009-12-26 Anthony Green <green@redhat.com>
1284
1285 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
1286 avr32*-*-*.
1287 * testsuite/libffi.call/cls_double_va.c: Ditto.
1288
12892009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1290
1291 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
1292 and inttypes.h.
1293 * testsuite/libffi.special/unwindtest.cc: Ditto.
1294
12952009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1296
1297 * configure.ac: Add amd64-*-openbsd*.
1298 * configure: Rebuilt.
1299 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
1300 openbsd programs with -lpthread.
1301
13022009-12-26 Anthony Green <green@redhat.com>
1303
1304 * testsuite/libffi.call/cls_double_va.c,
1305 testsuite/libffi.call/cls_longdouble.c,
1306 testsuite/libffi.call/cls_longdouble_va.c,
1307 testsuite/libffi.call/cls_pointer.c,
1308 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
1309 mips*-*-* and arm*-*-*.
1310 * testsuite/libffi.call/cls_align_longdouble_split.c,
1311 testsuite/libffi.call/cls_align_longdouble_split2.c,
1312 testsuite/libffi.call/stret_medium2.c,
1313 testsuite/libffi.call/stret_medium.c,
1314 testsuite/libffi.call/stret_large.c,
1315 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
1316
13172009-12-31 Kay Tietz <ktietz70@googlemail.com>
1318
1319 * testsuite/libffi.call/ffitest.h,
1320 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
1321 definitions.
1322
13232009-12-31 Carlo Bramini <carlo.bramix@libero.it>
1324
1325 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
1326 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
1327 * configure: Rebuilt.
1328 * Makefile.in: Rebuilt.
1329
13302009-12-31 Anthony Green <green@redhat.com>
1331 Blake Chaffin.
1332
1333 * testsuite/libffi.call/huge_struct.c: New test case from Blake
1334 Chaffin @ Apple.
1335
Anthony Green0cfe60e2009-12-29 10:06:04 -050013362009-12-28 David Edelsohn <edelsohn@gnu.org>
1337
1338 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
1339 local variables.
1340 (aix_adjust_aggregate_sizes): New function.
1341 (ffi_prep_cif_machdep): Call it.
1342
13432009-12-26 Andreas Tobler <a.tobler@schweiz.org>
1344
1345 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
1346 * configure: Regenerate.
1347 * fficonfig.h.in: Likewise.
1348 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
1349 Solaris/x86.
1350
13512009-12-26 Andreas Schwab <schwab@linux-m68k.org>
1352
1353 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
1354 when a float arguments is passed in memory.
1355 (ffi_closure_helper_SYSV): Mark general registers as used up when
1356 a 64bit or soft-float long double argument is passed in memory.
1357
Anthony Green9458d882009-12-26 07:02:27 -050013582009-12-25 Matthias Klose <doko@ubuntu.com>
1359
1360 * man/ffi_call.3: Fix #include in examples.
1361 * doc/libffi.texi: Add dircategory.
1362
13632009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
1364
1365 * include/ffi.h.in: Placed '__GNUC__' ifdef around
1366 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
1367 IRIX MIPSPro c99.
1368 * include/ffi_common.h: Added '__sgi' define to non
1369 '__attribute__((__mode__()))' integer typedefs.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001370 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
Anthony Green9458d882009-12-26 07:02:27 -05001371 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
1372 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
1373 FFI_LONGDOUBLE support and alignment(N32 only).
1374 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
1375 fixed non '__attribute__((__mode__()))' integer typedefs.
1376 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
1377 since they are Linux/GNU Assembler specific.
1378
13792009-12-25 Bradley Smith <brad@brad-smith.co.uk>
1380
1381 * configure.ac, Makefile.am, src/avr32/ffi.c,
1382 src/avr32/ffitarget.h,
1383 src/avr32/sysv.S: Add AVR32 port.
1384 * configure, Makefile.in: Rebuilt.
1385
Anthony Green115ab362009-12-24 00:22:00 -050013862009-12-21 Andreas Tobler <a.tobler@schweiz.org>
1387
1388 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
1389 * configure: Regenerate.
1390
13912009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1392
1393 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
1394
13952009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1396
1397 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
1398 type on HP-UX.
1399
Anthony Green7c5e60b2012-03-29 08:48:22 -040014002012-02-13 Kai Tietz <ktietz@redhat.com>
1401
1402 PR libffi/52221
1403 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall
1404 support for X86_WIN32.
1405 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement.
1406
Anthony Green115ab362009-12-24 00:22:00 -050014072009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1408
1409 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
1410 double' arguments.
1411
14122009-12-11 Eric Botcazou <ebotcazou@adacore.com>
1413
1414 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
1415
14162009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1417
1418 PR libffi/40700
1419 * src/closures.c [X86_64 && __sun__ && __svr4__]
1420 (FFI_MMAP_EXEC_WRIT): Define.
1421
14222009-12-08 David Daney <ddaney@caviumnetworks.com>
1423
1424 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
1425 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
1426 * testsuite/libffi.call/stret_large.c: Same.
1427 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
1428 * testsuite/libffi.call/stret_large2.c: Same.
1429 * testsuite/libffi.call/stret_medium2.c: Same.
1430
14312009-12-07 David Edelsohn <edelsohn@gnu.org>
1432
1433 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
1434 typo.
1435
14362009-12-05 David Edelsohn <edelsohn@gnu.org>
1437
1438 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
1439 code.
1440 * src/powerpc/aix_closure.S: Same.
1441
14422009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1443
1444 * Makefile.in: Regenerate.
1445 * configure: Regenerate.
1446 * include/Makefile.in: Regenerate.
1447 * man/Makefile.in: Regenerate.
1448 * testsuite/Makefile.in: Regenerate.
1449
14502009-12-04 David Edelsohn <edelsohn@gnu.org>
1451
1452 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
Anthony Green0cfe60e2009-12-29 10:06:04 -05001453 linux64_closure.S.
Anthony Green115ab362009-12-24 00:22:00 -05001454
14552009-12-04 Uros Bizjak <ubizjak@gmail.com>
1456
1457 PR libffi/41908
1458 * src/x86/ffi64.c (classify_argument): Update from
1459 gcc/config/i386/i386.c.
1460 (ffi_closure_unix64_inner): Do not use the address of two consecutive
1461 SSE registers directly.
1462 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
1463 for x86_64 linux targets.
1464
14652009-12-04 David Edelsohn <edelsohn@gnu.org>
1466
1467 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
1468 pfr for long double split between fpr13 and stack.
1469
14702009-12-03 David Edelsohn <edelsohn@gnu.org>
1471
1472 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
1473 fparg_count twice for long double.
1474
14752009-12-03 David Edelsohn <edelsohn@gnu.org>
1476
1477 PR libffi/42243
1478 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
1479
14802009-12-03 Uros Bizjak <ubizjak@gmail.com>
1481
1482 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
1483 Remove xfails for x86 linux targets.
1484
14852009-12-02 David Edelsohn <edelsohn@gnu.org>
1486
1487 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
1488 case.
1489
14902009-12-01 David Edelsohn <edelsohn@gnu.org>
1491
1492 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
1493 register usage. Call ffi_prep_args directly. Add long double
1494 return value support.
1495 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
1496 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
1497 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
1498 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
1499 mode.
1500 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
1501 into case.
1502 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
1503 Allocate result area between params and FPRs.
1504
15052009-11-30 David Edelsohn <edelsohn@gnu.org>
1506
1507 PR target/35484
1508 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
1509 AIX64.
1510 * src/powerpc/aix.S: Implement AIX64 version.
1511 * src/powerpc/aix_closure.S: Implement AIX64 version.
1512 (ffi_closure_ASM): Use extsb, lha and displament addresses.
1513 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
1514 support.
1515 (ffi_prep_cif_machdep): Same.
1516 (ffi_call): Same.
1517 (ffi_closure_helper_DARWIN): Same.
1518
15192009-11-02 Andreas Tobler <a.tobler@schweiz.org>
1520
1521 PR libffi/41908
1522 * testsuite/libffi.call/testclosure.c: New test.
1523
Anthony Greenc6dddbd2009-10-04 08:11:33 -040015242009-09-28 Kai Tietz <kai.tietz@onevision.com>
1525
1526 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
1527 assembly version use of ___chkstk.
1528
15292009-09-23 Matthias Klose <doko@ubuntu.com>
1530
1531 PR libffi/40242, PR libffi/41443
1532 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
1533 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
1534 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
1535 Change the conditionals to __SOFTFP__ || __ARM_EABI__
1536 for -mfloat-abi=softfp to work.
1537
15382009-09-17 Loren J. Rittle <ljrittle@acm.org>
1539
1540 PR testsuite/32843 (strikes again)
1541 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
1542 enable proper extension on char and short.
1543
15442009-09-15 David Daney <ddaney@caviumnetworks.com>
1545
1546 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
1547 handling for FFI_TYPE_POINTER.
1548 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
1549 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
1550 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
1551 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
1552 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
1553 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
1554 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
1555 structure and pointer returns.
1556 (ffi_closure_N32): Add handling for pointer returns.
1557 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
1558 calc_n32_return_struct_flags): Handle soft-float.
1559 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
1560 (ffi_call_N32): Declare proper argument types.
1561 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
1562 soft-float.
1563
15642009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1565
1566 * configure.ac (AC_PREREQ): Bump to 2.64.
1567
15682009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1569
1570 * Makefile.am (install-html, install-pdf): Remove.
1571 * Makefile.in: Regenerate.
1572
1573 * Makefile.in: Regenerate.
1574 * aclocal.m4: Regenerate.
1575 * configure: Regenerate.
1576 * fficonfig.h.in: Regenerate.
1577 * include/Makefile.in: Regenerate.
1578 * man/Makefile.in: Regenerate.
1579 * testsuite/Makefile.in: Regenerate.
1580
Anthony Green3d561062011-11-12 07:20:24 -050015812011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
1582
1583 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
1584 * configure: Rebuilt.
1585
Anthony Greenc6dddbd2009-10-04 08:11:33 -040015862009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1587
1588 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1589
15902009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
1591
1592 PR libffi/40807
1593 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
1594 return types for X86_WIN32.
1595 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
1596 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
1597 _ffi_closure_STDCALL): Likewise.
1598
1599 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
1600 (dlmmap, dlmunmap): Also use these functions on Cygwin.
1601
16022009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
1603
1604 PR testsuite/40699
1605 PR testsuite/40707
1606 PR testsuite/40709
1607 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
1608 2009-06-30 commits.
1609
16102009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
1611
1612 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
1613 to "" before adding paths. (This reinstates an assignment that
1614 was removed by my 2009-06-30 commit, but changes the initial
1615 value from "." to "".)
1616
16172009-07-01 H.J. Lu <hongjiu.lu@intel.com>
1618
1619 PR testsuite/40601
1620 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
1621 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
1622 empty.
1623
16242009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
1625
1626 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
1627 to ld_library_path. Use add_path. Add just find_libgcc_s
1628 to ld_library_path, not every libgcc multilib directory.
1629
16302009-06-16 Wim Lewis <wiml@hhhh.org>
1631
1632 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
1633 supposed to be callee-saved.
1634 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
1635 return buffer for odd-size structs.
1636
16372009-06-16 Andreas Tobler <a.tobler@schweiz.org>
1638
1639 PR libffi/40444
1640 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
1641 allow_stack_execute for Darwin.
1642
16432009-06-16 Andrew Haley <aph@redhat.com>
1644
1645 * configure.ac (TARGETDIR): Add missing blank lines.
1646 * configure: Regenerate.
1647
16482009-06-16 Andrew Haley <aph@redhat.com>
1649
1650 * testsuite/libffi.call/cls_align_sint64.c,
1651 testsuite/libffi.call/cls_align_uint64.c,
1652 testsuite/libffi.call/cls_longdouble_va.c,
1653 testsuite/libffi.call/cls_ulonglong.c,
1654 testsuite/libffi.call/return_ll1.c,
1655 testsuite/libffi.call/stret_medium2.c: Fix printf format
1656 specifiers.
1657 * testsuite/libffi.call/ffitest.h,
1658 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
1659
16602009-06-15 Andrew Haley <aph@redhat.com>
1661
1662 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
1663 * testsuite/libffi.call/err_bad_abi.c: Likewise.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001664
Anthony Greenc6dddbd2009-10-04 08:11:33 -040016652009-06-12 Andrew Haley <aph@redhat.com>
1666
1667 * Makefile.am: Remove info_TEXINFOS.
1668
16692009-06-12 Andrew Haley <aph@redhat.com>
1670
1671 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
1672 testsuite/libffi.call/cls_align_uint64.c,
1673 testsuite/libffi.call/cls_ulonglong.c,
1674 testsuite/libffi.call/return_ll1.c,
1675 testsuite/libffi.call/stret_medium2.c: Fix printf format
1676 specifiers.
1677 testsuite/libffi.special/unwindtest.cc: include stdint.h.
1678
16792009-06-11 Timothy Wall <twall@users.sf.net>
1680
1681 * Makefile.am,
Anthony Green0cfe60e2009-12-29 10:06:04 -05001682 configure.ac,
1683 include/ffi.h.in,
1684 include/ffi_common.h,
1685 src/closures.c,
1686 src/dlmalloc.c,
1687 src/x86/ffi.c,
1688 src/x86/ffitarget.h,
1689 src/x86/win64.S (new),
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001690 README: Added win64 support (mingw or MSVC)
Anthony Green0cfe60e2009-12-29 10:06:04 -05001691 * Makefile.in,
1692 include/Makefile.in,
1693 man/Makefile.in,
1694 testsuite/Makefile.in,
1695 configure,
1696 aclocal.m4: Regenerated
1697 * ltcf-c.sh: properly escape cygwin/w32 path
1698 * man/ffi_call.3: Clarify size requirements for return value.
1699 * src/x86/ffi64.c: Fix filename in comment.
1700 * src/x86/win32.S: Remove unused extern.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001701
Anthony Green0cfe60e2009-12-29 10:06:04 -05001702 * testsuite/libffi.call/closure_fn0.c,
1703 testsuite/libffi.call/closure_fn1.c,
1704 testsuite/libffi.call/closure_fn2.c,
1705 testsuite/libffi.call/closure_fn3.c,
1706 testsuite/libffi.call/closure_fn4.c,
1707 testsuite/libffi.call/closure_fn5.c,
1708 testsuite/libffi.call/closure_fn6.c,
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001709 testsuite/libffi.call/closure_stdcall.c,
1710 testsuite/libffi.call/cls_12byte.c,
1711 testsuite/libffi.call/cls_16byte.c,
1712 testsuite/libffi.call/cls_18byte.c,
1713 testsuite/libffi.call/cls_19byte.c,
1714 testsuite/libffi.call/cls_1_1byte.c,
1715 testsuite/libffi.call/cls_20byte.c,
1716 testsuite/libffi.call/cls_20byte1.c,
1717 testsuite/libffi.call/cls_24byte.c,
1718 testsuite/libffi.call/cls_2byte.c,
1719 testsuite/libffi.call/cls_3_1byte.c,
1720 testsuite/libffi.call/cls_3byte1.c,
1721 testsuite/libffi.call/cls_3byte2.c,
1722 testsuite/libffi.call/cls_4_1byte.c,
1723 testsuite/libffi.call/cls_4byte.c,
1724 testsuite/libffi.call/cls_5_1_byte.c,
1725 testsuite/libffi.call/cls_5byte.c,
1726 testsuite/libffi.call/cls_64byte.c,
1727 testsuite/libffi.call/cls_6_1_byte.c,
1728 testsuite/libffi.call/cls_6byte.c,
1729 testsuite/libffi.call/cls_7_1_byte.c,
1730 testsuite/libffi.call/cls_7byte.c,
1731 testsuite/libffi.call/cls_8byte.c,
1732 testsuite/libffi.call/cls_9byte1.c,
1733 testsuite/libffi.call/cls_9byte2.c,
1734 testsuite/libffi.call/cls_align_double.c,
1735 testsuite/libffi.call/cls_align_float.c,
1736 testsuite/libffi.call/cls_align_longdouble.c,
1737 testsuite/libffi.call/cls_align_longdouble_split.c,
1738 testsuite/libffi.call/cls_align_longdouble_split2.c,
1739 testsuite/libffi.call/cls_align_pointer.c,
1740 testsuite/libffi.call/cls_align_sint16.c,
1741 testsuite/libffi.call/cls_align_sint32.c,
1742 testsuite/libffi.call/cls_align_sint64.c,
1743 testsuite/libffi.call/cls_align_uint16.c,
1744 testsuite/libffi.call/cls_align_uint32.c,
1745 testsuite/libffi.call/cls_align_uint64.c,
1746 testsuite/libffi.call/cls_dbls_struct.c,
1747 testsuite/libffi.call/cls_double.c,
1748 testsuite/libffi.call/cls_double_va.c,
1749 testsuite/libffi.call/cls_float.c,
1750 testsuite/libffi.call/cls_longdouble.c,
1751 testsuite/libffi.call/cls_longdouble_va.c,
1752 testsuite/libffi.call/cls_multi_schar.c,
1753 testsuite/libffi.call/cls_multi_sshort.c,
1754 testsuite/libffi.call/cls_multi_sshortchar.c,
1755 testsuite/libffi.call/cls_multi_uchar.c,
1756 testsuite/libffi.call/cls_multi_ushort.c,
1757 testsuite/libffi.call/cls_multi_ushortchar.c,
1758 testsuite/libffi.call/cls_pointer.c,
1759 testsuite/libffi.call/cls_pointer_stack.c,
1760 testsuite/libffi.call/cls_schar.c,
1761 testsuite/libffi.call/cls_sint.c,
1762 testsuite/libffi.call/cls_sshort.c,
1763 testsuite/libffi.call/cls_uchar.c,
1764 testsuite/libffi.call/cls_uint.c,
1765 testsuite/libffi.call/cls_ulonglong.c,
1766 testsuite/libffi.call/cls_ushort.c,
1767 testsuite/libffi.call/err_bad_abi.c,
1768 testsuite/libffi.call/err_bad_typedef.c,
1769 testsuite/libffi.call/float2.c,
1770 testsuite/libffi.call/huge_struct.c,
1771 testsuite/libffi.call/nested_struct.c,
1772 testsuite/libffi.call/nested_struct1.c,
1773 testsuite/libffi.call/nested_struct10.c,
1774 testsuite/libffi.call/nested_struct2.c,
1775 testsuite/libffi.call/nested_struct3.c,
1776 testsuite/libffi.call/nested_struct4.c,
1777 testsuite/libffi.call/nested_struct5.c,
1778 testsuite/libffi.call/nested_struct6.c,
1779 testsuite/libffi.call/nested_struct7.c,
1780 testsuite/libffi.call/nested_struct8.c,
1781 testsuite/libffi.call/nested_struct9.c,
1782 testsuite/libffi.call/problem1.c,
1783 testsuite/libffi.call/return_ldl.c,
1784 testsuite/libffi.call/return_ll1.c,
1785 testsuite/libffi.call/stret_large.c,
1786 testsuite/libffi.call/stret_large2.c,
1787 testsuite/libffi.call/stret_medium.c,
1788 testsuite/libffi.call/stret_medium2.c,
Anthony Green0cfe60e2009-12-29 10:06:04 -05001789 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
1790 of checking for MMAP. Use intptr_t instead of long casts.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001791
17922009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
1793
1794 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
1795 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
1796 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
1797
17982009-06-09 Andrew Haley <aph@redhat.com>
1799
1800 * src/x86/freebsd.S: Add missing file.
1801
18022009-06-08 Andrew Haley <aph@redhat.com>
1803
1804 Import from libffi 3.0.8:
1805
1806 * doc/libffi.texi: New file.
1807 * doc/libffi.info: Likewise.
1808 * doc/stamp-vti: Likewise.
1809 * man/Makefile.am: New file.
1810 * man/ffi_call.3: New file.
1811
1812 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
1813 src/dlmalloc.c.
1814 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
1815
1816 * configure.ac: Bump version to 3.0.8.
1817 parisc*-*-linux*: Add.
1818 i386-*-freebsd* | i386-*-openbsd*: Add.
1819 powerpc-*-beos*: Add.
1820 AM_CONDITIONAL X86_FREEBSD: Add.
1821 AC_CONFIG_FILES: Add man/Makefile.
1822
1823 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
1824
18252009-06-08 Andrew Haley <aph@redhat.com>
1826
1827 * README: Import from libffi 3.0.8.
1828
18292009-06-08 Andrew Haley <aph@redhat.com>
1830
1831 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
1832 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
1833 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
1834 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
1835
1836 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
1837 * testsuite/libffi.call/stret_medium.c: Likewise.
1838 * testsuite/libffi.call/stret_large2.c: Likewise.
1839 * testsuite/libffi.call/stret_large.c: Likewise.
1840
18412008-12-26 Timothy Wall <twall@users.sf.net>
1842
Anthony Green0cfe60e2009-12-29 10:06:04 -05001843 * testsuite/libffi.call/cls_longdouble.c,
1844 testsuite/libffi.call/cls_longdouble_va.c,
1845 testsuite/libffi.call/cls_align_longdouble.c,
1846 testsuite/libffi.call/cls_align_longdouble_split.c,
1847 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
1848 failures on x86_64 cygwin/mingw.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001849
18502008-12-22 Timothy Wall <twall@users.sf.net>
1851
Anthony Green0cfe60e2009-12-29 10:06:04 -05001852 * testsuite/libffi.call/closure_fn0.c,
1853 testsuite/libffi.call/closure_fn1.c,
1854 testsuite/libffi.call/closure_fn2.c,
1855 testsuite/libffi.call/closure_fn3.c,
1856 testsuite/libffi.call/closure_fn4.c,
1857 testsuite/libffi.call/closure_fn5.c,
1858 testsuite/libffi.call/closure_fn6.c,
1859 testsuite/libffi.call/closure_loc_fn0.c,
1860 testsuite/libffi.call/closure_stdcall.c,
1861 testsuite/libffi.call/cls_align_pointer.c,
1862 testsuite/libffi.call/cls_pointer.c,
1863 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
1864 pointer to integer (intptr_t).
1865 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001866
18672008-07-24 Anthony Green <green@redhat.com>
1868
Anthony Green0cfe60e2009-12-29 10:06:04 -05001869 * testsuite/libffi.call/cls_dbls_struct.c,
1870 testsuite/libffi.call/cls_double_va.c,
1871 testsuite/libffi.call/cls_longdouble.c,
1872 testsuite/libffi.call/cls_longdouble_va.c,
1873 testsuite/libffi.call/cls_pointer.c,
1874 testsuite/libffi.call/cls_pointer_stack.c,
1875 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
1876 compiler warnings.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001877
18782008-03-04 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001879 Blake Chaffin
1880 hos@tamanegi.org
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001881
Anthony Green0cfe60e2009-12-29 10:06:04 -05001882 * testsuite/libffi.call/cls_align_longdouble_split2.c
1883 testsuite/libffi.call/cls_align_longdouble_split.c
1884 testsuite/libffi.call/cls_dbls_struct.c
1885 testsuite/libffi.call/cls_double_va.c
1886 testsuite/libffi.call/cls_longdouble.c
1887 testsuite/libffi.call/cls_longdouble_va.c
1888 testsuite/libffi.call/cls_pointer.c
1889 testsuite/libffi.call/cls_pointer_stack.c
1890 testsuite/libffi.call/err_bad_abi.c
1891 testsuite/libffi.call/err_bad_typedef.c
1892 testsuite/libffi.call/stret_large2.c
1893 testsuite/libffi.call/stret_large.c
1894 testsuite/libffi.call/stret_medium2.c
1895 testsuite/libffi.call/stret_medium.c: New tests from Apple.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001896
18972009-06-05 Andrew Haley <aph@redhat.com>
1898
1899 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
1900 libffi.
1901
19022009-06-04 Andrew Haley <aph@redhat.com>
1903
1904 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
1905 stdcall changes.
1906
19072008-02-26 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001908 Thomas Heller <theller@ctypes.org>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001909
Anthony Green0cfe60e2009-12-29 10:06:04 -05001910 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
1911 comment.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001912
19132008-02-03 Timothy Wall <twall@users.sf.net>
1914
Anthony Green0cfe60e2009-12-29 10:06:04 -05001915 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
1916 offset based on code pointer, not data pointer.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001917
19182008-01-31 Timothy Wall <twall@users.sf.net>
1919
Anthony Green0cfe60e2009-12-29 10:06:04 -05001920 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
1921 closures.
1922 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
1923 closures.
1924 * src/x86/win32.S: Add assembly for stdcall closure.
1925 * src/x86/ffi.c: Initialize stdcall closure trampoline.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001926
19272009-06-04 Andrew Haley <aph@redhat.com>
1928
1929 * include/ffi.h.in: Change void (*)() to void (*)(void).
1930 * src/x86/ffi.c: Likewise.
1931
19322009-06-04 Andrew Haley <aph@redhat.com>
1933
1934 * src/powerpc/ppc_closure.S: Insert licence header.
1935 * src/powerpc/linux64_closure.S: Likewise.
1936 * src/m68k/sysv.S: Likewise.
1937
1938 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
1939 * src/powerpc/ffi.c: Likewise.
1940 * src/powerpc/ffi_darwin.c: Likewise.
1941 * src/m32r/ffi.c: Likewise.
1942 * src/sh64/ffi.c: Likewise.
1943 * src/x86/ffi64.c: Likewise.
1944 * src/alpha/ffi.c: Likewise.
1945 * src/alpha/osf.S: Likewise.
1946 * src/frv/ffi.c: Likewise.
1947 * src/s390/ffi.c: Likewise.
1948 * src/pa/ffi.c: Likewise.
1949 * src/pa/hpux32.S: Likewise.
1950 * src/ia64/unix.S: Likewise.
1951 * src/ia64/ffi.c: Likewise.
1952 * src/sparc/ffi.c: Likewise.
1953 * src/mips/ffi.c: Likewise.
1954 * src/sh/ffi.c: Likewise.
1955
19562008-02-15 David Daney <ddaney@avtrex.com>
1957
Anthony Green0cfe60e2009-12-29 10:06:04 -05001958 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
1959 Define (conditionally), and use it to include cachectl.h.
1960 (ffi_prep_closure_loc): Fix cache flushing.
1961 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001962
19632009-06-04 Andrew Haley <aph@redhat.com>
1964
1965 include/ffi.h.in,
1966 src/arm/ffitarget.h,
1967 src/arm/ffi.c,
1968 src/arm/sysv.S,
1969 src/powerpc/ffitarget.h,
1970 src/closures.c,
1971 src/sh64/ffitarget.h,
1972 src/sh64/ffi.c,
1973 src/sh64/sysv.S,
1974 src/types.c,
1975 src/x86/ffi64.c,
1976 src/x86/ffitarget.h,
1977 src/x86/win32.S,
1978 src/x86/darwin.S,
1979 src/x86/ffi.c,
1980 src/x86/sysv.S,
1981 src/x86/unix64.S,
1982 src/alpha/ffitarget.h,
1983 src/alpha/ffi.c,
1984 src/alpha/osf.S,
1985 src/m68k/ffitarget.h,
1986 src/frv/ffitarget.h,
1987 src/frv/ffi.c,
1988 src/s390/ffitarget.h,
1989 src/s390/sysv.S,
1990 src/cris/ffitarget.h,
1991 src/pa/linux.S,
1992 src/pa/ffitarget.h,
1993 src/pa/ffi.c,
1994 src/raw_api.c,
1995 src/ia64/ffitarget.h,
1996 src/ia64/unix.S,
1997 src/ia64/ffi.c,
1998 src/ia64/ia64_flags.h,
1999 src/java_raw_api.c,
2000 src/debug.c,
2001 src/sparc/v9.S,
2002 src/sparc/ffitarget.h,
2003 src/sparc/ffi.c,
2004 src/sparc/v8.S,
2005 src/mips/ffitarget.h,
2006 src/mips/n32.S,
2007 src/mips/o32.S,
2008 src/mips/ffi.c,
2009 src/prep_cif.c,
2010 src/sh/ffitarget.h,
2011 src/sh/ffi.c,
2012 src/sh/sysv.S: Update license text.
2013
20142009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2015
2016 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
2017 (.eh_frame): Add FDE for it.
2018
20192009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
2020
2021 * configure.ac: Also check if assembler supports pc-relative
2022 relocs on X86_WIN32 targets.
2023 * configure: Regenerate.
2024 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
2025 (_ffi_call_SYSV): Add missing function type symbol .def and
2026 add EH markup labels.
2027 (_ffi_call_STDCALL): Likewise.
2028 (_ffi_closure_SYSV): Likewise.
2029 (_ffi_closure_raw_SYSV): Likewise.
2030 (.eh_frame): Add hand-crafted EH data.
2031
20322009-04-09 Jakub Jelinek <jakub@redhat.com>
2033
2034 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
2035 version 3 of the GNU General Public License and to point readers
2036 at the COPYING3 file and the FSF's license web page.
2037 * testsuite/libffi.call/call.exp: Likewise.
2038 * testsuite/libffi.special/special.exp: Likewise.
2039
20402009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2041
2042 * configure: Regenerate.
2043
20442008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2045
2046 PR libffi/26048
2047 * configure.ac (HAVE_AS_X86_PCREL): New test.
2048 * configure: Regenerate.
2049 * fficonfig.h.in: Regenerate.
2050 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
2051 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
2052 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
2053 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2054 * src/x86/unix64.S (.Lstore_table): Move to .text section.
2055 (.Lload_table): Likewise.
2056 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
2057
20582008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2059
2060 * configure: Regenerate.
2061
20622008-11-21 Eric Botcazou <ebotcazou@adacore.com>
2063
2064 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
2065 signed/unsigned int8/16 return values.
2066 * src/sparc/v8.S (ffi_call_v8): Likewise.
2067 (ffi_closure_v8): Likewise.
2068
20692008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05002070 Steve Ellcey <sje@cup.hp.com>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002071
2072 * configure: Regenerate for new libtool.
2073 * Makefile.in: Ditto.
2074 * include/Makefile.in: Ditto.
2075 * aclocal.m4: Ditto.
2076
20772008-08-25 Andreas Tobler <a.tobler@schweiz.org>
2078
2079 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
2080 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
2081 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
2082 Adjust copyright notice.
2083 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
2084 register or two register to use for FFI_SYSV structs.
2085 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
2086 (ffi_closure_helper_SYSV): Fix the return type for
2087 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
2088 Adjust copyright notice.
2089
20902008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
2091
2092 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
2093 int.
2094
20952008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2096
2097 * configure: Regenerate.
2098 * include/Makefile.in: Regenerate.
2099 * testsuite/Makefile.in: Regenerate.
2100
21012008-06-07 Joseph Myers <joseph@codesourcery.com>
2102
2103 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
2104 powerpc-*-beos*): Remove.
2105 * configure: Regenerate.
2106
21072008-05-09 Julian Brown <julian@codesourcery.com>
2108
2109 * Makefile.am (LTLDFLAGS): New.
2110 (libffi_la_LDFLAGS): Use above.
2111 * Makefile.in: Regenerate.
2112
21132008-04-18 Paolo Bonzini <bonzini@gnu.org>
2114
2115 PR bootstrap/35457
2116 * aclocal.m4: Regenerate.
2117 * configure: Regenerate.
2118
21192008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
2120
2121 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
2122 * src/sh64/sysv.S: Likewise.
2123
21242008-03-26 Daniel Jacobowitz <dan@debian.org>
2125
2126 * src/arm/sysv.S: Fix ARM comment marker.
2127
21282008-03-26 Jakub Jelinek <jakub@redhat.com>
2129
2130 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
2131 * src/s390/sysv.S: Likewise.
2132 * src/powerpc/ppc_closure.S: Likewise.
2133 * src/powerpc/sysv.S: Likewise.
2134 * src/x86/unix64.S: Likewise.
2135 * src/x86/sysv.S: Likewise.
2136 * src/sparc/v8.S: Likewise.
2137 * src/sparc/v9.S: Likewise.
2138 * src/m68k/sysv.S: Likewise.
2139 * src/arm/sysv.S: Likewise.
2140
21412008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2142
2143 * aclocal.m4: Regenerate.
2144 * configure: Likewise.
2145 * Makefile.in: Likewise.
2146 * include/Makefile.in: Likewise.
2147 * testsuite/Makefile.in: Likewise.
2148
21492008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
2150 Andreas Tobler <a.tobler@schweiz.org>
2151
2152 * configure.ac: Add amd64-*-freebsd* target.
2153 * configure: Regenerate.
2154
21552008-01-30 H.J. Lu <hongjiu.lu@intel.com>
2156
2157 PR libffi/34612
2158 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
2159 returning struct.
2160
2161 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
2162 tests.
2163
21642008-01-24 David Edelsohn <edelsohn@gnu.org>
2165
2166 * configure: Regenerate.
2167
21682008-01-06 Andreas Tobler <a.tobler@schweiz.org>
2169
2170 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
2171
21722008-01-05 Andreas Tobler <a.tobler@schweiz.org>
2173
2174 PR testsuite/32843
2175 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
2176 signed/unsigned int8/16 for X86_DARWIN.
2177 Updated copyright info.
2178 Handle one and two byte structs with special cif->flags.
2179 * src/x86/ffitarget.h: Add special types for one and two byte structs.
2180 Updated copyright info.
2181 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
2182 sysv.S
2183 Remove code to pop args from the stack after call.
2184 Special-case signed/unsigned for int8/16, one and two byte structs.
2185 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2186 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2187 FFI_TYPE_SINT32.
2188 Updated copyright info.
2189
21902007-12-08 David Daney <ddaney@avtrex.com>
2191
Anthony Green0cfe60e2009-12-29 10:06:04 -05002192 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002193 SUBU, add with ADDU and use smaller code sequences.
2194
21952007-12-07 David Daney <ddaney@avtrex.com>
2196
2197 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
2198 type.
2199
22002007-12-06 David Daney <ddaney@avtrex.com>
2201
2202 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
2203 defined.
2204 (ffi_java_raw): New typedef.
2205 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
2206 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
2207 ffi_java_raw.
2208 (ffi_java_raw_closure) : Same.
2209 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
2210 parameter types.
2211 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
2212 FFI_SIZEOF_JAVA_RAW.
2213 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
2214 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
2215 sizeof(ffi_java_raw) for alignment calculations.
2216 (ffi_java_ptrarray_to_raw): Same.
2217 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
Anthony Green0cfe60e2009-12-29 10:06:04 -05002218 if FFI_SIZEOF_JAVA_RAW == 4.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002219 (ffi_java_raw_to_rvalue): Same.
2220 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
2221 (ffi_java_translate_args): Same.
2222 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
2223 parameter types.
2224 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
2225
22262007-12-06 David Daney <ddaney@avtrex.com>
2227
Anthony Green0cfe60e2009-12-29 10:06:04 -05002228 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002229 pointer values.
2230
22312007-12-01 Andreas Tobler <a.tobler@schweiz.org>
2232
2233 PR libffi/31937
2234 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
2235 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
2236 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
2237 set the NUM_FPR_ARG_REGISTERS according to.
2238 Add support for potential soft-float support under hard-float
2239 architecture.
2240 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
2241 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
2242 to the FFI_LINUX_SOFT_FLOAT ABI.
2243 (ffi_prep_cif_machdep): Likewise.
2244 (ffi_closure_helper_SYSV): Likewise.
2245 * src/powerpc/ppc_closure.S: Make sure not to store float/double
2246 on archs where __NO_FPRS__ is true.
2247 Add FFI_TYPE_UINT128 support.
2248 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
2249 Adjust copyright notice.
2250
22512007-11-25 Andreas Tobler <a.tobler@schweiz.org>
2252
2253 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
2254 * include/ffi_common.h: ... here.
2255 Update copyright.
2256
22572007-11-17 Andreas Tobler <a.tobler@schweiz.org>
2258
2259 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
2260 * src/powerpc/linux64.S: Likewise.
2261 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
2262 * testsuite/libffi.call/return_ldl.c: New test.
2263
22642007-09-04 <aph@redhat.com>
2265
2266 * src/arm/sysv.S (UNWIND): New.
2267 (Whole file): Conditionally compile unwinder directives.
2268 * src/arm/sysv.S: Add unwinder directives.
2269
2270 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
2271 Only treat r0 as a struct address if we're actually returning a
2272 struct by address.
2273 Only copy the bytes that are actually within a struct.
2274 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
2275 is returned in r0, not passed by address.
2276 (ffi_call): Allocate a word-sized temporary for the case where
2277 a composite is returned in r0.
2278 (ffi_prep_incoming_args_SYSV): Align as necessary.
2279
22802007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
2281
Anthony Green0cfe60e2009-12-29 10:06:04 -05002282 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002283 directly using the sys_cacheflush syscall.
2284
22852007-07-27 Andrew Haley <aph@redhat.com>
2286
2287 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
2288
22892007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
2290
2291 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
2292 * configure.ac: Likewise.
2293 * Makefile.in: Regenerate.
2294 * include/Makefile.in: Likewise.
2295 * testsuite/Makefile.in: Likewise.
2296 * configure: Likewise.
2297
22982007-08-24 David Daney <ddaney@avtrex.com>
2299
2300 * testsuite/libffi.call/return_sl.c: New test.
2301
23022007-08-10 David Daney <ddaney@avtrex.com>
2303
2304 * testsuite/libffi.call/cls_multi_ushort.c,
2305 testsuite/libffi.call/cls_align_uint16.c,
2306 testsuite/libffi.call/nested_struct1.c,
2307 testsuite/libffi.call/nested_struct3.c,
2308 testsuite/libffi.call/cls_7_1_byte.c,
2309 testsuite/libffi.call/nested_struct5.c,
2310 testsuite/libffi.call/cls_double.c,
2311 testsuite/libffi.call/nested_struct7.c,
2312 testsuite/libffi.call/cls_sint.c,
2313 testsuite/libffi.call/nested_struct9.c,
2314 testsuite/libffi.call/cls_20byte1.c,
2315 testsuite/libffi.call/cls_multi_sshortchar.c,
2316 testsuite/libffi.call/cls_align_sint64.c,
2317 testsuite/libffi.call/cls_3byte2.c,
2318 testsuite/libffi.call/cls_multi_schar.c,
2319 testsuite/libffi.call/cls_multi_uchar.c,
2320 testsuite/libffi.call/cls_19byte.c,
2321 testsuite/libffi.call/cls_9byte1.c,
2322 testsuite/libffi.call/cls_align_float.c,
2323 testsuite/libffi.call/closure_fn1.c,
2324 testsuite/libffi.call/problem1.c,
2325 testsuite/libffi.call/closure_fn3.c,
2326 testsuite/libffi.call/cls_sshort.c,
2327 testsuite/libffi.call/closure_fn5.c,
2328 testsuite/libffi.call/cls_align_double.c,
2329 testsuite/libffi.call/nested_struct.c,
2330 testsuite/libffi.call/cls_2byte.c,
2331 testsuite/libffi.call/nested_struct10.c,
2332 testsuite/libffi.call/cls_4byte.c,
2333 testsuite/libffi.call/cls_6byte.c,
2334 testsuite/libffi.call/cls_8byte.c,
2335 testsuite/libffi.call/cls_multi_sshort.c,
2336 testsuite/libffi.call/cls_align_sint16.c,
2337 testsuite/libffi.call/cls_align_uint32.c,
2338 testsuite/libffi.call/cls_20byte.c,
2339 testsuite/libffi.call/cls_float.c,
2340 testsuite/libffi.call/nested_struct2.c,
2341 testsuite/libffi.call/cls_5_1_byte.c,
2342 testsuite/libffi.call/nested_struct4.c,
2343 testsuite/libffi.call/cls_24byte.c,
2344 testsuite/libffi.call/nested_struct6.c,
2345 testsuite/libffi.call/cls_64byte.c,
2346 testsuite/libffi.call/nested_struct8.c,
2347 testsuite/libffi.call/cls_uint.c,
2348 testsuite/libffi.call/cls_multi_ushortchar.c,
2349 testsuite/libffi.call/cls_schar.c,
2350 testsuite/libffi.call/cls_uchar.c,
2351 testsuite/libffi.call/cls_align_uint64.c,
2352 testsuite/libffi.call/cls_ulonglong.c,
2353 testsuite/libffi.call/cls_align_longdouble.c,
2354 testsuite/libffi.call/cls_1_1byte.c,
2355 testsuite/libffi.call/cls_12byte.c,
2356 testsuite/libffi.call/cls_3_1byte.c,
2357 testsuite/libffi.call/cls_3byte1.c,
2358 testsuite/libffi.call/cls_4_1byte.c,
2359 testsuite/libffi.call/cls_6_1_byte.c,
2360 testsuite/libffi.call/cls_16byte.c,
2361 testsuite/libffi.call/cls_18byte.c,
2362 testsuite/libffi.call/closure_fn0.c,
2363 testsuite/libffi.call/cls_9byte2.c,
2364 testsuite/libffi.call/closure_fn2.c,
2365 testsuite/libffi.call/closure_fn4.c,
2366 testsuite/libffi.call/cls_ushort.c,
2367 testsuite/libffi.call/closure_fn6.c,
2368 testsuite/libffi.call/cls_5byte.c,
2369 testsuite/libffi.call/cls_align_pointer.c,
2370 testsuite/libffi.call/cls_7byte.c,
2371 testsuite/libffi.call/cls_align_sint32.c,
2372 testsuite/libffi.special/unwindtest_ffi_call.cc,
2373 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
2374
23752007-08-10 David Daney <ddaney@avtrex.com>
2376
2377 PR libffi/28313
2378 * configure.ac: Don't treat mips64 as a special case.
2379 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
2380 * configure: Regenerate
2381 * Makefile.in: Ditto.
2382 * fficonfig.h.in: Ditto.
2383 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
2384 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
2385 (FFI_DEFAULT_ABI): Set for n64 case.
2386 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
2387 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
2388 (ffi_closure_N32): New function.
2389 (.eh_frame): New section
2390 * src/mips/o32.S: Clean up comments.
2391 (ffi_closure_O32): Pass ffi_closure parameter in $12.
2392 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
2393 _MIPS_SIM == _ABIN32 throughout.
2394 (FFI_MIPS_STOP_HERE): New, use in place of
2395 ffi_stop_here.
2396 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
2397 to support n32/n64 ABIs.
2398 (calc_n32_struct_flags): Rewrite.
2399 (calc_n32_return_struct_flags): Remove unused variable. Reverse
2400 position of flag bits.
2401 (ffi_prep_cif_machdep): Rewrite n32 portion.
2402 (ffi_call): Enable for n64. Add special handling for small structure
2403 return values.
2404 (ffi_prep_closure_loc): Add n32 and n64 support.
2405 (ffi_closure_mips_inner_O32): Add cast to silence warning.
2406 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
2407
24082007-08-08 David Daney <ddaney@avtrex.com>
2409
2410 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
2411 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
2412 specifiers.
2413 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
2414 * testsuite/libffi.call/cls_sint.c (main): Ditto.
2415 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
2416 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
2417 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
2418 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
2419 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
2420 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
2421 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
2422 * testsuite/libffi.call/return_fl3.c (main): Ditto.
2423 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
2424 * testsuite/libffi.call/nested_struct.c (main): Ditto.
2425 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
2426 * testsuite/libffi.call/return_ll1.c (main): Ditto.
2427 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
2428 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
2429 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
2430 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
2431 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
2432 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
2433 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
2434 * testsuite/libffi.call/cls_uint.c (main): Ditto.
2435 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
2436 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
2437 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
2438 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
2439 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
2440 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
2441 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
2442 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
2443 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
2444
24452007-08-07 Andrew Haley <aph@redhat.com>
2446
2447 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
2448 checkin.
2449
24502007-08-06 Andrew Haley <aph@redhat.com>
2451
2452 PR testsuite/32843
2453 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
2454 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
2455 FFI_TYPE_SINT32.
2456
24572007-08-02 David Daney <ddaney@avtrex.com>
2458
2459 * testsuite/libffi.call/return_ul.c (main): Define return type as
2460 ffi_arg. Use proper printf conversion specifier.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002461
Anthony Greenc6dddbd2009-10-04 08:11:33 -040024622007-07-30 Andrew Haley <aph@redhat.com>
2463
2464 PR testsuite/32843
2465 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
2466 signed/unsigned int8/16.
2467 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
2468 Use a jump table.
2469 Remove code to pop args from the stack after call.
2470 Special-case signed/unsigned int8/16.
2471 * testsuite/libffi.call/return_sc.c (main): Revert.
2472
24732007-07-26 Richard Guenther <rguenther@suse.de>
2474
2475 PR testsuite/32843
2476 * testsuite/libffi.call/return_sc.c (main): Verify call
2477 result as signed char, not ffi_arg.
2478
24792007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2480
2481 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
2482 * configure: Regenerate.
2483
24842007-07-11 David Daney <ddaney@avtrex.com>
2485
2486 * src/mips/ffi.c: Don't include sys/cachectl.h.
2487 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
2488 cacheflush().
2489
24902007-05-18 Aurelien Jarno <aurelien@aurel32.net>
2491
2492 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
2493 from (ffi_prep_closure): ... this.
2494 (FFI_INIT_TRAMPOLINE): Adjust.
2495
24962005-12-31 Phil Blundell <pb@reciva.com>
2497
Anthony Green0cfe60e2009-12-29 10:06:04 -05002498 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
2499 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002500 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
2501 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2502 (FFI_CLOSURES): Enable closure support.
2503
25042007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
2505
Anthony Green0cfe60e2009-12-29 10:06:04 -05002506 * testsuite/libffi.call/cls_multi_ushort.c,
2507 testsuite/libffi.call/cls_align_uint16.c,
2508 testsuite/libffi.call/nested_struct1.c,
2509 testsuite/libffi.call/nested_struct3.c,
2510 testsuite/libffi.call/cls_7_1_byte.c,
2511 testsuite/libffi.call/cls_double.c,
2512 testsuite/libffi.call/nested_struct5.c,
2513 testsuite/libffi.call/nested_struct7.c,
2514 testsuite/libffi.call/cls_sint.c,
2515 testsuite/libffi.call/nested_struct9.c,
2516 testsuite/libffi.call/cls_20byte1.c,
2517 testsuite/libffi.call/cls_multi_sshortchar.c,
2518 testsuite/libffi.call/cls_align_sint64.c,
2519 testsuite/libffi.call/cls_3byte2.c,
2520 testsuite/libffi.call/cls_multi_schar.c,
2521 testsuite/libffi.call/cls_multi_uchar.c,
2522 testsuite/libffi.call/cls_19byte.c,
2523 testsuite/libffi.call/cls_9byte1.c,
2524 testsuite/libffi.call/cls_align_float.c,
2525 testsuite/libffi.call/closure_fn1.c,
2526 testsuite/libffi.call/problem1.c,
2527 testsuite/libffi.call/closure_fn3.c,
2528 testsuite/libffi.call/cls_sshort.c,
2529 testsuite/libffi.call/closure_fn5.c,
2530 testsuite/libffi.call/cls_align_double.c,
2531 testsuite/libffi.call/cls_2byte.c,
2532 testsuite/libffi.call/nested_struct.c,
2533 testsuite/libffi.call/nested_struct10.c,
2534 testsuite/libffi.call/cls_4byte.c,
2535 testsuite/libffi.call/cls_6byte.c,
2536 testsuite/libffi.call/cls_8byte.c,
2537 testsuite/libffi.call/cls_multi_sshort.c,
2538 testsuite/libffi.call/cls_align_uint32.c,
2539 testsuite/libffi.call/cls_align_sint16.c,
2540 testsuite/libffi.call/cls_float.c,
2541 testsuite/libffi.call/cls_20byte.c,
2542 testsuite/libffi.call/cls_5_1_byte.c,
2543 testsuite/libffi.call/nested_struct2.c,
2544 testsuite/libffi.call/cls_24byte.c,
2545 testsuite/libffi.call/nested_struct4.c,
2546 testsuite/libffi.call/nested_struct6.c,
2547 testsuite/libffi.call/cls_64byte.c,
2548 testsuite/libffi.call/nested_struct8.c,
2549 testsuite/libffi.call/cls_uint.c,
2550 testsuite/libffi.call/cls_multi_ushortchar.c,
2551 testsuite/libffi.call/cls_schar.c,
2552 testsuite/libffi.call/cls_uchar.c,
2553 testsuite/libffi.call/cls_align_uint64.c,
2554 testsuite/libffi.call/cls_ulonglong.c,
2555 testsuite/libffi.call/cls_align_longdouble.c,
2556 testsuite/libffi.call/cls_1_1byte.c,
2557 testsuite/libffi.call/cls_12byte.c,
2558 testsuite/libffi.call/cls_3_1byte.c,
2559 testsuite/libffi.call/cls_3byte1.c,
2560 testsuite/libffi.call/cls_4_1byte.c,
2561 testsuite/libffi.call/cls_6_1_byte.c,
2562 testsuite/libffi.call/cls_16byte.c,
2563 testsuite/libffi.call/cls_18byte.c,
2564 testsuite/libffi.call/closure_fn0.c,
2565 testsuite/libffi.call/cls_9byte2.c,
2566 testsuite/libffi.call/closure_fn2.c,
2567 testsuite/libffi.call/closure_fn4.c,
2568 testsuite/libffi.call/cls_ushort.c,
2569 testsuite/libffi.call/closure_fn6.c,
2570 testsuite/libffi.call/cls_5byte.c,
2571 testsuite/libffi.call/cls_align_pointer.c,
2572 testsuite/libffi.call/cls_7byte.c,
2573 testsuite/libffi.call/cls_align_sint32.c,
2574 testsuite/libffi.special/unwindtest_ffi_call.cc,
2575 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002576
25772007-07-05 H.J. Lu <hongjiu.lu@intel.com>
2578
2579 * aclocal.m4: Regenerated.
2580
25812007-06-02 Paolo Bonzini <bonzini@gnu.org>
2582
2583 * configure: Regenerate.
2584
25852007-05-23 Steve Ellcey <sje@cup.hp.com>
2586
2587 * Makefile.in: Regenerate.
2588 * configure: Regenerate.
2589 * aclocal.m4: Regenerate.
2590 * include/Makefile.in: Regenerate.
2591 * testsuite/Makefile.in: Regenerate.
2592
25932007-05-10 Roman Zippel <zippel@linux-m68k.org>
2594
2595 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
2596 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
2597 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
2598 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
2599 (FFI_CLOSURES): Enable closure support.
2600
26012007-05-10 Roman Zippel <zippel@linux-m68k.org>
2602
2603 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
2604 * configure: Regenerate.
2605 * fficonfig.h.in: Regenerate.
2606 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
2607 CFI_OFFSET,CFI_DEF_CFA): New macros.
2608 (ffi_call_SYSV): Add callframe annotation.
2609
26102007-05-10 Roman Zippel <zippel@linux-m68k.org>
2611
2612 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
2613 numerous test suite failures.
2614 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
2615
26162007-04-11 Paolo Bonzini <bonzini@gnu.org>
2617
2618 * Makefile.am (EXTRA_DIST): Bring up to date.
2619 * Makefile.in: Regenerate.
2620 * src/frv/eabi.S: Remove RCS keyword.
2621
26222007-04-06 Richard Henderson <rth@redhat.com>
2623
2624 * configure.ac: Tidy target case.
2625 (HAVE_LONG_DOUBLE): Allow the target to override.
2626 * configure: Regenerate.
2627 * include/ffi.h.in: Don't define ffi_type_foo if
2628 LIBFFI_HIDE_BASIC_TYPES is defined.
2629 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
2630 to ffi_type_double.
2631 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
2632 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
2633 (ffi_type_longdouble): Special case for Alpha. Don't define
2634 if long double == double.
2635
2636 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
2637 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
2638 (ffi_call, ffi_closure_osf_inner): Likewise.
2639 (ffi_closure_osf_inner): Likewise. Mark hidden.
2640 (ffi_call_osf, ffi_closure_osf): Mark hidden.
2641 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
2642 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
2643 (load_table): Handle 128-bit long double.
2644
2645 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
2646
26472007-04-06 Tom Tromey <tromey@redhat.com>
2648
2649 PR libffi/31491:
2650 * README: Fixed bug in example.
2651
26522007-04-03 Jakub Jelinek <jakub@redhat.com>
2653
2654 * src/closures.c: Include sys/statfs.h.
2655 (_GNU_SOURCE): Define on Linux.
2656 (FFI_MMAP_EXEC_SELINUX): Define.
2657 (selinux_enabled): New variable.
2658 (selinux_enabled_check): New function.
2659 (is_selinux_enabled): Define.
2660 (dlmmap): Use it.
2661
26622007-03-24 Uros Bizjak <ubizjak@gmail.com>
2663
2664 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
2665 Use 'volatile float sum' to create sum of floats to avoid false
2666 negative due to excess precision on ix86 targets.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002667 (main): Ditto.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002668
26692007-03-08 Alexandre Oliva <aoliva@redhat.com>
2670
2671 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
2672 patch.
2673 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
2674
26752007-03-07 Alexandre Oliva <aoliva@redhat.com>
2676
2677 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
2678 (ffi_prep_closure_loc): New.
2679 (ffi_prep_raw_closure_loc): New.
2680 (ffi_prep_java_raw_closure_loc): New.
2681 * src/closures.c: New file.
2682 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
2683 Replace sflags with exec_offset.
2684 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
2685 sub_segment_exec_offset): New macros.
2686 (get_segment_flags, set_segment_flags, check_segment_merge): New
2687 macros.
2688 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
2689 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
2690 destroy_mspace): Use new macros.
2691 (sys_alloc): Silence warning.
2692 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
2693 * Makefile.in: Rebuilt.
2694 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
2695 terms of ffi_prep_closure_loc.
2696 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
2697 from...
2698 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
2699 renamed version.
2700 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
2701 adjusted from...
2702 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
2703 the renamed version.
2704 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
2705 (ffi_prep_closure): ... this.
2706 * src/pa/ffi.c: Likewise.
2707 * src/cris/ffi.c: Likewise. Adjust.
2708 * src/frv/ffi.c: Likewise.
2709 * src/ia64/ffi.c: Likewise.
2710 * src/mips/ffi.c: Likewise.
2711 * src/powerpc/ffi_darwin.c: Likewise.
2712 * src/s390/ffi.c: Likewise.
2713 * src/sh/ffi.c: Likewise.
2714 * src/sh64/ffi.c: Likewise.
2715 * src/sparc/ffi.c: Likewise.
2716 * src/x86/ffi64.c: Likewise.
2717 * src/x86/ffi.c: Likewise.
2718 (FFI_INIT_TRAMPOLINE): Adjust.
2719 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
2720 (ffi_prep_raw_closure): ... this.
2721 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
2722 (ffi_prep_closure): ... this.
2723 (flush_icache): Adjust.
2724
27252007-03-07 Alexandre Oliva <aoliva@redhat.com>
2726
2727 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
2728 Lea's malloc.
2729
27302007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
2731
2732 * Makefile.am: Add dummy install-pdf target.
2733 * Makefile.in: Regenerate
2734
27352007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
2736
2737 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
2738 ffi_closure_helper_SYSV): Add long double handling.
2739
27402007-02-02 Jakub Jelinek <jakub@redhat.com>
2741
2742 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
2743 immediately after bctrl instruction.
2744
27452007-01-18 Alexandre Oliva <aoliva@redhat.com>
2746
2747 * Makefile.am (all-recursive, install-recursive,
2748 mostlyclean-recursive, clean-recursive, distclean-recursive,
2749 maintainer-clean-recursive): Add missing targets.
2750 * Makefile.in: Rebuilt.
2751
27522006-12-14 Andreas Tobler <a.tobler@schweiz.org>
2753
2754 * configure.ac: Add TARGET for x86_64-*-darwin*.
2755 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
2756 for X86_DARWIN.
2757 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
2758 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
2759 * configure: Regenerate.
2760 * Makefile.in: Regenerate.
2761 * include/Makefile.in: Regenerate.
2762 * testsuite/Makefile.in: Regenerate.
2763 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
2764 ffi_call only.
2765
27662006-12-13 Andreas Tobler <a.tobler@schweiz.org>
2767
2768 * aclocal.m4: Regenerate with aclocal -I .. as written in the
2769 Makefile.am.
2770
27712006-10-31 Geoffrey Keating <geoffk@apple.com>
2772
2773 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
2774 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
2775 Darwin.
2776 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
2777 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
2778
27792006-10-10 Paolo Bonzini <bonzini@gnu.org>
2780 Sandro Tolaini <tolaini@libero.it>
2781
Anthony Green0cfe60e2009-12-29 10:06:04 -05002782 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002783 conditional.
2784 * configure: Regenerated.
2785 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
2786 (EXTRA_DIST): Add src/x86/darwin.S.
2787 * Makefile.in: Regenerated.
2788 * include/Makefile.in: Regenerated.
2789 * testsuite/Makefile.in: Regenerated.
2790
2791 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
2792 X86_WIN32, and additionally align stack to 16 bytes.
2793 * src/x86/darwin.S: New, based on sysv.S.
2794 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
2795
27962006-09-12 David Daney <ddaney@avtrex.com>
2797
2798 PR libffi/23935
2799 * include/Makefile.am: Install both ffi.h and ffitarget.h in
2800 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
2801 * aclocal.m4: Regenerated for automake 1.9.6.
2802 * Makefile.in: Regenerated.
2803 * include/Makefile.in: Regenerated.
2804 * testsuite/Makefile.in: Regenerated.
2805
28062006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
2807
2808 * include/ffi_common.h (struct): Revert accidental commit.
2809
28102006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
2811
2812 * include/ffi_common.h: Remove lint directives.
2813 * include/ffi.h.in: Likewise.
2814
28152006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
2816
2817 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
2818 for 32-bit architectures.
2819 * testsuite/libffi.call/return_ul.c: New test case.
2820
28212006-07-19 David Daney <ddaney@avtrex.com>
2822
2823 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
2824 xfail remains for mips64.
2825
28262006-05-23 Carlos O'Donell <carlos@codesourcery.com>
2827
2828 * Makefile.am: Add install-html target. Add install-html to .PHONY
2829 * Makefile.in: Regenerate.
2830 * aclocal.m4: Regenerate.
2831 * include/Makefile.in: Regenerate.
2832 * testsuite/Makefile.in: Regenerate.
2833
28342006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2835
2836 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
2837 stack slot.
2838
28392006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
2840
2841 * README: Remove notice about 'Crazy Comments'.
2842 * src/debug.c: Remove lint directives. Cleanup white spaces.
2843 * src/java_raw_api.c: Likewise.
2844 * src/prep_cif.c: Likewise.
2845 * src/raw_api.c: Likewise.
2846 * src/ffitest.c: Delete. No longer needed, all test cases migrated
2847 to the testsuite.
2848 * src/arm/ffi.c: Remove lint directives.
2849 * src/m32r/ffi.c: Likewise.
2850 * src/pa/ffi.c: Likewise.
2851 * src/powerpc/ffi.c: Likewise.
2852 * src/powerpc/ffi_darwin.c: Likewise.
2853 * src/sh/ffi.c: Likewise.
2854 * src/sh64/ffi.c: Likewise.
2855 * src/x86/ffi.c: Likewise.
2856 * testsuite/libffi.call/float2.c: Likewise.
2857 * testsuite/libffi.call/promotion.c: Likewise.
2858 * testsuite/libffi.call/struct1.c: Likewise.
2859
28602006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
2861
2862 * src/pa/hpux32.S: Correct unwind offset calculation for
2863 ffi_closure_pa32.
2864 * src/pa/linux.S: Likewise.
2865
28662006-04-12 James E Wilson <wilson@specifix.com>
2867
2868 PR libgcj/26483
2869 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
2870 (hfa_type_load): Call stf_spill.
2871 (hfa_type_store): Call ldf_fill.
2872 (ffi_call): Adjust calls to above routines. Add local temps for
2873 macro result.
2874
28752006-04-10 Matthias Klose <doko@debian.org>
2876
2877 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
2878 directory names containing underscores.
2879
28802006-04-07 James E Wilson <wilson@specifix.com>
2881
2882 * testsuite/libffi.call/float4.c: New testcase.
2883
28842006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2885 Andreas Tobler <a.tobler@schweiz.ch>
2886
2887 * Makefile.am: Add PA_HPUX port.
2888 * Makefile.in: Regenerate.
2889 * include/Makefile.in: Likewise.
2890 * testsuite/Makefile.in: Likewise.
2891 * configure.ac: Add PA_HPUX rules.
2892 * configure: Regenerate.
2893 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
2894 Add PA_HPUX and PA64_HPUX.
2895 Rename FFI_LINUX ABI to FFI_PA32 ABI.
2896 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
2897 (FFI_TYPE_SMALL_STRUCT2): Define.
2898 (FFI_TYPE_SMALL_STRUCT4): Likewise.
2899 (FFI_TYPE_SMALL_STRUCT8): Likewise.
2900 (FFI_TYPE_SMALL_STRUCT3): Redefine.
2901 (FFI_TYPE_SMALL_STRUCT5): Likewise.
2902 (FFI_TYPE_SMALL_STRUCT6): Likewise.
2903 (FFI_TYPE_SMALL_STRUCT7): Likewise.
2904 * src/pa/ffi.c (ROUND_DOWN): Delete.
2905 (fldw, fstw, fldd, fstd): Use '__asm__'.
2906 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
2907 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
2908 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
2909 Simplify incrementing of stack slot variable. Change type of local
2910 'n' to unsigned int.
2911 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
2912 double on PA_HPUX.
2913 (ffi_prep_cif_machdep): Likewise.
2914 (ffi_call): Likewise.
2915 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
2916 return type to ffi_status. Simplify incrementing of stack slot
2917 variable. Only copy floating point argument registers when PA_LINUX
2918 is true. Reformat debug statement.
2919 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
2920 FFI_TYPE_SMALL_STRUCT8.
2921 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
2922 declaration.
2923 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
2924 Add nops to cache flush. Add trampoline for PA_HPUX.
2925 * src/pa/hpux32.S: New file.
2926 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
2927 ffi_prep_args_LINUX to ffi_prep_args_pa32.
2928 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
2929 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
2930 argument type checks so that common argument types appear first.
2931 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
2932 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
2933
29342006-03-24 Alan Modra <amodra@bigpond.net.au>
2935
2936 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
2937 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
2938 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
2939 FFI_TYPE_LONGDOUBLE.
2940 (ffi_prep_args64): Assert using IBM extended double.
2941 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
2942 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
2943 (ffi_call): Handle FFI_LINUX.
2944 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
2945 gpr3 return pointer as for struct return. Handle FFI_LINUX
2946 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
2947 unnecessarily.
2948 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
2949 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
2950 Don't use r6 as pointer to results, instead use sp offset. Don't
2951 make a special call to load lr with case table address, instead
2952 use offset from previous call.
2953 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
2954 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
2955 return.
2956
29572006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
2958
2959 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
2960 passed with FP registers correctly.
2961 (ffi_closure_helper_SYSV): Likewise.
2962 * src/sh64/sysv.S: Likewise.
2963
29642006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
2965
2966 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
2967 args and userdata unused.
2968 (closure_test_fn1): Mark cif and userdata unused.
2969 (main): Remove unused res.
2970
29712006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
2972
2973 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
2974 -O2, -O3, -Os and the warning flags -W -Wall.
2975 * testsuite/libffi.special/special.exp: Likewise.
2976 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
2977 unused parameter unused for gcc or else do nothing.
2978 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2979 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
2980 and userdata unused.
2981 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
2982 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
2983 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
2984 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
2985 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
2986 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
2987 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
2988 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
2989 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
2990 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
2991 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
2992 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
2993 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
2994 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
2995 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
2996 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
2997 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
2998 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
2999 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
3000 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
3001 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
3002 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
3003 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
3004 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
3005 Likewise.
3006 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
3007 Likewise.
3008 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
3009 Likewise.
3010 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
3011 void* to avoid compiler warning.
3012 (main): Likewise.
3013 (cls_struct_align_gn): Mark cif and userdata unused.
3014 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
3015 Likewise.
3016 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
3017 Likewise.
3018 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
3019 Likewise.
3020 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
3021 Likewise.
3022 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
3023 Likewise.
3024 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
3025 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
3026 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
3027 data unused.
3028 (main): Cast res_call to silence gcc.
3029 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
3030 data unused.
3031 (main): Cast res_call to silence gcc.
3032 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
3033 and data unused.
3034 (main): Cast res_call to silence gcc.
3035 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
3036 data unused.
3037 (main): Cast res_call to silence gcc.
3038 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
3039 data unused.
3040 (main): Cast res_call to silence gcc.
3041 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
3042 and data unused.
3043 (main): Cast res_call to silence gcc.
3044 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
3045 userdata unused.
3046 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
3047 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
3048 userdata unused.
3049 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
3050 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
3051 userdata unused.
3052 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
3053 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
3054 userdata unused.
3055 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
3056 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
3057 userdata unused.
3058 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
3059 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
3060 and userdata unused.
3061 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
3062 userdata unused.
3063 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
3064 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
3065 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
3066 Cleanup white spaces.
3067 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
3068 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
3069 cif and userdata unused.
3070 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
3071 Likewise.
3072 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
3073 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
3074 formatters to silence gcc.
3075 (B_gn): Mark cif and userdata unused.
3076 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
3077 unused.
3078 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
3079 (B_gn): Mark cif and userdata unused.
3080 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
3081 unused.
3082 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
3083 (B_gn): Mark cif and userdata unused.
3084 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
3085 unused.
3086 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
3087 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
3088 * testsuite/libffi.call/problem1.c (stub): Likewise.
3089 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
3090 gcc.
3091 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
3092 in the last commit for this test case in the test case itself.
3093 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
3094 unused.
3095 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
3096 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
3097 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
3098 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
3099 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
3100 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
3101
31022006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
3103
3104 * src/sh/sysv.S: Fix register numbers in the FDE for
3105 ffi_closure_SYSV.
3106
31072006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
3108
3109 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
3110 declaration to avoid a false negative on ix86. See PR323.
3111
31122006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
3113
3114 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
3115 and cast integer to void * if needed. Update the pointer to
3116 the FP register saved area correctly.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003117
Anthony Greenc6dddbd2009-10-04 08:11:33 -040031182006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
3119
3120 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
3121 is fixed.
3122 * testsuite/libffi.call/nested_struct4.c: Likewise.
3123
31242006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
3125
3126 * testsuite/libffi.call/return_dbl.c: New test case.
3127 * testsuite/libffi.call/return_dbl1.c: Likewise.
3128 * testsuite/libffi.call/return_dbl2.c: Likewise.
3129 * testsuite/libffi.call/return_fl.c: Likewise.
3130 * testsuite/libffi.call/return_fl1.c: Likewise.
3131 * testsuite/libffi.call/return_fl2.c: Likewise.
3132 * testsuite/libffi.call/return_fl3.c: Likewise.
3133 * testsuite/libffi.call/closure_fn6.c: Likewise.
3134
3135 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
3136 definition.
3137 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
3138 here to be used by other test cases too.
3139
3140 * testsuite/libffi.call/nested_struct10.c: New test case.
3141 * testsuite/libffi.call/nested_struct9.c: Likewise.
3142 * testsuite/libffi.call/nested_struct8.c: Likewise.
3143 * testsuite/libffi.call/nested_struct7.c: Likewise.
3144 * testsuite/libffi.call/nested_struct6.c: Likewise.
3145 * testsuite/libffi.call/nested_struct5.c: Likewise.
3146 * testsuite/libffi.call/nested_struct4.c: Likewise.
3147
31482006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3149
3150 * configure.ac: Enable libffi for sparc64-*-freebsd*.
3151 * configure: Rebuilt.
3152
31532006-01-18 Jakub Jelinek <jakub@redhat.com>
3154
3155 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
3156 instead do the shifting inline.
3157 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
3158 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
3159 and 8 byte structs, for the remaining struct sizes don't call
3160 __lshrdi3, instead do the shifting inline.
3161
31622005-12-07 Thiemo Seufer <ths@networkno.de>
3163
3164 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
3165 missing parentheses.
3166 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
3167 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
3168 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
3169 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
3170 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
3171 FA_0_0_OFF2.
3172 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
3173 endianness bugs.
3174 (ffi_prep_closure): Improve trampoline instruction scheduling.
3175 (ffi_closure_mips_inner_O32): Fix endianness bugs.
3176
31772005-12-03 Alan Modra <amodra@bigpond.net.au>
3178
3179 * src/powerpc/ffi.c: Formatting.
3180 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
3181 (ffi_prep_args64): Likewise.
3182
31832005-09-30 Geoffrey Keating <geoffk@apple.com>
3184
3185 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
3186 darwin, use -shared-libgcc not -lgcc_s, and explain why.
3187
31882005-09-26 Tom Tromey <tromey@redhat.com>
3189
3190 * testsuite/libffi.call/float1.c (value_type): New typedef.
3191 (CANARY): New define.
3192 (main): Check for result buffer overflow.
3193 * src/powerpc/linux64.S: Handle linux64 long double returns.
3194 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
3195 (ffi_prep_cif_machdep): Handle linux64 long double returns.
3196
31972005-08-25 Alan Modra <amodra@bigpond.net.au>
3198
3199 PR target/23404
3200 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
3201 homed fp args.
3202 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
3203
32042005-08-11 Jakub Jelinek <jakub@redhat.com>
3205
3206 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
3207 (AH_BOTTOM): Add FFI_HIDDEN definition.
3208 * configure: Rebuilt.
3209 * fficonfig.h.in: Rebuilt.
3210 * src/powerpc/ffi.c (hidden): Remove.
3211 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
3212 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
3213 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
3214 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
3215 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
3216 add FFI_HIDDEN to its prototype.
3217 (ffi_closure_SYSV_inner): New.
3218 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3219 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
3220
32212005-08-10 Alfred M. Szmidt <ams@gnu.org>
3222
3223 PR libffi/21819:
3224 * configure: Rebuilt.
3225 * configure.ac: Handle i*86-*-gnu*.
3226
32272005-08-09 Jakub Jelinek <jakub@redhat.com>
3228
3229 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
3230 DW_CFA_offset_extended_sf rather than
3231 DW_CFA_GNU_negative_offset_extended.
3232 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
3233
32342005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
3235
3236 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
3237 on sh3.
3238 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
3239 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
3240 partially on register.
3241 (ffi_closure_helper_SYSV): Likewise.
3242 (ffi_prep_cif_machdep): Don't set too many cif->flags.
3243
32442005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
3245
3246 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
3247 Remove empty line.
3248 * src/sh64/ffi.c (simple_type): Remove.
3249 (return_type): Handle small structures correctly.
3250 (ffi_prep_args): Likewise.
3251 (ffi_call): Likewise.
3252 (ffi_closure_helper_SYSV): Likewise.
3253 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
3254 Emit position independent code if PIC and remove wrong datalabel
3255 prefixes from EH data.
3256
32572005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
3258
3259 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
3260 * Makefile.in: Regenerate.
3261 * include/Makefile.in: Likewise.
3262 * testsuite/Makefile.in: Likewise.
3263 * configure.ac: Add POWERPC_FREEBSD rules.
3264 * configure: Regenerate.
3265 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
3266 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
3267 * src/powerpc/ffi.c: Add flags to handle small structure returns
3268 in ffi_call_SYSV.
3269 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
3270 Aka FFI_SYSV.
3271 (ffi_closure_helper_SYSV): Likewise.
3272 * src/powerpc/ppc_closure.S: Add return types for small structures.
3273 * src/powerpc/sysv.S: Add bits to handle small structures for
3274 final SYSV 4 ABI.
3275
32762005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
3277
3278 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
3279 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
3280 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
3281
32822005-07-05 Randolph Chung <tausq@debian.org>
3283
3284 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
3285 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
3286 structures. Kill compilation warnings.
3287 (ffi_closure_inner_LINUX): Print return values as hex in debug
3288 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
3289 Properly handle 5-7 byte structure returns.
3290 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
3291 (FFI_TYPE_SMALL_STRUCT2): Remove.
3292 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
3293 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
3294 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
3295 (checksmst1, checksmst2): Remove.
3296 (checksmst3): Optimize handling of 3-byte struct returns.
3297 (checksmst567): Properly handle 5-7 byte struct returns.
3298
32992005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3300
3301 PR libgcj/21943
3302 * src/mips/n32.S: Enforce PIC code.
3303 * src/mips/o32.S: Likewise.
3304
33052005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3306
3307 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
3308 * configure: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003309
Anthony Greenc6dddbd2009-10-04 08:11:33 -040033102005-06-01 Alan Modra <amodra@bigpond.net.au>
3311
3312 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
3313 to call ffi_closure_helper_SYSV. Append @local instead.
3314 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
3315
33162005-05-17 Kelley Cook <kcook@gcc.gnu.org>
3317
3318 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3319 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3320 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
3321 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
3322 include/Makefile.in, testsuite/Makefile.in: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003323
Anthony Greenc6dddbd2009-10-04 08:11:33 -040033242005-05-09 Mike Stump <mrs@apple.com>
3325
3326 * configure: Regenerate.
3327
33282005-05-08 Richard Henderson <rth@redhat.com>
3329
3330 PR libffi/21285
3331 * src/alpha/osf.S: Update unwind into to match code.
3332
33332005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
3334 Richard Henderson <rth@redhat.com>
3335
3336 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
3337 bit 11 of flags.
3338 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
3339 (ffi_prep_closure): Set carry bit if sse-used flag set.
3340 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
3341 Only load sse registers if ssecount non-zero.
3342 (ffi_closure_unix64): Only save sse registers if carry set on entry.
3343
33442005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
3345
3346 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
3347 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
3348 * configure: Regenerate.
3349
33502005-04-20 Hans-Peter Nilsson <hp@axis.com>
3351
3352 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
3353 have Tcl8.3-compatible intermediate variable.
3354
Anthony Green0cfe60e2009-12-29 10:06:04 -050033552005-04-18 Simon Posnjak <simon.posnjak@siol.net>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04003356 Hans-Peter Nilsson <hp@axis.com>
3357
3358 * Makefile.am: Add CRIS support.
3359 * configure.ac: Likewise.
3360 * Makefile.in, configure, testsuite/Makefile.in,
3361 include/Makefile.in: Regenerate.
3362 * src/cris: New directory.
3363 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
3364 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
3365
3366 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
3367 \r?\n in output tests.
3368
33692005-04-12 Mike Stump <mrs@apple.com>
3370
3371 * configure: Regenerate.
3372
33732005-03-30 Hans Boehm <Hans.Boehm@hp.com>
3374
3375 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
Anthony Green0cfe60e2009-12-29 10:06:04 -05003376
Anthony Greenc6dddbd2009-10-04 08:11:33 -040033772005-03-30 Steve Ellcey <sje@cup.hp.com>
3378
3379 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
3380 (ffi_sarg) Ditto.
3381 * src/ia64/unix.S (ffi_closure_unix): Extend gp
3382 to 64 bits in ILP32 mode.
3383 Load 64 bits even for short data.
3384
33852005-03-23 Mike Stump <mrs@apple.com>
3386
3387 * src/powerpc/darwin.S: Update for -m64 multilib.
3388 * src/powerpc/darwin_closure.S: Likewise.
3389
33902005-03-21 Zack Weinberg <zack@codesourcery.com>
3391
3392 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
3393 Do not set tool_include_dir.
3394 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
3395 Regenerate.
3396 * include/Makefile.am: Set gcc_version and toollibffidir.
3397 * include/Makefile.in: Regenerate.
3398
33992005-02-22 Andrew Haley <aph@redhat.com>
3400
3401 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
3402 odd-numbered register pairs for 64-bit integer types.
3403
34042005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
3405
3406 PR libffi/20104
3407 * testsuite/libffi.call/return_ll1.c: New test case.
3408
34092005-02-11 Janis Johnson <janis187@us.ibm.com>
3410
3411 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
3412 * testsuite/libffi.call/float.c: Ditto.
3413 * testsuite/libffi.call/float2.c: Ditto.
3414 * testsuite/libffi.call/float3.c: Ditto.
3415
34162005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
3417
3418 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
3419
34202005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
3421
3422 * testsuite/libffi.special/special.exp (cxx_options): Add
3423 -shared-libgcc.
3424
34252004-12-31 Richard Henderson <rth@redhat.com>
3426
3427 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
3428 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
3429 offset parameters with a type parameter; deduce size and structure
3430 alignment. Update all users.
3431
34322004-12-31 Richard Henderson <rth@redhat.com>
3433
3434 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
3435 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
3436 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
3437 into ffi_prep_closure.
3438 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
3439 from scratch.
3440
34412004-12-27 Richard Henderson <rth@redhat.com>
3442
3443 * src/x86/unix64.S: Fix typo in unwind info.
3444
34452004-12-25 Richard Henderson <rth@redhat.com>
3446
3447 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
3448 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
3449 (merge_classes): Check for it.
3450 (SSE_CLASS_P): New.
3451 (classify_argument): Pass byte_offset by value; perform all updates
3452 inside struct case.
3453 (examine_argument): Add classes argument; handle
3454 X86_64_COMPLEX_X87_CLASS.
3455 (ffi_prep_args): Merge into ...
3456 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
3457 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
3458 (ffi_fill_return_value): Remove.
3459 (ffi_prep_closure): Remove dead assert.
3460 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
3461 Rewrite to use struct register_args instead of va_list. Create
3462 flags for handling structure returns.
3463 * src/x86/unix64.S: Remove dead strings.
3464 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
3465 stack frame with ffi_call. Handle structure returns properly.
3466 (float2sse, floatfloat2sse, double2sse): Remove.
3467 (sse2float, sse2double, sse2floatfloat): Remove.
3468 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
3469 to handle structure returns properly.
3470
34712004-12-08 David Edelsohn <edelsohn@gnu.org>
3472
3473 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
3474 PICFLAG.
3475 * Makefile.in: Regenerated.
3476
34772004-12-02 Richard Sandiford <rsandifo@redhat.com>
3478
3479 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
3480 * configure, aclocal.m4, Makefile.in: Regenerate.
3481 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
3482
34832004-11-29 Kelley Cook <kcook@gcc.gnu.org>
3484
3485 * configure: Regenerate for libtool change.
3486
34872004-11-25 Kelley Cook <kcook@gcc.gnu.org>
3488
3489 * configure: Regenerate for libtool reversion.
3490
34912004-11-24 Kelley Cook <kcook@gcc.gnu.org>
3492
3493 * configure: Regenerate for libtool change.
3494
34952004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3496
3497 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
3498
34992004-11-23 Richard Sandiford <rsandifo@redhat.com>
3500
3501 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
3502 of jal. Use an absolute encoding for the frame information.
3503
35042004-11-23 Kelley Cook <kcook@gcc.gnu.org>
3505
3506 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
3507 * acinclude.m4: Delete logic for sincludes.
3508 * aclocal.m4, Makefile.in, configure: Regenerate.
3509 * include/Makefile: Likewise.
3510 * testsuite/Makefile: Likewise.
3511
35122004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3513
3514 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
3515 on a 8-byte boundary.
3516 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
3517
35182004-10-27 Richard Earnshaw <rearnsha@arm.com>
3519
3520 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
3521 long long values. Round stack allocation to a multiple of 8 bytes
3522 for ATPCS compatibility.
3523 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
3524 names. Handle returning long long types. Add Thumb and interworking
3525 support. Improve soft-float code.
3526
35272004-10-27 Richard Earnshaw <rearnsha@arm.com>
3528
3529 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
3530 (libffi_exit): New function.
3531 (libffi_init): Build the testglue wrapper if needed.
3532
35332004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3534
3535 PR other/18138
3536 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
3537
35382004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3539
3540 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
3541
35422004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
3543
3544 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
3545 * testsuite/libffi.call/float3.c: New test case.
3546
35472004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
3548
3549 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
3550 the function returning a structure pointed with R2.
3551 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
3552 the structure return value if T bit set. Emit position
3553 independent code and EH data if PIC.
3554
35552004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3556
3557 * Makefile.am: Add m32r support.
3558 * configure.ac: Likewise.
3559 * Makefile.in: Regenerate.
3560 * confiugre: Regenerate.
3561 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
3562 (uint64, sint64, double, longdouble)
3563 * src/m32r: New directory.
3564 * src/m32r/ffi.c: New file.
3565 * src/m32r/sysv.S: Likewise.
3566 * src/m32r/ffitarget.h: Likewise.
3567
35682004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
3569
3570 * testsuite/libffi.call/negint.c: New test case.
3571
35722004-09-14 H.J. Lu <hongjiu.lu@intel.com>
3573
3574 PR libgcj/17465
3575 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
3576 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
3577 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
3578 DYLD_LIBRARY_PATH.
3579
35802004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3581
3582 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
3583 * testsuite/libffi.call/promotion.c: Likewise.
3584 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
3585 whitespaces.
3586 * testsuite/libffi.call/return_sc.c: Likewise.
3587 * testsuite/libffi.call/return_uc.c: Likewise.
3588
35892004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
3590
3591 * src/powerpc/darwin.S: Fix comments and identation.
3592 * src/powerpc/darwin_closure.S: Likewise.
3593
35942004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3595
3596 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
3597 (ffi_prep_args): Handle longdouble arguments.
3598 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
3599 longdouble.
3600 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
3601 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
3602 values.
3603 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
3604 * src/types.c: Defined longdouble size and alignment for darwin.
3605
36062004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
3607
3608 * src/powerpc/aix.S: Remove whitespaces.
3609 * src/powerpc/aix_closure.S: Likewise.
3610 * src/powerpc/asm.h: Likewise.
3611 * src/powerpc/ffi.c: Likewise.
3612 * src/powerpc/ffitarget.h: Likewise.
3613 * src/powerpc/linux64.S: Likewise.
3614 * src/powerpc/linux64_closure.S: Likewise.
3615 * src/powerpc/ppc_closure.S: Likewise.
3616 * src/powerpc/sysv.S: Likewise.
3617
36182004-08-30 Anthony Green <green@redhat.com>
3619
3620 * Makefile.am: Add frv support.
3621 * Makefile.in, testsuite/Makefile.in: Rebuilt.
3622 * configure.ac: Read configure.host.
3623 * configure.in: Read configure.host.
3624 * configure.host: New file. frv-elf needs libgloss.
3625 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
3626 alignment. This is needed to frv and shouldn't harm the others.
3627 * include/ffi_common.h (ALIGN_DOWN): New macro.
3628 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
3629
36302004-08-24 David Daney <daney@avtrex.com>
3631
3632 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
3633 * testsuite/libffi.call/closure_fn1.c: Likewise.
3634 * testsuite/libffi.call/closure_fn2.c Likewise.
3635 * testsuite/libffi.call/closure_fn3.c: Likewise.
3636 * testsuite/libffi.call/closure_fn4.c: Likewise.
3637 * testsuite/libffi.call/closure_fn5.c: Likewise.
3638 * testsuite/libffi.call/cls_18byte.c: Likewise.
3639 * testsuite/libffi.call/cls_19byte.c: Likewise.
3640 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3641 * testsuite/libffi.call/cls_20byte.c: Likewise.
3642 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3643 * testsuite/libffi.call/cls_24byte.c: Likewise.
3644 * testsuite/libffi.call/cls_2byte.c: Likewise.
3645 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3646 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3647 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3648 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3649 * testsuite/libffi.call/cls_4byte.c: Likewise.
3650 * testsuite/libffi.call/cls_64byte.c: Likewise.
3651 * testsuite/libffi.call/cls_6byte.c: Likewise.
3652 * testsuite/libffi.call/cls_7byte.c: Likewise.
3653 * testsuite/libffi.call/cls_8byte.c: Likewise.
3654 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3655 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3656 * testsuite/libffi.call/cls_align_double.c: Likewise.
3657 * testsuite/libffi.call/cls_align_float.c: Likewise.
3658 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3659 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3660 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3661 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3662 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3663 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3664 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3665 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
3666 * testsuite/libffi.call/cls_double.c: Likewise.
3667 * testsuite/libffi.call/cls_float.c: Likewise.
3668 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3669 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
3670 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3671 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3672 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3673 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3674 * testsuite/libffi.call/cls_schar.c: Likewise.
3675 * testsuite/libffi.call/cls_sint.c: Likewise.
3676 * testsuite/libffi.call/cls_sshort.c: Likewise.
3677 * testsuite/libffi.call/cls_uchar.c: Likewise.
3678 * testsuite/libffi.call/cls_uint.c: Likewise.
3679 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3680 * testsuite/libffi.call/cls_ushort.c: Likewise.
3681 * testsuite/libffi.call/nested_struct.c: Likewise.
3682 * testsuite/libffi.call/nested_struct1.c: Likewise.
3683 * testsuite/libffi.call/nested_struct2.c: Likewise.
3684 * testsuite/libffi.call/nested_struct3.c: Likewise.
3685 * testsuite/libffi.call/problem1.c: Likewise.
3686 * testsuite/libffi.special/unwindtest.cc: Likewise.
3687 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
3688 to zero.
3689 * testsuite/libffi.call/cls_16byte.c: Likewise.
3690 * testsuite/libffi.call/cls_5byte.c: Likewise.
3691
36922004-08-23 David Daney <daney@avtrex.com>
3693
3694 PR libgcj/13141
3695 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
3696 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
3697 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
3698 parameters and return types.
3699 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
3700 (ffi_prep_closure): Ditto.
3701 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
3702 alignment calculations.
3703 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
3704 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
3705
37062004-08-14 Casey Marshall <csm@gnu.org>
3707
3708 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
3709 contain `FFI_TYPE_UINT64' as return type for any 64-bit
3710 integer (O32 ABI only).
3711 (ffi_prep_closure): new function.
3712 (ffi_closure_mips_inner_O32): new function.
3713 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
3714 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
3715 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
3716 64 bit integers correctly.
3717 (ffi_closure_O32): new function.
3718 Added DWARF-2 unwind info for both functions.
3719
37202004-08-10 Andrew Haley <aph@redhat.com>
3721
3722 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
3723
37242004-08-01 Robert Millan <robertmh@gnu.org>
3725
3726 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
3727 * configure: Regenerate.
3728
37292004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
3730
3731 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3732 and mmap() explicitly instead of relying on preset autoconf cache
3733 variables.
3734 * aclocal.m4: Regenerate.
3735 * configure: Regenerate.
3736
37372004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
3738
3739 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
3740 (ffi_check_float_struct): Remove unused prototype.
3741
37422004-06-30 Geoffrey Keating <geoffk@apple.com>
3743
3744 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
3745 character on Darwin, use '\n\t' instead.
3746
37472004-06-26 Matthias Klose <doko@debian.org>
3748
3749 * libtool-version: Fix typo in revision/age.
3750
37512004-06-17 Matthias Klose <doko@debian.org>
3752
3753 * libtool-version: New.
3754 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
3755 * Makefile.in: Regenerate.
3756
37572004-06-15 Paolo Bonzini <bonzini@gnu.org>
3758
3759 * Makefile.am: Remove useless multilib rules.
3760 * Makefile.in: Regenerate.
3761 * aclocal.m4: Regenerate with automake 1.8.5.
3762 * configure.ac: Remove useless multilib configury.
3763 * configure: Regenerate.
3764
37652004-06-15 Paolo Bonzini <bonzini@gnu.org>
3766
3767 * .cvsignore: New file.
3768
37692004-06-10 Jakub Jelinek <jakub@redhat.com>
3770
3771 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
3772 fp_done.
3773 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
3774 changed from 8.
3775
37762004-06-06 Sean McNeil <sean@mcneil.com>
3777
3778 * configure.ac: Add x86_64-*-freebsd* support.
3779 * configure: Regenerate.
3780
37812004-04-26 Joe Buck <jbuck@welsh-buck.org>
3782
3783 Bug 15093
3784 * configure.ac: Test for existence of mmap and sys/mman.h before
3785 checking blacklist. Fix suggested by Jim Wilson.
3786 * configure: Regenerate.
3787
37882004-04-26 Matt Austern <austern@apple.com>
3789
3790 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
3791 FDE location.
3792 * src/powerpc/darwin_closure.S: Likewise.
3793
37942004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
3795
3796 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
3797 error. Reported by Thomas Heller <theller@python.net>.
3798 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
3799 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
3800
38012004-03-20 Matthias Klose <doko@debian.org>
3802
3803 * src/pa/linux.S: Fix typo.
3804
38052004-03-19 Matthias Klose <doko@debian.org>
3806
3807 * Makefile.am: Update.
3808 * Makefile.in: Regenerate.
3809 * src/pa/ffi.h.in: Remove.
3810 * src/pa/ffitarget.h: New file.
3811
38122004-02-10 Randolph Chung <tausq@debian.org>
3813
3814 * Makefile.am: Add PA support.
3815 * Makefile.in: Regenerate.
3816 * include/Makefile.in: Regenerate.
3817 * configure.ac: Add PA target.
3818 * configure: Regenerate.
3819 * src/pa/ffi.c: New file.
3820 * src/pa/ffi.h.in: Add PA support.
3821 * src/pa/linux.S: New file.
3822 * prep_cif.c: Add PA support.
3823
38242004-03-16 Hosaka Yuji <hos@tamanegi.org>
3825
3826 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
3827 double.
3828 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
3829 with ecif->cif->flags.
3830 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
3831 with cif->flags.
3832 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
3833 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
3834 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
3835 sc_retstruct2b): Add for 1 or 2-bytes struct case.
3836
38372004-03-15 Kelley Cook <kcook@gcc.gnu.org>
3838
3839 * configure.in: Rename file to ...
3840 * configure.ac: ... this.
3841 * fficonfig.h.in: Regenerate.
3842 * Makefile.in: Regenerate.
3843 * include/Makefile.in: Regenerate.
3844 * testsuite/Makefile.in: Regenerate.
3845
38462004-03-12 Matt Austern <austern@apple.com>
3847
3848 * src/powerpc/darwin.S: Fix EH information so it corresponds to
3849 changes in EH format resulting from addition of linkonce support.
3850 * src/powerpc/darwin_closure.S: Likewise.
3851
38522004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
3853 Paolo Bonzini <bonzini@gnu.org>
3854
3855 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
3856 Remove VPATH. Remove rules for object files. Remove multilib support.
3857 (AM_CCASFLAGS): Add.
3858 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
3859 (AC_PREREQ): Bump version to 2.59.
3860 (AC_INIT): Fill with version info and bug address.
3861 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
3862 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
3863 De-precious CC so that the right flags are passed down to multilibs.
3864 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
3865 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
3866 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
3867 * configure: Rebuilt.
3868 * aclocal.m4: Likewise.
3869 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
3870 * fficonfig.h.in: Likewise.
3871
38722004-03-11 Andreas Schwab <schwab@suse.de>
3873
3874 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
3875 arguments from fp registers only for the first 8 parameter slots.
3876 Don't convert a float parameter when passed in memory.
3877
38782004-03-09 Hans-Peter Nilsson <hp@axis.com>
3879
3880 * configure: Regenerate for config/accross.m4 correction.
3881
38822004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
3883
3884 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
3885 ecif->cif->bytes to bytes.
3886 (ffi_prep_cif_machdep): Add braces around nested if statement.
3887
38882004-02-09 Alan Modra <amodra@bigpond.net.au>
3889
3890 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
3891
3892 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
3893 (ffi_closure_helper_LINUX64): Fix typo.
3894 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
3895 for powerpc64-*-*.
3896 * testsuite/libffi.call/float.c: Likewise.
3897 * testsuite/libffi.call/float2.c: Likewise.
3898
38992004-02-08 Alan Modra <amodra@bigpond.net.au>
3900
3901 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
3902 long double function return and long double arg handling.
3903 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
3904 Use "end_pfr" instead of "nf". Correct long double handling.
3905 Localise "temp".
3906 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
3907 return value.
3908 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
3909 space for long double return value. Adjust stack frame and offsets.
3910 Load f2 long double return.
3911
39122004-02-07 Alan Modra <amodra@bigpond.net.au>
3913
3914 * src/types.c: Use 16 byte long double for POWERPC64.
3915
39162004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3917
3918 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
3919 when the structure return address is passed in %o0.
3920 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
3921 (ffi_v9_layout_struct): Align the field following a nested structure
3922 on a word boundary. Use memmove instead of memcpy.
3923 (ffi_call): Update call to ffi_V9_return_struct.
3924 (ffi_prep_closure): Define 'ctx' only for V8.
3925 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
3926 and ffi_closure_sparc_inner_v9.
3927 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
3928 Always skip the structure return address. For structures and long
3929 doubles, copy the argument directly.
3930 (ffi_closure_sparc_inner_v9): Skip the structure return address only
3931 if required. Shift the maximum floating-point slot accordingly. For
3932 big structures, copy the argument directly; otherwise, left-justify the
3933 argument and call ffi_v9_layout_struct to lay out the structure on
3934 the stack.
3935 * src/sparc/v8.S: Undef STACKFRAME before defining it.
3936 (ffi_closure_v8): Pass the structure return address. Update call to
3937 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
3938 Skip the 'unimp' insn when returning long doubles and structures.
3939 * src/sparc/v9.S: Undef STACKFRAME before defining it.
3940 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
3941 FFI_TYPE_INT handling. Load structures both in integers and
3942 floating-point registers on return.
3943 * README: Update status of the SPARC port.
3944
39452004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
3946
3947 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
3948 as of type ffi_arg.
3949 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
3950
39512004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
3952
3953 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
3954 value as of type ffi_arg, not unsigned int.
3955
39562004-01-21 Michael Ritzert <ritzert@t-online.de>
3957
3958 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
3959 of the LHS.
3960
39612004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
3962
3963 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
3964 Solaris.
3965
39662004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3967
3968 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
3969 to void *.
3970
39712003-12-10 Richard Henderson <rth@redhat.com>
3972
3973 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
3974 size_t instead of int.
3975
39762003-12-04 Hosaka Yuji <hos@tamanegi.org>
3977
3978 * testsuite/libffi.call/many_win32.c: Include <float.h>.
3979 * testsuite/libffi.call/many_win32.c (main): Replace variable
3980 int i with unsigned long ul.
3981
3982 * testsuite/libffi.call/cls_align_uint64.c: New test case.
3983 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3984 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3985 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3986 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3987 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3988 * testsuite/libffi.call/cls_align_float.c: Likewise.
3989 * testsuite/libffi.call/cls_align_double.c: Likewise.
3990 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3991 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3992
39932003-12-02 Hosaka Yuji <hos@tamanegi.org>
3994
3995 PR other/13221
3996 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
3997 Align arguments to 32 bits.
3998
39992003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
4000
4001 PR other/13221
4002 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
4003 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
4004 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
4005 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
4006 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
4007 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
4008
4009 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
4010
40112003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4012
4013 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
4014 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4015
40162003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
4017
4018 * Makefile.in: Rebuilt.
4019 * configure: Likewise.
4020 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
4021 the right type.
4022
40232003-11-21 Andreas Jaeger <aj@suse.de>
4024 Andreas Tobler <a.tobler@schweiz.ch>
4025
4026 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
4027 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
4028 * Makefile.in: Rebuilt.
4029 * aclocal.m4: Likewise.
4030 * configure: Likewise.
4031 * fficonfig.h.in: Likewise.
4032 * testsuite/lib/libffi-dg.exp: Add include dir.
4033 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
4034 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4035 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
4036 for ffi_closure if available.
4037 * testsuite/libffi.call/closure_fn1.c: Likewise.
4038 * testsuite/libffi.call/closure_fn2.c: Likewise.
4039 * testsuite/libffi.call/closure_fn3.c: Likewise.
4040 * testsuite/libffi.call/closure_fn4.c: Likewise.
4041 * testsuite/libffi.call/closure_fn5.c: Likewise.
4042 * testsuite/libffi.call/cls_12byte.c: Likewise.
4043 * testsuite/libffi.call/cls_16byte.c: Likewise.
4044 * testsuite/libffi.call/cls_18byte.c: Likewise.
4045 * testsuite/libffi.call/cls_19byte.c: Likewise.
4046 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4047 * testsuite/libffi.call/cls_20byte.c: Likewise.
4048 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4049 * testsuite/libffi.call/cls_24byte.c: Likewise.
4050 * testsuite/libffi.call/cls_2byte.c: Likewise.
4051 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4052 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4053 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4054 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4055 * testsuite/libffi.call/cls_4byte.c: Likewise.
4056 * testsuite/libffi.call/cls_5byte.c: Likewise.
4057 * testsuite/libffi.call/cls_64byte.c: Likewise.
4058 * testsuite/libffi.call/cls_6byte.c: Likewise.
4059 * testsuite/libffi.call/cls_7byte.c: Likewise.
4060 * testsuite/libffi.call/cls_8byte.c: Likewise.
4061 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4062 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4063 * testsuite/libffi.call/cls_double.c: Likewise.
4064 * testsuite/libffi.call/cls_float.c: Likewise.
4065 * testsuite/libffi.call/cls_schar.c: Likewise.
4066 * testsuite/libffi.call/cls_sint.c: Likewise.
4067 * testsuite/libffi.call/cls_sshort.c: Likewise.
4068 * testsuite/libffi.call/cls_uchar.c: Likewise.
4069 * testsuite/libffi.call/cls_uint.c: Likewise.
4070 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4071 * testsuite/libffi.call/cls_ushort.c: Likewise.
4072 * testsuite/libffi.call/nested_struct.c: Likewise.
4073 * testsuite/libffi.call/nested_struct1.c: Likewise.
4074 * testsuite/libffi.call/nested_struct2.c: Likewise.
4075 * testsuite/libffi.call/nested_struct3.c: Likewise.
4076 * testsuite/libffi.call/problem1.c: Likewise.
4077 * testsuite/libffi.special/unwindtest.cc: Likewise.
4078
40792003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
4080
4081 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
4082
40832003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
4084
4085 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
4086 Add -lgcc_s to additional flags.
4087
40882003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
4089
4090 * configure.in, include/Makefile.am: PR libgcj/11147, install
4091 the ffitarget.h header file in a gcc versioned and target
4092 dependent place.
4093 * configure: Regenerated.
4094 * Makefile.in, include/Makefile.in: Likewise.
4095 * testsuite/Makefile.in: Likewise.
4096
40972003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
4098
4099 * testsuite/libffi.call/closure_fn0.c: Print result and check
4100 with dg-output to make debugging easier.
4101 * testsuite/libffi.call/closure_fn1.c: Likewise.
4102 * testsuite/libffi.call/closure_fn2.c: Likewise.
4103 * testsuite/libffi.call/closure_fn3.c: Likewise.
4104 * testsuite/libffi.call/closure_fn4.c: Likewise.
4105 * testsuite/libffi.call/closure_fn5.c: Likewise.
4106 * testsuite/libffi.call/cls_12byte.c: Likewise.
4107 * testsuite/libffi.call/cls_16byte.c: Likewise.
4108 * testsuite/libffi.call/cls_18byte.c: Likewise.
4109 * testsuite/libffi.call/cls_19byte.c: Likewise.
4110 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4111 * testsuite/libffi.call/cls_20byte.c: Likewise.
4112 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4113 * testsuite/libffi.call/cls_24byte.c: Likewise.
4114 * testsuite/libffi.call/cls_2byte.c: Likewise.
4115 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4116 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4117 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4118 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4119 * testsuite/libffi.call/cls_4byte.c: Likewise.
4120 * testsuite/libffi.call/cls_5byte.c: Likewise.
4121 * testsuite/libffi.call/cls_64byte.c: Likewise.
4122 * testsuite/libffi.call/cls_6byte.c: Likewise.
4123 * testsuite/libffi.call/cls_7byte.c: Likewise.
4124 * testsuite/libffi.call/cls_8byte.c: Likewise.
4125 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4126 * testsuite/libffi.call/cls_9byte2.c: Likewise.
4127 * testsuite/libffi.call/cls_double.c: Likewise.
4128 * testsuite/libffi.call/cls_float.c: Likewise.
4129 * testsuite/libffi.call/cls_schar.c: Likewise.
4130 * testsuite/libffi.call/cls_sint.c: Likewise.
4131 * testsuite/libffi.call/cls_sshort.c: Likewise.
4132 * testsuite/libffi.call/cls_uchar.c: Likewise.
4133 * testsuite/libffi.call/cls_uint.c: Likewise.
4134 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4135 * testsuite/libffi.call/cls_ushort.c: Likewise.
4136 * testsuite/libffi.call/problem1.c: Likewise.
4137
4138 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
4139 static.
4140
41412003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4142
4143 * testsuite/libffi.call/cls_9byte2.c: New test case.
4144 * testsuite/libffi.call/cls_9byte1.c: Likewise.
4145 * testsuite/libffi.call/cls_64byte.c: Likewise.
4146 * testsuite/libffi.call/cls_20byte1.c: Likewise.
4147 * testsuite/libffi.call/cls_19byte.c: Likewise.
4148 * testsuite/libffi.call/cls_18byte.c: Likewise.
4149 * testsuite/libffi.call/closure_fn4.c: Likewise.
4150 * testsuite/libffi.call/closure_fn5.c: Likewise.
4151 * testsuite/libffi.call/cls_schar.c: Likewise.
4152 * testsuite/libffi.call/cls_sint.c: Likewise.
4153 * testsuite/libffi.call/cls_sshort.c: Likewise.
4154 * testsuite/libffi.call/nested_struct2.c: Likewise.
4155 * testsuite/libffi.call/nested_struct3.c: Likewise.
4156
41572003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
4158
4159 * testsuite/libffi.call/cls_double.c: Do a check on the result.
4160 * testsuite/libffi.call/cls_uchar.c: Likewise.
4161 * testsuite/libffi.call/cls_uint.c: Likewise.
4162 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4163 * testsuite/libffi.call/cls_ushort.c: Likewise.
4164 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
4165
41662003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
4167
4168 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
4169 the initialization.
4170
41712003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
4172
4173 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
4174 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
4175
41762003-10-22 David Daney <ddaney@avtrex.com>
4177
4178 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
4179 __attribute__((__mode__(__SI__))) and friends.
4180
41812003-10-22 Andreas Schwab <schwab@suse.de>
4182
4183 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
4184
41852003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
4186
4187 * configure.in: AC_LINK_FILES(ffitarget.h).
4188 * configure: Regenerate.
4189 * Makefile.in: Likewise.
4190 * include/Makefile.in: Likewise.
4191 * testsuite/Makefile.in: Likewise.
4192 * fficonfig.h.in: Likewise.
4193
41942003-10-21 Paolo Bonzini <bonzini@gnu.org>
4195 Richard Henderson <rth@redhat.com>
4196
4197 Avoid that ffi.h includes fficonfig.h.
4198
4199 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
4200 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4201 (TARGET_SRC_MIPS_SGI): Removed.
4202 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
4203 (MIPS_SGI): Removed.
4204 (CLEANFILES): Removed.
4205 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
4206 targets.
4207 * acconfig.h: Removed.
4208 * configure.in: Compute sizeofs only for double and long double.
4209 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
4210 into AC_DEFINE instead of using acconfig.h. Create
4211 include/ffitarget.h instead of include/fficonfig.h. Rename
4212 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
4213 AC_DEFINE EH_FRAME_FLAGS.
4214 * include/Makefile.am (DISTCLEANFILES): New automake macro.
4215 (hack_DATA): Add ffitarget.h.
4216 * include/ffi.h.in: Remove all system specific definitions.
4217 Declare raw API even if it is not installed, why bother?
4218 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
4219 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
4220 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
4221 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
4222 * include/ffi_common.h (bool): Do not define.
4223 (ffi_assert): Accept failed assertion.
4224 (ffi_type_test): Return void and accept file/line.
4225 (FFI_ASSERT): Pass stringized failed assertion.
4226 (FFI_ASSERT_AT): New macro.
4227 (FFI_ASSERT_VALID_TYPE): New macro.
4228 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
4229 UINT64, SINT64): Define here with gcc's __attribute__ macro
4230 instead of in ffi.h
4231 (FLOAT32, ALIGN): Define here instead of in ffi.h
4232 * include/ffi-mips.h: Removed. Its content moved to
4233 src/mips/ffitarget.h after separating assembly and C sections.
4234 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
4235 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
4236 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
4237 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
4238 SIZEOF_ARG -> FFI_SIZEOF_ARG.
4239 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
4240 * src/debug.c (ffi_assert): Accept stringized failed assertion.
4241 (ffi_type_test): Rewritten.
4242 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
4243 FFI_ASSERT_VALID_TYPE.
4244 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
4245 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
4246 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
4247 src/s390/ffitarget.h, src/sh/ffitarget.h,
4248 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
4249 src/x86/ffitarget.h: New files.
4250 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
4251 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
4252 src/powerpc/aix.S, src/powerpc/darwin.S,
4253 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
4254 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
4255 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
4256 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
4257 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
4258 include fficonfig.h
4259
42602003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4261
4262 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
4263 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
4264
42652003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
4266
4267 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
4268 Used when FFI_DEBUG = 1.
4269
42702003-10-14 Alan Modra <amodra@bigpond.net.au>
4271
4272 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
4273 and align.
4274
42752003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4276
4277 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
4278 FFI_MIPS_O32 for O32 ABI.
4279
42802003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
4281
4282 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
4283 SPARC64. Cleanup whitespaces.
4284
42852003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
4286
4287 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
4288 strongarm, xscale. Cleanup whitespaces.
4289 * testsuite/libffi.call/closure_fn1.c: Likewise.
4290 * testsuite/libffi.call/closure_fn2.c: Likewise.
4291 * testsuite/libffi.call/closure_fn3.c: Likewise.
4292 * testsuite/libffi.call/cls_12byte.c: Likewise.
4293 * testsuite/libffi.call/cls_16byte.c: Likewise.
4294 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4295 * testsuite/libffi.call/cls_20byte.c: Likewise.
4296 * testsuite/libffi.call/cls_24byte.c: Likewise.
4297 * testsuite/libffi.call/cls_2byte.c: Likewise.
4298 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4299 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4300 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4301 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4302 * testsuite/libffi.call/cls_4byte.c: Likewise.
4303 * testsuite/libffi.call/cls_5byte.c: Likewise.
4304 * testsuite/libffi.call/cls_6byte.c: Likewise.
4305 * testsuite/libffi.call/cls_7byte.c: Likewise.
4306 * testsuite/libffi.call/cls_8byte.c: Likewise.
4307 * testsuite/libffi.call/cls_double.c: Likewise.
4308 * testsuite/libffi.call/cls_float.c: Likewise.
4309 * testsuite/libffi.call/cls_uchar.c: Likewise.
4310 * testsuite/libffi.call/cls_uint.c: Likewise.
4311 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4312 * testsuite/libffi.call/cls_ushort.c: Likewise.
4313 * testsuite/libffi.call/nested_struct.c: Likewise.
4314 * testsuite/libffi.call/nested_struct1.c: Likewise.
4315 * testsuite/libffi.call/problem1.c: Likewise.
4316 * testsuite/libffi.special/unwindtest.cc: Likewise.
4317 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
4318
43192003-09-18 David Edelsohn <edelsohn@gnu.org>
4320
4321 * src/powerpc/aix.S: Cleanup whitespaces.
4322 * src/powerpc/aix_closure.S: Likewise.
4323
43242003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4325
4326 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
4327 * src/powerpc/darwin_closure.S: Likewise.
4328 * src/powerpc/ffi_darwin.c: Likewise.
4329
43302003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
4331 David Edelsohn <edelsohn@gnu.org>
4332
4333 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
4334 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
4335 parameter stack.
4336 * src/powerpc/darwin_closure.S: Likewise.
4337 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
4338 according to the Darwin/AIX ABI.
4339 (ffi_prep_cif_machdep): Likewise.
4340 (ffi_closure_helper_DARWIN): Likewise.
4341 Remove the outgoing parameter stack logic. Simplify the evaluation
4342 of the different CASE types.
4343 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
4344 statement in the trampoline code.
4345
43462003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
4347
4348 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
4349 for the register size.
4350 (ffi_closure_helper_SYSV): Handle the structure return value
4351 address correctly.
4352 (ffi_closure_helper_SYSV): Return the appropriate type when
4353 the registers are used for the structure return value.
4354 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
4355 the 64-bit return value. Update copyright years.
4356
43572003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4358
4359 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
4360 srcdir for ffi_mips.h.
4361
43622003-09-12 Alan Modra <amodra@bigpond.net.au>
4363
4364 * src/prep_cif.c (initialize_aggregate): Include tail padding in
4365 structure size.
4366 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
4367 placement of float result.
4368 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
4369 cast of "resp" for big-endian 64 bit machines.
4370
43712003-09-11 Alan Modra <amodra@bigpond.net.au>
4372
4373 * src/types.c (double, longdouble): Merge identical SH and ARM
4374 typedefs, and add POWERPC64.
4375 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
4376 struct split over gpr and rest.
4377 (ffi_prep_cif_machdep): Correct intarg_count for structures.
4378 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
4379
43802003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
4381
4382 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
4383 passing correctly.
4384
43852003-09-09 Alan Modra <amodra@bigpond.net.au>
4386
4387 * configure: Regenerate.
4388
43892003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4390
4391 * Makefile.am: Remove build rules for ffitest.
4392 * Makefile.in: Rebuilt.
4393
43942003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4395
4396 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
4397 about implicit declaration of abort().
4398
43992003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
4400
4401 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
4402 * Makefile.in: Rebuilt.
4403 * configure.in: Add dejagnu test framework.
4404 * configure: Rebuilt.
4405
4406 * testsuite/Makefile.am: New file.
4407 * testsuite/Makefile.in: Built
4408 * testsuite/lib/libffi-dg.exp: New file.
4409 * testsuite/config/default.exp: Likewise.
4410 * testsuite/libffi.call/call.exp: Likewise.
4411 * testsuite/libffi.call/ffitest.h: Likewise.
4412 * testsuite/libffi.call/closure_fn0.c: Likewise.
4413 * testsuite/libffi.call/closure_fn1.c: Likewise.
4414 * testsuite/libffi.call/closure_fn2.c: Likewise.
4415 * testsuite/libffi.call/closure_fn3.c: Likewise.
4416 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
4417 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
4418 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
4419 * testsuite/libffi.call/cls_2byte.c: Likewise.
4420 * testsuite/libffi.call/cls_3byte1.c: Likewise.
4421 * testsuite/libffi.call/cls_3byte2.c: Likewise.
4422 * testsuite/libffi.call/cls_4byte.c: Likewise.
4423 * testsuite/libffi.call/cls_5byte.c: Likewise.
4424 * testsuite/libffi.call/cls_6byte.c: Likewise.
4425 * testsuite/libffi.call/cls_7byte.c: Likewise.
4426 * testsuite/libffi.call/cls_8byte.c: Likewise.
4427 * testsuite/libffi.call/cls_12byte.c: Likewise.
4428 * testsuite/libffi.call/cls_16byte.c: Likewise.
4429 * testsuite/libffi.call/cls_20byte.c: Likewise.
4430 * testsuite/libffi.call/cls_24byte.c: Likewise.
4431 * testsuite/libffi.call/cls_double.c: Likewise.
4432 * testsuite/libffi.call/cls_float.c: Likewise.
4433 * testsuite/libffi.call/cls_uchar.c: Likewise.
4434 * testsuite/libffi.call/cls_uint.c: Likewise.
4435 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
4436 * testsuite/libffi.call/cls_ushort.c: Likewise.
4437 * testsuite/libffi.call/float.c: Likewise.
4438 * testsuite/libffi.call/float1.c: Likewise.
4439 * testsuite/libffi.call/float2.c: Likewise.
4440 * testsuite/libffi.call/many.c: Likewise.
4441 * testsuite/libffi.call/many_win32.c: Likewise.
4442 * testsuite/libffi.call/nested_struct.c: Likewise.
4443 * testsuite/libffi.call/nested_struct1.c: Likewise.
4444 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
4445 * testsuite/libffi.call/problem1.c: Likewise.
4446 * testsuite/libffi.call/promotion.c: Likewise.
4447 * testsuite/libffi.call/return_ll.c: Likewise.
4448 * testsuite/libffi.call/return_sc.c: Likewise.
4449 * testsuite/libffi.call/return_uc.c: Likewise.
4450 * testsuite/libffi.call/strlen.c: Likewise.
4451 * testsuite/libffi.call/strlen_win32.c: Likewise.
4452 * testsuite/libffi.call/struct1.c: Likewise.
4453 * testsuite/libffi.call/struct2.c: Likewise.
4454 * testsuite/libffi.call/struct3.c: Likewise.
4455 * testsuite/libffi.call/struct4.c: Likewise.
4456 * testsuite/libffi.call/struct5.c: Likewise.
4457 * testsuite/libffi.call/struct6.c: Likewise.
4458 * testsuite/libffi.call/struct7.c: Likewise.
4459 * testsuite/libffi.call/struct8.c: Likewise.
4460 * testsuite/libffi.call/struct9.c: Likewise.
4461 * testsuite/libffi.special/special.exp: New file.
4462 * testsuite/libffi.special/ffitestcxx.h: Likewise.
4463 * testsuite/libffi.special/unwindtest.cc: Likewise.
4464
4465
44662003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
4467
4468 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
4469 copyright years.
4470
44712003-08-02 Alan Modra <amodra@bigpond.net.au>
4472
4473 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
4474 structure passing.
4475 (ffi_closure_helper_LINUX64): Likewise.
4476 * src/powerpc/linux64.S: Remove code writing to parm save area.
4477 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
4478 address in lr from ffi_closure_helper_LINUX64 call to calculate
4479 table address. Optimize function tail.
4480
44812003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
4482
4483 * src/sparc/ffi.c: Handle all floating point registers.
4484 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
4485
44862003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4487
4488 * README: Note that libffi is not part of GCC. Update the project
4489 URL and status.
4490
44912003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4492
4493 * src/powerpc/ppc_closure.S: Include ffi.h.
4494
44952003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4496
4497 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
4498 Use C style comments.
4499
45002003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4501
4502 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
4503 * Makefile.in: Regenerate.
4504 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
4505 * configure: Regenerate.
4506 * include/ffi.h.in: Add SHmedia support.
4507 * src/sh64/ffi.c: New file.
4508 * src/sh64/sysv.S: New file.
4509
45102003-05-16 Jakub Jelinek <jakub@redhat.com>
4511
4512 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
4513 should be read-only.
4514 * configure: Rebuilt.
4515 * fficonfig.h.in: Rebuilt.
4516 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
4517 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
4518 * src/powerpc/linux64.S: Likewise.
4519 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
4520 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
4521 if -fpic/-fPIC/-mrelocatable.
4522 * src/powerpc/powerpc_closure.S: Likewise.
4523 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
4524 #write in .eh_frame flags.
4525 * src/sparc/v9.S: Likewise.
4526 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
4527 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
4528 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
4529
45302003-05-07 Jeff Sturm <jsturm@one-point.com>
4531
4532 Fixes PR bootstrap/10656
4533 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
4534 support for .register pseudo-op.
4535 * src/sparc/v8.S: Use it.
4536 * fficonfig.h.in: Rebuilt.
4537 * configure: Rebuilt.
4538
45392003-04-18 Jakub Jelinek <jakub@redhat.com>
4540
4541 * include/ffi.h.in (POWERPC64): Define if 64-bit.
4542 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
4543 Make it the default on POWERPC64.
4544 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
4545 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
4546 * configure: Rebuilt.
4547 * src/powerpc/ffi.c (hidden): Define.
4548 (ffi_prep_args_SYSV): Renamed from
4549 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
4550 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
4551 ASM_NEEDS_REGISTERS64): New.
4552 (ffi_prep_args64): New function.
4553 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
4554 (ffi_call): Likewise.
4555 (ffi_prep_closure): Likewise.
4556 (flush_icache): Surround by #ifndef POWERPC64.
4557 (ffi_dblfl): New union type.
4558 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
4559 (ffi_closure_helper_LINUX64): New function.
4560 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
4561 __powerpc64__.
4562 * src/powerpc/sysv.S: Likewise.
4563 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
4564 * src/powerpc/linux64.S: New file.
4565 * src/powerpc/linux64_closure.S: New file.
4566 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
4567 src/powerpc/linux64_closure.S.
4568 (TARGET_SRC_POWERPC): Likewise.
4569
4570 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
4571 closure_test_fn3): Fix result printing on big-endian 64-bit
4572 machines.
4573 (main): Print tst2_arg instead of uninitialized tst2_result.
4574
4575 * src/ffitest.c (main): Hide what closure pointer really points to
4576 from the compiler.
4577
45782003-04-16 Richard Earnshaw <rearnsha@arm.com>
4579
4580 * configure.in (arm-*-netbsdelf*): Add configuration.
4581 (configure): Regenerated.
4582
45832003-04-04 Loren J. Rittle <ljrittle@acm.org>
4584
4585 * include/Makefile.in: Regenerate.
4586
45872003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4588
4589 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
4590 bit mode.
4591 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
4592 Receive closure pointer through parameter, read args using
4593 __builtin_dwarf_cfa.
4594 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
4595
45962003-03-12 Andreas Schwab <schwab@suse.de>
4597
4598 * configure.in: Avoid trailing /. in toolexeclibdir.
4599 * configure: Rebuilt.
4600
46012003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
4602
4603 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
4604
46052003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
4606
4607 * libffi/src/powerpc/darwin_closure.S:
4608 Fix alignement bug, allocate 8 bytes for the result.
4609 * libffi/src/powerpc/aix_closure.S:
4610 Likewise.
4611 * libffi/src/powerpc/ffi_darwin.c:
4612 Update stackframe description for aix/darwin_closure.S.
4613
46142003-02-06 Jakub Jelinek <jakub@redhat.com>
4615
4616 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
4617 attribute.
4618
46192003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
4620 Andreas Schwab <schwab@suse.de>
4621
4622 * configure.in: Adjust command to source config-ml.in to account
4623 for changes to the libffi_basedir definition.
4624 (libffi_basedir): Remove ${srcdir} from value and include trailing
4625 slash if nonempty.
4626
4627 * configure: Regenerate.
4628
46292003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4630
4631 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
4632
46332003-01-28 Andrew Haley <aph@redhat.com>
4634
4635 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
4636 * src/x86/ffi64.c (ffi_prep_closure): New.
4637 (ffi_closure_UNIX64_inner): New.
4638 * src/x86/unix64.S (ffi_closure_UNIX64): New.
4639
46402003-01-27 Alexandre Oliva <aoliva@redhat.com>
4641
4642 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
4643 Remove USE_LIBDIR conditional.
4644 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
4645 * Makefile.in, configure: Rebuilt.
4646
46472003-01027 David Edelsohn <edelsohn@gnu.org>
4648
4649 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
4650 * Makefile.in: Regenerate.
4651
46522003-01-22 Andrew Haley <aph@redhat.com>
4653
4654 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
4655 unwind info.
4656
46572003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
4658
4659 * src/powerpc/darwin.S: Add unwind info.
4660 * src/powerpc/darwin_closure.S: Likewise.
4661
46622003-01-14 Andrew Haley <aph@redhat.com>
4663
4664 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
4665 (ffi_prep_cif_machdep): Likewise.
4666 * src/x86/unix64.S: Add unwind info.
4667
46682003-01-14 Andreas Jaeger <aj@suse.de>
4669
4670 * src/ffitest.c (main): Only use ffi_closures if those are
4671 supported.
4672
46732003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
4674
4675 * libffi/src/ffitest.c
4676 add closure testcases
4677
46782003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
4679
4680 * libffi/src/powerpc/ffi.c
4681 fix alignment bug for float (4 byte aligned iso 8 byte)
4682
46832003-01-09 Geoffrey Keating <geoffk@apple.com>
4684
4685 * src/powerpc/ffi_darwin.c: Remove RCS version string.
4686 * src/powerpc/darwin.S: Remove RCS version string.
4687
46882003-01-03 Jeff Sturm <jsturm@one-point.com>
4689
4690 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
4691 * src/ffitest.c (main): Use static storage for closure.
4692 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
4693 * src/sparc/v8.S (ffi_closure_v8): New.
4694 * src/sparc/v9.S (ffi_closure_v9): New.
4695
46962002-11-10 Ranjit Mathew <rmathew@hotmail.com>
4697
4698 * include/ffi.h.in: Added FFI_STDCALL ffi_type
4699 enumeration for X86_WIN32.
4700 * src/x86/win32.S: Added ffi_call_STDCALL function
4701 definition.
4702 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
4703 switch cases for recognising FFI_STDCALL and
4704 calling ffi_call_STDCALL if target is X86_WIN32.
4705 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
4706 stdcall versions of the "my_strlen" and "many"
4707 test functions (for X86_WIN32).
4708 Added test cases to test stdcall invocation using
4709 these functions.
4710
47112002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
4712
4713 * src/sh/sysv.S: Add DWARF2 unwind info.
4714
47152002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
4716
4717 * src/s390/sysv.S (.eh_frame section): Make section read-only.
4718
47192002-11-26 Jim Wilson <wilson@redhat.com>
4720
4721 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
4722
47232002-11-23 H.J. Lu <hjl@gnu.org>
4724
4725 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
4726 Include ../config/accross.m4.
4727 * aclocal.m4; Rebuild.
4728 * configure: Likewise.
4729
47302002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
4731
4732 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
4733
47342002-11-11 DJ Delorie <dj@redhat.com>
4735
4736 * configure.in: Look for common files in the right place.
4737
47382002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
4739
4740 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
4741 raw data as _Jv_word values, not ffi_raw.
4742 (ffi_java_ptrarray_to_raw): Likewise.
4743 (ffi_java_rvalue_to_raw): New function.
4744 (ffi_java_raw_call): Call it.
4745 (ffi_java_raw_to_rvalue): New function.
4746 (ffi_java_translate_args): Call it.
4747 * src/ffitest.c (closure_test_fn): Interpret return value
4748 as ffi_arg, not int.
4749 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
4750 FFI_TYPE_POINTER case.
4751 (ffi_closure_helper_SYSV): Likewise. Also, assume return
4752 values extended to word size.
4753
47542002-10-02 Andreas Jaeger <aj@suse.de>
4755
4756 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
4757
47582002-10-01 Bo Thorsen <bo@smetana.suse.de>
4759
4760 * include/ffi.h.in: Fix i386 win32 compilation.
4761
47622002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
4763
4764 * configure.in: Add s390x-*-linux-* target.
4765 * configure: Regenerate.
4766 * include/ffi.h.in: Define S390X for s390x targets.
4767 (FFI_CLOSURES): Define for s390/s390x.
4768 (FFI_TRAMPOLINE_SIZE): Likewise.
4769 (FFI_NATIVE_RAW_API): Likewise.
4770 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
4771 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
4772 * src/s390/ffi.c: Major rework of existing code. Add support for
4773 s390x targets. Add closure support.
4774 * src/s390/sysv.S: Likewise.
4775
47762002-09-29 Richard Earnshaw <rearnsha@arm.com>
4777
4778 * src/arm/sysv.S: Fix typo.
4779
47802002-09-28 Richard Earnshaw <rearnsha@arm.com>
4781
4782 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
4783 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
4784 (ffi_call_SYSV): Handle soft-float.
4785
47862002-09-27 Bo Thorsen <bo@suse.de>
4787
4788 * include/ffi.h.in: Fix multilib x86-64 support.
4789
47902002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4791
4792 * Makefile.am (all-multi): Fix multilib parallel build.
4793
47942002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
4795
4796 * configure.in (sh[34]*-*-linux*): Add brackets.
4797 * configure: Regenerate.
4798
47992002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
4800
4801 * Makefile.am: Add SH support.
4802 * Makefile.in: Regenerate.
4803 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
4804 * configure: Regenerate.
4805 * include/ffi.h.in: Add SH support.
4806 * src/sh/ffi.c: New file.
4807 * src/sh/sysv.S: New file.
4808 * src/types.c: Add SH support.
4809
48102002-07-16 Bo Thorsen <bo@suse.de>
4811
4812 * src/x86/ffi64.c: New file that adds x86-64 support.
4813 * src/x86/unix64.S: New file that handles argument setup for
4814 x86-64.
4815 * src/x86/sysv.S: Don't use this on x86-64.
4816 * src/x86/ffi.c: Don't use this on x86-64.
4817 Remove unused vars.
4818 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
4819 for x86-64.
4820 * src/ffitest.c (struct6): New test that tests a special case in
4821 the x86-64 ABI.
4822 (struct7): Likewise.
4823 (struct8): Likewise.
4824 (struct9): Likewise.
4825 (closure_test_fn): Silence warning about this when it's not used.
4826 (main): Add the new tests.
4827 (main): Fix a couple of wrong casts and silence some compiler warnings.
4828 * include/ffi.h.in: Add x86-64 ABI definition.
4829 * fficonfig.h.in: Regenerate.
4830 * Makefile.am: Add x86-64 support.
4831 * configure.in: Likewise.
4832 * Makefile.in: Regenerate.
4833 * configure: Likewise.
4834
48352002-06-24 Bo Thorsen <bo@suse.de>
4836
4837 * src/types.c: Merge settings for similar architectures.
4838 Add x86-64 sizes and alignments.
4839
48402002-06-23 Bo Thorsen <bo@suse.de>
4841
4842 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
4843 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
4844 * src/mips/ffi.c (ffi_prep_args): Likewise.
4845 * src/m68k/ffi.c (ffi_prep_args): Likewise.
4846
48472002-07-18 H.J. Lu (hjl@gnu.org)
4848
4849 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
4850 (libffi_la_SOURCES): Support MIPS_LINUX.
4851 (libffi_convenience_la_SOURCES): Likewise.
4852 * Makefile.in: Regenerated.
4853
4854 * configure.in (mips64*-*): Skip.
4855 (mips*-*-linux*): New.
4856 * configure: Regenerated.
4857
4858 * src/mips/ffi.c: Include <sgidefs.h>.
4859
48602002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
4861
4862 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
4863
48642002-05-27 Roger Sayle <roger@eyesopen.com>
4865
4866 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
4867
48682002-05-27 Bo Thorsen <bo@suse.de>
4869
4870 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
4871 fix formatting.
4872
48732002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
4874
4875 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
4876 beginning of function (for older apple cc).
4877
48782002-05-08 Alexandre Oliva <aoliva@redhat.com>
4879
4880 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
4881 script entry, and set LD to it when configuring multilibs.
4882 * configure: Rebuilt.
4883
48842002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
4885
4886 * configure.in (sparc64-*-netbsd*): Add target.
4887 (sparc-*-netbsdelf*): Likewise.
4888 * configure: Regenerate.
4889
48902002-04-28 David S. Miller <davem@redhat.com>
4891
4892 * configure.in, configure: Fix SPARC test in previous change.
4893
48942002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
4895
4896 * Makefile.am: Add Linux for S/390 support.
4897 * Makefile.in: Regenerate.
4898 * configure.in: Add Linux for S/390 support.
4899 * configure: Regenerate.
4900 * include/ffi.h.in: Add Linux for S/390 support.
4901 * src/s390/ffi.c: New file from libffi CVS tree.
4902 * src/s390/sysv.S: New file from libffi CVS tree.
4903
49042002-04-28 Jakub Jelinek <jakub@redhat.com>
4905
4906 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
4907 %r_disp32().
4908 * src/sparc/v8.S: Use it.
4909 * src/sparc/v9.S: Likewise.
4910 * fficonfig.h.in: Rebuilt.
4911 * configure: Rebuilt.
4912
49132002-04-08 Hans Boehm <Hans_Boehm@hp.com>
4914
4915 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
4916 correctly.
4917 * src/ia64/unix.S: Add unwind information. Fix comments.
4918 Save sp in a way that's compatible with unwind info.
4919 (ffi_call_unix): Correctly restore sp in all cases.
4920 * src/ia64/ffi.c: Add, fix comments.
4921
49222002-04-08 Jakub Jelinek <jakub@redhat.com>
4923
4924 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
4925
49262002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
4927
4928 * configure.in (alpha*-*-netbsd*): Add target.
4929 * configure: Regenerate.
4930
49312002-04-04 Jeff Sturm <jsturm@one-point.com>
4932
4933 * src/sparc/v8.S: Add unwind info.
4934 * src/sparc/v9.S: Likewise.
4935
49362002-03-30 Krister Walfridsson <cato@df.lth.se>
4937
4938 * configure.in: Enable i*86-*-netbsdelf*.
4939 * configure: Rebuilt.
4940
49412002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
4942
4943 PR other/2620
4944 * src/mips/n32.s: Delete
4945 * src/mips/o32.s: Delete
4946
49472002-03-21 Loren J. Rittle <ljrittle@acm.org>
4948
4949 * configure.in: Enable alpha*-*-freebsd*.
4950 * configure: Rebuilt.
4951
49522002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4953
4954 * Makefile.am: libfficonvenience -> libffi_convenience.
4955 * Makefile.in: Rebuilt.
4956
4957 * Makefile.am: Define ffitest_OBJECTS.
4958 * Makefile.in: Rebuilt.
4959
49602002-03-07 Andreas Tobler <toa@pop.agri.ch>
4961 David Edelsohn <edelsohn@gnu.org>
4962
4963 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
4964 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
4965 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
4966 * Makefile.in: Regenerate.
4967 * include/ffi.h.in: Add AIX and Darwin closure definitions.
4968 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
4969 (flush_icache, flush_range): New functions.
4970 (ffi_closure_helper_DARWIN): New function.
4971 * src/powerpc/aix_closure.S: New file.
4972 * src/powerpc/darwin_closure.S: New file.
4973
49742002-02-24 Jeff Sturm <jsturm@one-point.com>
4975
4976 * include/ffi.h.in: Add typedef for ffi_arg.
4977 * src/ffitest.c (main): Declare rint with ffi_arg.
4978
49792002-02-21 Andreas Tobler <toa@pop.agri.ch>
4980
4981 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
4982 number of GPRs for floating-point arguments.
4983
49842002-01-31 Anthony Green <green@redhat.com>
4985
4986 * configure: Rebuilt.
4987 * configure.in: Replace CHECK_SIZEOF and endian tests with
4988 cross-compiler friendly macros.
4989 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
4990 macros.
4991
49922002-01-18 David Edelsohn <edelsohn@gnu.org>
4993
4994 * src/powerpc/darwin.S (_ffi_call_AIX): New.
4995 * src/powerpc/aix.S (ffi_call_DARWIN): New.
4996
49972002-01-17 David Edelsohn <edelsohn@gnu.org>
4998
4999 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
5000 (TARGET_SRC_POWERPC_AIX): New.
5001 (POWERPC_AIX): New stanza.
5002 * Makefile.in: Regenerate.
5003 * configure.in: Add AIX case.
5004 * configure: Regenerate.
5005 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
5006 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
5007 size. Fix "long double" support.
5008 (ffi_call): Add FFI_AIX case.
5009 * src/powerpc/aix.S: New.
5010
50112001-10-09 John Hornkvist <john@toastedmarshmallow.com>
5012
5013 Implement Darwin PowerPC ABI.
5014 * configure.in: Handle powerpc-*-darwin*.
5015 * Makefile.am: Set source files for POWERPC_DARWIN.
5016 * configure: Rebuilt.
5017 * Makefile.in: Rebuilt.
5018 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
5019 POWERPC_DARWIN.
5020 * src/powerpc/darwin.S: New file.
5021 * src/powerpc/ffi_darwin.c: New file.
5022
50232001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
5024
5025 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
5026
50272001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5028
5029 * src/x86/sysv.S: Avoid gas-only .balign directive.
5030 Use C style comments.
5031
50322001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5033
5034 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
5035 Fixes PR bootstrap/3563.
5036
50372001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5038
5039 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
5040
50412001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5042
5043 * configure.in: Recognize sparc*-sun-* host.
5044 * configure: Regenerate.
5045
50462001-06-06 Andrew Haley <aph@redhat.com>
5047
5048 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
5049
50502001-06-03 Andrew Haley <aph@redhat.com>
5051
5052 * src/alpha/osf.S: Add unwind info.
5053 * src/powerpc/sysv.S: Add unwind info.
5054 * src/powerpc/ppc_closure.S: Likewise.
5055
50562000-05-31 Jeff Sturm <jsturm@one-point.com>
5057
5058 * configure.in: Fix AC_ARG_ENABLE usage.
5059 * configure: Rebuilt.
5060
50612001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5062
5063 * configure.in: Remove warning about beta code.
5064 * configure: Rebuilt.
5065
50662001-04-25 Hans Boehm <Hans_Boehm@hp.com>
5067
5068 * src/ia64/unix.S: Restore stack pointer when returning from
5069 ffi_closure_UNIX.
5070 * src/ia64/ffi.c: Fix typo in comment.
5071
50722001-04-18 Jim Wilson <wilson@redhat.com>
5073
5074 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
5075 to eliminate RAW DV.
5076
50772001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
5078
5079 * Makefile.am: Make a libtool convenience library.
5080 * Makefile.in: Rebuilt.
5081
50822001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
5083
5084 * configure.in: Use different syntax for subdirectory creation.
5085 * configure: Rebuilt.
5086
50872001-03-27 Jon Beniston <jon@beniston.com>
5088
5089 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
5090 * configure: Rebuilt.
5091 * Makefile.am: Added X86_WIN32 target support.
5092 * Makefile.in: Rebuilt.
5093
5094 * include/ffi.h.in: Added X86_WIN32 target support.
5095
5096 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
5097 * src/types.c: Added X86_WIN32 target support.
5098
5099 * src/x86/win32.S: New file. Based on sysv.S, but with EH
5100 stuff removed and made to work with CygWin's gas.
5101
51022001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
5103
5104 * configure.in: Make target subdirectory in build dir.
5105 * Makefile.am: Override suffix based rules to specify correct output
5106 subdirectory.
5107 * Makefile.in: Rebuilt.
5108 * configure: Rebuilt.
5109
51102001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
5111
5112 * src/powerpc/ppc_closure.S: New file.
5113 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
5114 involving long long and register pairs.
5115 (ffi_prep_closure): New function.
5116 (flush_icache): Likewise.
5117 (ffi_closure_helper_SYSV): Likewise.
5118 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
5119 (FFI_TRAMPOLINE_SIZE): Likewise.
5120 (FFI_NATIVE_RAW_API): Likewise.
5121 * Makefile.in: Rebuilt.
5122 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
5123 (TARGET_SRC_POWERPC): Likewise.
5124
51252001-03-19 Tom Tromey <tromey@redhat.com>
5126
5127 * Makefile.in: Rebuilt.
5128 * Makefile.am (ffitest_LDFLAGS): New macro.
5129
51302001-03-02 Nick Clifton <nickc@redhat.com>
5131
5132 * include/ffi.h.in: Remove RCS ident string.
5133 * include/ffi_mips.h: Remove RCS ident string.
5134 * src/debug.c: Remove RCS ident string.
5135 * src/ffitest.c: Remove RCS ident string.
5136 * src/prep_cif.c: Remove RCS ident string.
5137 * src/types.c: Remove RCS ident string.
5138 * src/alpha/ffi.c: Remove RCS ident string.
5139 * src/alpha/osf.S: Remove RCS ident string.
5140 * src/arm/ffi.c: Remove RCS ident string.
5141 * src/arm/sysv.S: Remove RCS ident string.
5142 * src/mips/ffi.c: Remove RCS ident string.
5143 * src/mips/n32.S: Remove RCS ident string.
5144 * src/mips/o32.S: Remove RCS ident string.
5145 * src/sparc/ffi.c: Remove RCS ident string.
5146 * src/sparc/v8.S: Remove RCS ident string.
5147 * src/sparc/v9.S: Remove RCS ident string.
5148 * src/x86/ffi.c: Remove RCS ident string.
5149 * src/x86/sysv.S: Remove RCS ident string.
5150
51512001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
5152
5153 * include/ffi.h.in: Change sourceware.cygnus.com references to
5154 gcc.gnu.org.
5155
51562000-12-09 Richard Henderson <rth@redhat.com>
5157
5158 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
5159 (ffi_closure_osf_inner): Index rather than increment avalue
5160 and arg_types. Give ffi_closure_osf the raw return value type.
5161 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
5162 promotion.
5163
51642000-12-07 Richard Henderson <rth@redhat.com>
5165
5166 * src/raw_api.c (ffi_translate_args): Fix typo.
5167 (ffi_prep_closure): Likewise.
5168
5169 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
5170 FFI_TRAMPOLINE_SIZE.
5171 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
5172 cif->bytes for new ffi_call_osf implementation.
5173 (ffi_prep_args): Absorb into ...
5174 (ffi_call): ... here. Do all stack allocation here and
5175 avoid a callback function.
5176 (ffi_prep_closure, ffi_closure_osf_inner): New.
5177 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
5178 (ffi_closure_osf): New.
5179
51802000-09-10 Alexandre Oliva <aoliva@redhat.com>
5181
5182 * config.guess, config.sub, install-sh: Removed.
5183 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
5184 * Makefile.in: Rebuilt.
5185
5186 * acinclude.m4: Include libtool macros from the top level.
5187 * aclocal.m4, configure: Rebuilt.
5188
51892000-08-22 Alexandre Oliva <aoliva@redhat.com>
5190
5191 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
5192 * configure: Rebuilt.
5193
51942000-05-11 Scott Bambrough <scottb@netwinder.org>
5195
5196 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
5197 memory correctly. Use conditional instructions, not branches where
5198 possible.
5199
52002000-05-04 Tom Tromey <tromey@cygnus.com>
5201
5202 * configure: Rebuilt.
5203 * configure.in: Match `arm*-*-linux-*'.
5204 From Chris Dornan <cdornan@arm.com>.
5205
52062000-04-28 Jakub Jelinek <jakub@redhat.com>
5207
5208 * Makefile.am (SUBDIRS): Define.
5209 (AM_MAKEFLAGS): Likewise.
5210 (Multilib support.): Add section.
5211 * Makefile.in: Rebuilt.
5212 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
5213 New variables. Set for gcc using -print-multi-lib. Export them
5214 to libtool.
5215 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
5216 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
5217 for -shared links.
5218 (extra_compiler_flags_value, extra_compiler_flags): Check these
5219 for extra compiler options which need to be passed down in
5220 compiler_flags.
5221
52222000-04-16 Anthony Green <green@redhat.com>
5223
5224 * configure: Rebuilt.
5225 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
5226
52272000-04-14 Jakub Jelinek <jakub@redhat.com>
5228
5229 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
5230 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
5231 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
5232 Replace all void * sizeofs with sizeof(int).
5233 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
5234 different than DOUBLE.
5235 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
5236 (ffi_prep_args_v9): New function.
5237 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
5238 (ffi_V9_return_struct): New function.
5239 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
5240 32bit code (not yet cross-arch calls).
5241 * src/sparc/v8.S: Add struct return delay nop.
5242 Handle long long.
5243 * src/sparc/v9.S: New file.
5244 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
5245 is used on sparc64 only for structures larger than 32 bytes.
5246 Pass by reference for structures is done for structure arguments
5247 larger than 16 bytes.
5248 * src/ffitest.c (main): Use 64bit rint on sparc64.
5249 Run long long tests on sparc.
5250 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
5251 sparc64.
5252 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
5253 on sparc64.
5254 * configure.in (sparc-*-linux*): New supported target.
5255 (sparc64-*-linux*): Likewise.
5256 * configure: Rebuilt.
5257 * Makefile.am: Add v9.S to SPARC files.
5258 * Makefile.in: Likewise.
5259 (LINK): Surround $(CCLD) into double quotes, so that multilib
5260 compiles work correctly.
5261
52622000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
5263
5264 * configure: Rebuilt.
5265 * configure.in: (i*86-*-solaris*): New libffi target. Patch
5266 proposed by Bryce McKinlay.
5267
52682000-03-20 Tom Tromey <tromey@cygnus.com>
5269
5270 * Makefile.in: Hand edit for java_raw_api.lo.
5271
52722000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
5273
5274 * config.guess, config.sub: Update from the gcc tree.
5275 Fix for PR libgcj/168.
5276
52772000-03-03 Tom Tromey <tromey@cygnus.com>
5278
5279 * Makefile.in: Fixed ia64 by hand.
5280
5281 * configure: Rebuilt.
5282 * configure.in (--enable-multilib): New option.
5283 (libffi_basedir): New subst.
5284 (AC_OUTPUT): Added multilib code.
5285
52862000-03-02 Tom Tromey <tromey@cygnus.com>
5287
5288 * Makefile.in: Rebuilt.
5289 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
5290 directory name.
5291
52922000-02-25 Hans Boehm <boehm@acm.org>
5293
5294 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
5295 files.
5296 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
5297 list.
5298 (ffi_prep_raw_closure): Use ffi_translate_args, not
5299 ffi_closure_translate.
5300 * src/java_raw_api.c: New file.
5301 * src/ffitest.c (closure_test_fn): New function.
5302 (main): Define `rint' as long long on IA64. Added new test when
5303 FFI_CLOSURES is defined.
5304 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
5305 (ffi_abi): Recognize IA64.
5306 (ffi_raw): Added `flt' field.
5307 Added "Java raw API" code.
5308 * configure.in: Recognize ia64.
5309 * Makefile.am (TARGET_SRC_IA64): New macro.
5310 (libffi_la_common_SOURCES): Added java_raw_api.c.
5311 (libffi_la_SOURCES): Define in IA64 case.
5312
53132000-01-04 Tom Tromey <tromey@cygnus.com>
5314
5315 * Makefile.in: Rebuilt with newer automake.
5316
53171999-12-31 Tom Tromey <tromey@cygnus.com>
5318
5319 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
5320
53211999-09-01 Tom Tromey <tromey@cygnus.com>
5322
5323 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
5324 undefs.
5325 * fficonfig.h.in: Rebuilt.
5326 * configure: Rebuilt.
5327 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
5328 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
5329 * acconfig.h: Don't #undef PACKAGE or VERSION.
5330
53311999-08-09 Anthony Green <green@cygnus.com>
5332
5333 * include/ffi.h.in: Try to work around messy header problem
5334 with PACKAGE and VERSION.
5335
5336 * configure: Rebuilt.
5337 * configure.in: Change version to 2.00-beta.
5338
5339 * fficonfig.h.in: Rebuilt.
5340 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
5341
5342 * src/x86/ffi.c (ffi_raw_call): Rename.
5343
53441999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
5345
5346 * src/x86/ffi.c (ffi_closure_SYSV): New function.
5347 (ffi_prep_incoming_args_SYSV): Ditto.
5348 (ffi_prep_closure): Ditto.
5349 (ffi_closure_raw_SYSV): Ditto.
5350 (ffi_prep_raw_closure): More ditto.
5351 (ffi_call_raw): Final ditto.
5352
5353 * include/ffi.h.in: Add definitions for closure and raw API.
5354
5355 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
5356 FFI_TYPE_UINT64.
5357
5358 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
5359
5360 * src/raw_api.c: New file.
5361
5362 * include/ffi.h.in (ffi_raw): New type.
5363 (UINT_ARG, SINT_ARG): New defines.
5364 (ffi_closure, ffi_raw_closure): New types.
5365 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
5366
5367 * configure.in: Add check for endianness and sizeof void*.
5368
5369 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
5370 instead of directly.
5371
5372 * configure: Rebuilt.
5373
5374Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
5375
5376 * configure.in: Add x86 and powerpc BeOS configurations.
5377 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
5378
53791999-05-09 Anthony Green <green@cygnus.com>
5380
5381 * configure.in: Add warning about this being beta code.
5382 Remove src/Makefile.am from the picture.
5383 * configure: Rebuilt.
5384
5385 * Makefile.am: Move logic from src/Makefile.am. Add changes
5386 to support libffi as a target library.
5387 * Makefile.in: Rebuilt.
5388
5389 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
5390 Upgraded to new autoconf, automake, libtool.
5391
5392 * README: Tweaks.
5393
5394 * LICENSE: Update copyright date.
5395
5396 * src/Makefile.am, src/Makefile.in: Removed.
5397
53981998-11-29 Anthony Green <green@cygnus.com>
5399
5400 * include/ChangeLog: Removed.
5401 * src/ChangeLog: Removed.
5402 * src/mips/ChangeLog: Removed.
5403 * src/sparc/ChangeLog: Remboved.
5404 * src/x86/ChangeLog: Removed.
5405
5406 * ChangeLog.v1: Created.