blob: 8a83fb7dccd0edae3b90150b4dc744226f93b70f [file] [log] [blame]
Anthony Green3d561062011-11-12 07:20:24 -050012011-11-12 Anthony Green <green@moxielogic.com>
Anthony Green8c019542011-09-06 14:26:32 -04002
3 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly
4 files with debug info.
5 * Makefile.in: Rebuilt.
6
Anthony Green3d561062011-11-12 07:20:24 -050072011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org>
Anthony Greend76441c2011-08-24 10:14:23 -04008
9 * README: Update list of supported OpenBSD systems.
10
Anthony Green3d561062011-11-12 07:20:24 -0500112011-11-12 Anthony Green <green@moxielogic.com>
Anthony Greenee6696f2011-08-23 12:30:29 -040012
13 * libtool-version: Update.
14 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
15 FFI_DEBUG.
16 (libffi_la_SOURCES): Remove src/debug.c
17 (EXTRA_DIST): Add src/debug.c
18 * Makefile.in: Rebuilt.
19 * README: Update for 3.0.11.
20
Anthony Green3d561062011-11-12 07:20:24 -0500212011-11-10 Richard Henderson <rth@redhat.com>
Anthony Green049d8382011-08-22 14:50:10 -040022
Anthony Green3d561062011-11-12 07:20:24 -050023 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
24 * configure, aclocal.m4: Rebuild.
25
262011-09-04 Iain Sandoe <iains@gcc.gnu.org>
27
28 PR libffi/49594
29 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
30 helper reference track the architecture pointer size.
31
322011-08-25 Andrew Haley <aph@redhat.com>
33
34 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
35 instructions.
36 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
Anthony Green049d8382011-08-22 14:50:10 -040037
Anthony Greend992ac52011-07-29 17:32:53 -0400382011-07-11 Andrew Haley <aph@redhat.com>
39
40 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
41
422011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
43
44 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
45 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
46
472011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
48
49 PR libffi/46660
50 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
51 mips-sgi-irix6*.
52 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
53
542011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
55
56 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
57 PRId8 instead of %hhu, %hhd.
58 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
59 PRIu8): Define.
60 [__sgi__] (PRId8, PRIu8): Define.
61
622011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
63
64 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
65 Define.
66 Use them to handle ELF vs. ECOFF differences.
67 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
68
Anthony Green2d3fb362011-03-30 16:54:42 -0400692011-03-30 Timothy Wall <twall@users.sf.net>
70
71 * src/powerpc/darwin.S: Fix unknown FDE encoding.
72 * src/powerpc/darwin_closure.S: ditto.
73
Anthony Green25416792011-02-25 15:09:13 -0500742011-02-25 Anthony Green <green@moxielogic.com>
75
Anthony Green74ee6ea2011-02-25 15:52:14 -050076 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
77 32-bit ABIs.
Anthony Green25416792011-02-25 15:09:13 -050078
Anthony Green8cf88782011-02-15 15:19:49 -0500792011-02-15 Anthony Green <green@moxielogic.com>
80
81 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
82 * configure: Rebuilt.
83
Anthony Greend992ac52011-07-29 17:32:53 -0400842011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
85
86 * configure: Regenerate.
87
Anthony Green1fbf9dc2011-02-13 08:06:39 -0500882011-02-13 Anthony Green <green@moxielogic.com>
89
90 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
91 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
92 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
93
94 * src/prep_cif.c (initialize_aggregate): Convert assertion into
95 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
96
97 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
98 just return FFI_BAD_ABI when things are wrong.
99 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
100 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
101 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
102 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
103 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
104
Anthony Green1833aa02011-02-11 07:11:04 -05001052011-02-11 Anthony Green <green@moxielogic.com>
106
107 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
108 just return FFI_BAD_ABI when things are wrong.
109
Anthony Green42695e72011-02-09 15:12:35 -05001102011-02-09 Stuart Shelton <srcshelton@gmail.com>
111
112 http://bugs.gentoo.org/show_bug.cgi?id=286911
113 * src/mips/ffitarget.h: Clean up error messages.
114 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
115 ffi_raw*.
116 * include/ffi.h.in: Add pragma for SGI compiler.
117
Anthony Greena6e56b92011-02-09 15:00:42 -05001182011-02-09 Anthony Green <green@moxielogic.com>
119
120 * configure.ac: Add powerpc64-*-darwin* support.
121
Anthony Green0cad4382011-02-09 06:11:46 -05001222011-02-09 Anthony Green <green@moxielogic.com>
Anthony Green11062292011-02-08 19:20:09 -0500123
Anthony Green747d6c32011-02-09 14:56:23 -0500124 * README: Mention Interix.
125
1262011-02-09 Jonathan Callen <abcd@gentoo.org>
127
128 * configure.ac: Add Interix to win32/cygwin/mingw case.
129 * configure: Ditto.
130 * src/closures.c: Treat Interix like Cygwin, instead of as a
131 generic win32.
132
1332011-02-09 Anthony Green <green@moxielogic.com>
134
Anthony Green69dbe842011-02-09 07:38:43 -0500135 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
136 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
137 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
138 (ffi_prep_closure_loc): Check for bad ABI.
139 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
140 (initialize_aggregate): Check for bad types.
Anthony Green0cad4382011-02-09 06:11:46 -0500141
Anthony Green90af15e2011-02-12 12:29:36 -05001422011-02-09 Landon Fuller <landonf@plausible.coop>
Anthony Green0cad4382011-02-09 06:11:46 -0500143
144 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
145 src/arm/trampoline.S.
146 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
147 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
148 * src/arm/ffi.c (ffi_trampoline_table)
149 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
150 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
151 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
152 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
153 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
154 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
155 separately.
156 * src/arm/sysv.S: Handle Apple iOS host.
157 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
Anthony Greenf4983182011-02-09 06:26:46 -0500158 * build-ios.sh: New file.
Anthony Green0cad4382011-02-09 06:11:46 -0500159 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
Anthony Green69dbe842011-02-09 07:38:43 -0500160 * README: Mention ARM iOS.
Anthony Green11062292011-02-08 19:20:09 -0500161
Anthony Greendc411e82011-02-08 10:49:29 -05001622011-02-08 Oren Held <orenhe@il.ibm.com>
163
164 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
165 redefinition of mallinfo on HP-UX.
166
Anthony Green404585d2011-02-08 10:44:36 -05001672011-02-08 Ginn Chen <ginn.chen@oracle.com>
168
169 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
Anthony Green049d8382011-08-22 14:50:10 -0400170 aggregate return ABI. Flush cache.
171 (ffi_prep_closure_loc): Flush cache.
Anthony Green404585d2011-02-08 10:44:36 -0500172
Anthony Green6972a4f2011-02-11 07:32:51 -05001732011-02-11 Anthony Green <green@moxielogic.com>
174
175 From Tom Honermann <tom.honermann@oracle.com>:
176 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
177 AIX. Declare .ffi_prep_args. Insert nops after branch
178 instructions so that the AIX linker can insert TOC reload
179 instructions.
180 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
181
Anthony Greend992ac52011-07-29 17:32:53 -04001822011-02-08 Ed <ed@kdtc.net>
183
184 * src/powerpc/asm.h: Fix grammar nit in comment.
185
Anthony Green89284fe2011-02-08 10:19:19 -05001862011-02-08 Uli Link <ul.mcamafia@linkitup.de>
187
188 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
189
Anthony Greend992ac52011-07-29 17:32:53 -04001902011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
191
192 PR libffi/46661
193 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
194 uintptr_t first.
195 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
196
Anthony Greened2c5182011-02-08 10:10:07 -05001972011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
198
199 * configure.ac: Fix x86 test for pc related relocs.
Anthony Green09f8f312011-02-28 15:36:07 -0500200 * configure: Rebuilt.
Anthony Greened2c5182011-02-08 10:10:07 -0500201
Anthony Green3b836242011-02-08 14:28:59 -05002022011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
203
204 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
205 Handle case when CPU variant does not have long double support.
206 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
207 and cores with soft floating point.
208
2092011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
210
211 * configure.ac: Add mips*-*-rtems* support.
212 * configure: Regenerate.
213 * src/mips/ffitarget.h: Ensure needed constants are available
214 for targets which do not have sgidefs.h.
215
Anthony Green0e584392011-02-08 07:52:40 -05002162011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
217
218 PR target/40125
219 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
220 * configure: Regenerate.
221
2222010-12-18 Iain Sandoe <iains@gcc.gnu.org>
223
224 PR libffi/29152
225 PR libffi/42378
226 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
227 update comments.
228 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
229 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
230 * src/powerpc/darwin.S: Provide Darwin64 implementation,
231 update comments.
232 * src/powerpc/ffi_darwin.c: Likewise.
233
2342010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
235
236 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
237 backslashes.
238 (libffi_cv_as_string_pseudo_op): Likewise.
239 * configure: Regenerate.
240
2412010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
242
243 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
244 (ffi_closure_VFP): Same.
245 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
246 directive.
247
2482010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
249
250 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
251 (PRIuPTR): Define.
252
2532010-11-29 Richard Henderson <rth@redhat.com>
254 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
255
256 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
257 (.eh_frame): Use FDE_ENCODING.
258 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
259
Anthony Green5b9cd522010-11-22 15:19:57 -05002602010-11-22 Jacek Caban <jacek@codeweavers.com>
261
262 * configure.ac: Check for symbol underscores on mingw-w64.
263 * configure: Rebuilt.
264 * src/x86/win64.S: Correctly access extern symbols in respect to
265 underscores.
266
Anthony Green2db72612010-11-21 10:50:56 -05002672010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
268
269 * testsuite/lib/libffi-dg.exp: Rename ...
270 * testsuite/lib/libffi.exp: ... to this.
271 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
272 * libffi/testsuite/libffi.special/special.exp: Likewise.
273
2742010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
275
276 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
277 code, new parameter, and return value. Update comments.
278 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
279 call to layout_vfp_args().
280 (ffi_call_SYSV): Update declaration.
281 (ffi_call_VFP): New declaration.
282 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
283 when ABI is FFI_VFP.
284 (ffi_closure_VFP): New declaration.
285 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
286 ffi_prep_incoming_args_SYSV().
287 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
288 case handling.
289 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
290 construction under VFP hard-float.
291 (rec_vfp_type_p): New function.
292 (vfp_type_p): Same.
293 (place_vfp_arg): Same.
294 (layout_vfp_args): Same.
295 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
296 based on __ARM_PCS_VFP.
297 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
298 fields.
299 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
300 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
301 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
302 direct call. Move function pointer load upwards.
303 (ffi_call_VFP): New function.
304 (ffi_closure_VFP): Same.
305
306 * testsuite/lib/libffi-dg.exp (check-flags): New function.
307 (dg-skip-if): New function.
308 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
309 and compiler options include -mfloat-abi=hard.
310 * testsuite/libffi.call/cls_longdouble_va.c: Same.
311
3122010-10-01 Jakub Jelinek <jakub@redhat.com>
313
314 PR libffi/45677
315 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
316 a multiple of 8.
317 * testsuite/libffi.call/many2.c: New test.
318
3192010-08-20 Mark Wielaard <mjw@redhat.com>
320
321 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
322 returns NULL.
323
3242010-08-09 Andreas Tobler <andreast@fgznet.ch>
325
326 * configure.ac: Add target powerpc64-*-freebsd*.
327 * configure: Regenerate.
328 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
329 -mlong-double-128 only to linux targets.
330 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
331 * testsuite/libffi.call/cls_longdouble.c: Likewise.
332 * testsuite/libffi.call/huge_struct.c: Likewise.
333
Anthony Green00d0b592010-08-05 14:56:53 -04003342010-08-05 Dan Witte <dwitte@mozilla.com>
335
336 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
337 debug CRT when --enable-debug is given.
338 * configure.ac: Define it.
339 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
340
Anthony Greenc1d28ba2010-08-05 08:48:16 -04003412010-08-04 Dan Witte <dwitte@mozilla.com>
342
343 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
344 platforms.
345 * src/x86/ffi.c: Remove redundant ifdef checks.
346 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
347 for X86_ANY so return value space doesn't get added twice.
348
Anthony Greenbda487e2010-08-05 09:02:41 -04003492010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
350
351 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
352
Anthony Greend14178b2010-07-23 09:14:00 -04003532010-07-22 Dan Witte <dwitte@mozilla.com>
354
355 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
356 * src/prep_cif.c: Fix ABI assertion.
357 * src/cris/ffi.c: Ditto.
358
Anthony Greeneaf444e2010-07-10 08:59:09 -04003592010-07-10 Evan Phoenix <evan@fallingsnow.net>
360
361 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
362
Anthony Green5feacad2010-08-05 08:30:04 -04003632010-07-07 Dan Horák <dan@danny.cz>
364
365 * include/ffi.h.in: Protect #define with #ifndef.
366 * src/powerpc/ffitarget.h: Ditto.
367 * src/s390/ffitarget.h: Ditto.
368 * src/sparc/ffitarget.h: Ditto.
369
Anthony Green2db72612010-11-21 10:50:56 -05003702010-07-07 Neil Roberts <neil@linux.intel.com>
371
372 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
373 16-bytes.
374
3752010-07-02 Jakub Jelinek <jakub@redhat.com>
376
377 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
378 * Makefile.in: Regenerated.
379
3802010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
381
382 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
383 output, too.
384 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
385 (libffi_cv_as_string_pseudo_op): Check for .string.
386 * configure: Regenerate.
387 * fficonfig.h.in: Regenerate.
388 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
389
Anthony Green10ea8482010-08-05 08:24:27 -04003902010-05-11 Dan Witte <dwitte@mozilla.com>
391
392 * doc/libffi.tex: Document previous change.
393
3942010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
395
396 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
397
Anthony Green63097412010-05-05 20:14:56 -04003982010-05-05 Michael Kohler <michaelkohler@live.com>
399
400 * src/dlmalloc.c (dlfree): Fix spelling.
401 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
402 * configure.ac: Ditto.
403 * configure: Rebuilt.
404
Anthony Greenf2c2a4f2010-04-13 10:19:28 -04004052010-04-13 Dan Witte <dwitte@mozilla.com>
406
407 * msvcc.sh: Build with -W3 instead of -Wall.
408 * src/powerpc/ffi_darwin.c: Remove build warnings.
409 * src/x86/ffi.c: Ditto.
410 * src/x86/ffitarget.h: Ditto.
411
Anthony Green2db72612010-11-21 10:50:56 -05004122010-04-12 Dan Witte <dwitte@mozilla.com>
413 Walter Meinl <wuno@lsvw.de>
Anthony Greenc0b69e52010-03-30 08:30:22 -0400414
Anthony Green2db72612010-11-21 10:50:56 -0500415 * configure.ac: Add OS/2 support.
416 * configure: Rebuilt.
417 * src/closures.c: Ditto.
418 * src/dlmalloc.c: Ditto.
419 * src/x86/win32.S: Ditto.
Anthony Green3f5b1372010-07-12 14:39:18 -0400420
4212010-04-07 Jakub Jelinek <jakub@redhat.com>
422
Anthony Green2db72612010-11-21 10:50:56 -0500423 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
Anthony Green3f5b1372010-07-12 14:39:18 -0400424
4252010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
426
427 * Makefile.in: Regenerate.
428 * aclocal.m4: Regenerate.
429 * include/Makefile.in: Regenerate.
430 * man/Makefile.in: Regenerate.
431 * testsuite/Makefile.in: Regenerate.
432
Anthony Green2db72612010-11-21 10:50:56 -05004332010-03-30 Dan Witte <dwitte@mozilla.com>
434
435 * msvcc.sh: Disable build warnings.
436 * README (tested): Clarify windows build procedure.
437
Anthony Green3f5b1372010-07-12 14:39:18 -04004382010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
439
440 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
441 * configure: Regenerate.
442 * fficonfig.h.in: Regenerate.
443 * libffi/src/x86/unix64.S (.eh_frame)
444 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
445
Anthony Green2db72612010-11-21 10:50:56 -05004462010-03-14 Matthias Klose <doko@ubuntu.com>
447
448 * src/x86/ffi64.c: Fix typo in comment.
449 * src/x86/ffi.c: Use /* ... */ comment style.
450
Anthony Green9dc9a292010-04-13 10:33:52 -04004512010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
452
453 * doc/libffi.texi (The Closure API): Fix typo.
454 * doc/libffi.info: Remove.
455
4562010-02-15 Matthias Klose <doko@ubuntu.com>
457
458 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
459 __ARM_ARCH_7EM__.
460
Anthony Green2db72612010-11-21 10:50:56 -05004612010-01-15 Anthony Green <green@redhat.com>
462
463 * README: Add notes on building with Microsoft Visual C++.
464
4652010-01-15 Daniel Witte <dwitte@mozilla.com>
466
467 * msvcc.sh: New file.
468
469 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
470 * src/x86/ffi.c: Tweak function declaration and remove excess
471 parens.
472 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
473 ffi_closure.
474
475 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
476 function ffi_call_win32 on X86_WIN32.
477 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
478 (ffi_call_STDCALL): Remove.
479
480 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
481 to ffi_prep_cif_machdep for x86.
482 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
483
4842010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
485
486 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
Anthony Green0e584392011-02-08 07:52:40 -0500487 Sun Studio compiler compatibility.
Anthony Green2db72612010-11-21 10:50:56 -0500488
4892010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
490
491 * doc/libffi.texi: Add closure example.
492
Anthony Green7b7a42f2010-01-12 09:14:14 -05004932010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
494
495 PR libffi/40701
496 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
497 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
498 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
499 alpha*-dec-osf*.
500 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
501 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
502 * testsuite/libffi.call/return_ll1.c: Likewise.
503 * testsuite/libffi.call/stret_medium2.c: Likewise.
504 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
505 MAP_FAILED to char *.
506
5072010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
508
509 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
510
Anthony Greenc3042af2010-01-01 08:08:02 -05005112009-12-31 Anthony Green <green@redhat.com>
512
513 * README: Update for libffi 3.0.9.
514
5152009-12-27 Matthias Klose <doko@ubuntu.com>
516
517 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
518 appropriate.
519 * configure: Rebuilt.
520
5212009-12-26 Anthony Green <green@redhat.com>
522
523 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
524 avr32*-*-*.
525 * testsuite/libffi.call/cls_double_va.c: Ditto.
526
5272009-12-26 Andreas Tobler <a.tobler@schweiz.org>
528
529 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
530 and inttypes.h.
531 * testsuite/libffi.special/unwindtest.cc: Ditto.
532
5332009-12-26 Andreas Tobler <a.tobler@schweiz.org>
534
535 * configure.ac: Add amd64-*-openbsd*.
536 * configure: Rebuilt.
537 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
538 openbsd programs with -lpthread.
539
5402009-12-26 Anthony Green <green@redhat.com>
541
542 * testsuite/libffi.call/cls_double_va.c,
543 testsuite/libffi.call/cls_longdouble.c,
544 testsuite/libffi.call/cls_longdouble_va.c,
545 testsuite/libffi.call/cls_pointer.c,
546 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
547 mips*-*-* and arm*-*-*.
548 * testsuite/libffi.call/cls_align_longdouble_split.c,
549 testsuite/libffi.call/cls_align_longdouble_split2.c,
550 testsuite/libffi.call/stret_medium2.c,
551 testsuite/libffi.call/stret_medium.c,
552 testsuite/libffi.call/stret_large.c,
553 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
554
5552009-12-31 Kay Tietz <ktietz70@googlemail.com>
556
557 * testsuite/libffi.call/ffitest.h,
558 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
559 definitions.
560
5612009-12-31 Carlo Bramini <carlo.bramix@libero.it>
562
563 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
564 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
565 * configure: Rebuilt.
566 * Makefile.in: Rebuilt.
567
5682009-12-31 Anthony Green <green@redhat.com>
569 Blake Chaffin.
570
571 * testsuite/libffi.call/huge_struct.c: New test case from Blake
572 Chaffin @ Apple.
573
Anthony Green0cfe60e2009-12-29 10:06:04 -05005742009-12-28 David Edelsohn <edelsohn@gnu.org>
575
576 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
577 local variables.
578 (aix_adjust_aggregate_sizes): New function.
579 (ffi_prep_cif_machdep): Call it.
580
5812009-12-26 Andreas Tobler <a.tobler@schweiz.org>
582
583 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
584 * configure: Regenerate.
585 * fficonfig.h.in: Likewise.
586 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
587 Solaris/x86.
588
5892009-12-26 Andreas Schwab <schwab@linux-m68k.org>
590
591 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
592 when a float arguments is passed in memory.
593 (ffi_closure_helper_SYSV): Mark general registers as used up when
594 a 64bit or soft-float long double argument is passed in memory.
595
Anthony Green9458d882009-12-26 07:02:27 -05005962009-12-25 Matthias Klose <doko@ubuntu.com>
597
598 * man/ffi_call.3: Fix #include in examples.
599 * doc/libffi.texi: Add dircategory.
600
6012009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
602
603 * include/ffi.h.in: Placed '__GNUC__' ifdef around
604 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
605 IRIX MIPSPro c99.
606 * include/ffi_common.h: Added '__sgi' define to non
607 '__attribute__((__mode__()))' integer typedefs.
Anthony Green0cfe60e2009-12-29 10:06:04 -0500608 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
Anthony Green9458d882009-12-26 07:02:27 -0500609 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
610 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
611 FFI_LONGDOUBLE support and alignment(N32 only).
612 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
613 fixed non '__attribute__((__mode__()))' integer typedefs.
614 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
615 since they are Linux/GNU Assembler specific.
616
6172009-12-25 Bradley Smith <brad@brad-smith.co.uk>
618
619 * configure.ac, Makefile.am, src/avr32/ffi.c,
620 src/avr32/ffitarget.h,
621 src/avr32/sysv.S: Add AVR32 port.
622 * configure, Makefile.in: Rebuilt.
623
Anthony Green115ab362009-12-24 00:22:00 -05006242009-12-21 Andreas Tobler <a.tobler@schweiz.org>
625
626 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
627 * configure: Regenerate.
628
6292009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
630
631 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
632
6332009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
634
635 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
636 type on HP-UX.
637
6382009-12-11 Eric Botcazou <ebotcazou@adacore.com>
639
640 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
641 double' arguments.
642
6432009-12-11 Eric Botcazou <ebotcazou@adacore.com>
644
645 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
646
6472009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
648
649 PR libffi/40700
650 * src/closures.c [X86_64 && __sun__ && __svr4__]
651 (FFI_MMAP_EXEC_WRIT): Define.
652
6532009-12-08 David Daney <ddaney@caviumnetworks.com>
654
655 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
656 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
657 * testsuite/libffi.call/stret_large.c: Same.
658 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
659 * testsuite/libffi.call/stret_large2.c: Same.
660 * testsuite/libffi.call/stret_medium2.c: Same.
661
6622009-12-07 David Edelsohn <edelsohn@gnu.org>
663
664 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
665 typo.
666
6672009-12-05 David Edelsohn <edelsohn@gnu.org>
668
669 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
670 code.
671 * src/powerpc/aix_closure.S: Same.
672
6732009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
674
675 * Makefile.in: Regenerate.
676 * configure: Regenerate.
677 * include/Makefile.in: Regenerate.
678 * man/Makefile.in: Regenerate.
679 * testsuite/Makefile.in: Regenerate.
680
6812009-12-04 David Edelsohn <edelsohn@gnu.org>
682
683 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
Anthony Green0cfe60e2009-12-29 10:06:04 -0500684 linux64_closure.S.
Anthony Green115ab362009-12-24 00:22:00 -0500685
6862009-12-04 Uros Bizjak <ubizjak@gmail.com>
687
688 PR libffi/41908
689 * src/x86/ffi64.c (classify_argument): Update from
690 gcc/config/i386/i386.c.
691 (ffi_closure_unix64_inner): Do not use the address of two consecutive
692 SSE registers directly.
693 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
694 for x86_64 linux targets.
695
6962009-12-04 David Edelsohn <edelsohn@gnu.org>
697
698 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
699 pfr for long double split between fpr13 and stack.
700
7012009-12-03 David Edelsohn <edelsohn@gnu.org>
702
703 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
704 fparg_count twice for long double.
705
7062009-12-03 David Edelsohn <edelsohn@gnu.org>
707
708 PR libffi/42243
709 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
710
7112009-12-03 Uros Bizjak <ubizjak@gmail.com>
712
713 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
714 Remove xfails for x86 linux targets.
715
7162009-12-02 David Edelsohn <edelsohn@gnu.org>
717
718 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
719 case.
720
7212009-12-01 David Edelsohn <edelsohn@gnu.org>
722
723 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
724 register usage. Call ffi_prep_args directly. Add long double
725 return value support.
726 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
727 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
728 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
729 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
730 mode.
731 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
732 into case.
733 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
734 Allocate result area between params and FPRs.
735
7362009-11-30 David Edelsohn <edelsohn@gnu.org>
737
738 PR target/35484
739 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
740 AIX64.
741 * src/powerpc/aix.S: Implement AIX64 version.
742 * src/powerpc/aix_closure.S: Implement AIX64 version.
743 (ffi_closure_ASM): Use extsb, lha and displament addresses.
744 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
745 support.
746 (ffi_prep_cif_machdep): Same.
747 (ffi_call): Same.
748 (ffi_closure_helper_DARWIN): Same.
749
7502009-11-02 Andreas Tobler <a.tobler@schweiz.org>
751
752 PR libffi/41908
753 * testsuite/libffi.call/testclosure.c: New test.
754
Anthony Greenc6dddbd2009-10-04 08:11:33 -04007552009-09-28 Kai Tietz <kai.tietz@onevision.com>
756
757 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
758 assembly version use of ___chkstk.
759
7602009-09-23 Matthias Klose <doko@ubuntu.com>
761
762 PR libffi/40242, PR libffi/41443
763 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
764 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
765 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
766 Change the conditionals to __SOFTFP__ || __ARM_EABI__
767 for -mfloat-abi=softfp to work.
768
7692009-09-17 Loren J. Rittle <ljrittle@acm.org>
770
771 PR testsuite/32843 (strikes again)
772 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
773 enable proper extension on char and short.
774
7752009-09-15 David Daney <ddaney@caviumnetworks.com>
776
777 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
778 handling for FFI_TYPE_POINTER.
779 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
780 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
781 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
782 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
783 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
784 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
785 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
786 structure and pointer returns.
787 (ffi_closure_N32): Add handling for pointer returns.
788 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
789 calc_n32_return_struct_flags): Handle soft-float.
790 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
791 (ffi_call_N32): Declare proper argument types.
792 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
793 soft-float.
794
7952009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
796
797 * configure.ac (AC_PREREQ): Bump to 2.64.
798
7992009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
800
801 * Makefile.am (install-html, install-pdf): Remove.
802 * Makefile.in: Regenerate.
803
804 * Makefile.in: Regenerate.
805 * aclocal.m4: Regenerate.
806 * configure: Regenerate.
807 * fficonfig.h.in: Regenerate.
808 * include/Makefile.in: Regenerate.
809 * man/Makefile.in: Regenerate.
810 * testsuite/Makefile.in: Regenerate.
811
Anthony Green3d561062011-11-12 07:20:24 -05008122011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
813
814 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
815 * configure: Rebuilt.
816
Anthony Greenc6dddbd2009-10-04 08:11:33 -04008172009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
818
819 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
820
8212009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
822
823 PR libffi/40807
824 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
825 return types for X86_WIN32.
826 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
827 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
828 _ffi_closure_STDCALL): Likewise.
829
830 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
831 (dlmmap, dlmunmap): Also use these functions on Cygwin.
832
8332009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
834
835 PR testsuite/40699
836 PR testsuite/40707
837 PR testsuite/40709
838 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
839 2009-06-30 commits.
840
8412009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
842
843 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
844 to "" before adding paths. (This reinstates an assignment that
845 was removed by my 2009-06-30 commit, but changes the initial
846 value from "." to "".)
847
8482009-07-01 H.J. Lu <hongjiu.lu@intel.com>
849
850 PR testsuite/40601
851 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
852 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
853 empty.
854
8552009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
856
857 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
858 to ld_library_path. Use add_path. Add just find_libgcc_s
859 to ld_library_path, not every libgcc multilib directory.
860
8612009-06-16 Wim Lewis <wiml@hhhh.org>
862
863 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
864 supposed to be callee-saved.
865 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
866 return buffer for odd-size structs.
867
8682009-06-16 Andreas Tobler <a.tobler@schweiz.org>
869
870 PR libffi/40444
871 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
872 allow_stack_execute for Darwin.
873
8742009-06-16 Andrew Haley <aph@redhat.com>
875
876 * configure.ac (TARGETDIR): Add missing blank lines.
877 * configure: Regenerate.
878
8792009-06-16 Andrew Haley <aph@redhat.com>
880
881 * testsuite/libffi.call/cls_align_sint64.c,
882 testsuite/libffi.call/cls_align_uint64.c,
883 testsuite/libffi.call/cls_longdouble_va.c,
884 testsuite/libffi.call/cls_ulonglong.c,
885 testsuite/libffi.call/return_ll1.c,
886 testsuite/libffi.call/stret_medium2.c: Fix printf format
887 specifiers.
888 * testsuite/libffi.call/ffitest.h,
889 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
890
8912009-06-15 Andrew Haley <aph@redhat.com>
892
893 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
894 * testsuite/libffi.call/err_bad_abi.c: Likewise.
Anthony Green0cfe60e2009-12-29 10:06:04 -0500895
Anthony Greenc6dddbd2009-10-04 08:11:33 -04008962009-06-12 Andrew Haley <aph@redhat.com>
897
898 * Makefile.am: Remove info_TEXINFOS.
899
9002009-06-12 Andrew Haley <aph@redhat.com>
901
902 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
903 testsuite/libffi.call/cls_align_uint64.c,
904 testsuite/libffi.call/cls_ulonglong.c,
905 testsuite/libffi.call/return_ll1.c,
906 testsuite/libffi.call/stret_medium2.c: Fix printf format
907 specifiers.
908 testsuite/libffi.special/unwindtest.cc: include stdint.h.
909
9102009-06-11 Timothy Wall <twall@users.sf.net>
911
912 * Makefile.am,
Anthony Green0cfe60e2009-12-29 10:06:04 -0500913 configure.ac,
914 include/ffi.h.in,
915 include/ffi_common.h,
916 src/closures.c,
917 src/dlmalloc.c,
918 src/x86/ffi.c,
919 src/x86/ffitarget.h,
920 src/x86/win64.S (new),
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400921 README: Added win64 support (mingw or MSVC)
Anthony Green0cfe60e2009-12-29 10:06:04 -0500922 * Makefile.in,
923 include/Makefile.in,
924 man/Makefile.in,
925 testsuite/Makefile.in,
926 configure,
927 aclocal.m4: Regenerated
928 * ltcf-c.sh: properly escape cygwin/w32 path
929 * man/ffi_call.3: Clarify size requirements for return value.
930 * src/x86/ffi64.c: Fix filename in comment.
931 * src/x86/win32.S: Remove unused extern.
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400932
Anthony Green0cfe60e2009-12-29 10:06:04 -0500933 * testsuite/libffi.call/closure_fn0.c,
934 testsuite/libffi.call/closure_fn1.c,
935 testsuite/libffi.call/closure_fn2.c,
936 testsuite/libffi.call/closure_fn3.c,
937 testsuite/libffi.call/closure_fn4.c,
938 testsuite/libffi.call/closure_fn5.c,
939 testsuite/libffi.call/closure_fn6.c,
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400940 testsuite/libffi.call/closure_stdcall.c,
941 testsuite/libffi.call/cls_12byte.c,
942 testsuite/libffi.call/cls_16byte.c,
943 testsuite/libffi.call/cls_18byte.c,
944 testsuite/libffi.call/cls_19byte.c,
945 testsuite/libffi.call/cls_1_1byte.c,
946 testsuite/libffi.call/cls_20byte.c,
947 testsuite/libffi.call/cls_20byte1.c,
948 testsuite/libffi.call/cls_24byte.c,
949 testsuite/libffi.call/cls_2byte.c,
950 testsuite/libffi.call/cls_3_1byte.c,
951 testsuite/libffi.call/cls_3byte1.c,
952 testsuite/libffi.call/cls_3byte2.c,
953 testsuite/libffi.call/cls_4_1byte.c,
954 testsuite/libffi.call/cls_4byte.c,
955 testsuite/libffi.call/cls_5_1_byte.c,
956 testsuite/libffi.call/cls_5byte.c,
957 testsuite/libffi.call/cls_64byte.c,
958 testsuite/libffi.call/cls_6_1_byte.c,
959 testsuite/libffi.call/cls_6byte.c,
960 testsuite/libffi.call/cls_7_1_byte.c,
961 testsuite/libffi.call/cls_7byte.c,
962 testsuite/libffi.call/cls_8byte.c,
963 testsuite/libffi.call/cls_9byte1.c,
964 testsuite/libffi.call/cls_9byte2.c,
965 testsuite/libffi.call/cls_align_double.c,
966 testsuite/libffi.call/cls_align_float.c,
967 testsuite/libffi.call/cls_align_longdouble.c,
968 testsuite/libffi.call/cls_align_longdouble_split.c,
969 testsuite/libffi.call/cls_align_longdouble_split2.c,
970 testsuite/libffi.call/cls_align_pointer.c,
971 testsuite/libffi.call/cls_align_sint16.c,
972 testsuite/libffi.call/cls_align_sint32.c,
973 testsuite/libffi.call/cls_align_sint64.c,
974 testsuite/libffi.call/cls_align_uint16.c,
975 testsuite/libffi.call/cls_align_uint32.c,
976 testsuite/libffi.call/cls_align_uint64.c,
977 testsuite/libffi.call/cls_dbls_struct.c,
978 testsuite/libffi.call/cls_double.c,
979 testsuite/libffi.call/cls_double_va.c,
980 testsuite/libffi.call/cls_float.c,
981 testsuite/libffi.call/cls_longdouble.c,
982 testsuite/libffi.call/cls_longdouble_va.c,
983 testsuite/libffi.call/cls_multi_schar.c,
984 testsuite/libffi.call/cls_multi_sshort.c,
985 testsuite/libffi.call/cls_multi_sshortchar.c,
986 testsuite/libffi.call/cls_multi_uchar.c,
987 testsuite/libffi.call/cls_multi_ushort.c,
988 testsuite/libffi.call/cls_multi_ushortchar.c,
989 testsuite/libffi.call/cls_pointer.c,
990 testsuite/libffi.call/cls_pointer_stack.c,
991 testsuite/libffi.call/cls_schar.c,
992 testsuite/libffi.call/cls_sint.c,
993 testsuite/libffi.call/cls_sshort.c,
994 testsuite/libffi.call/cls_uchar.c,
995 testsuite/libffi.call/cls_uint.c,
996 testsuite/libffi.call/cls_ulonglong.c,
997 testsuite/libffi.call/cls_ushort.c,
998 testsuite/libffi.call/err_bad_abi.c,
999 testsuite/libffi.call/err_bad_typedef.c,
1000 testsuite/libffi.call/float2.c,
1001 testsuite/libffi.call/huge_struct.c,
1002 testsuite/libffi.call/nested_struct.c,
1003 testsuite/libffi.call/nested_struct1.c,
1004 testsuite/libffi.call/nested_struct10.c,
1005 testsuite/libffi.call/nested_struct2.c,
1006 testsuite/libffi.call/nested_struct3.c,
1007 testsuite/libffi.call/nested_struct4.c,
1008 testsuite/libffi.call/nested_struct5.c,
1009 testsuite/libffi.call/nested_struct6.c,
1010 testsuite/libffi.call/nested_struct7.c,
1011 testsuite/libffi.call/nested_struct8.c,
1012 testsuite/libffi.call/nested_struct9.c,
1013 testsuite/libffi.call/problem1.c,
1014 testsuite/libffi.call/return_ldl.c,
1015 testsuite/libffi.call/return_ll1.c,
1016 testsuite/libffi.call/stret_large.c,
1017 testsuite/libffi.call/stret_large2.c,
1018 testsuite/libffi.call/stret_medium.c,
1019 testsuite/libffi.call/stret_medium2.c,
Anthony Green0cfe60e2009-12-29 10:06:04 -05001020 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
1021 of checking for MMAP. Use intptr_t instead of long casts.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001022
10232009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
1024
1025 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
1026 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
1027 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
1028
10292009-06-09 Andrew Haley <aph@redhat.com>
1030
1031 * src/x86/freebsd.S: Add missing file.
1032
10332009-06-08 Andrew Haley <aph@redhat.com>
1034
1035 Import from libffi 3.0.8:
1036
1037 * doc/libffi.texi: New file.
1038 * doc/libffi.info: Likewise.
1039 * doc/stamp-vti: Likewise.
1040 * man/Makefile.am: New file.
1041 * man/ffi_call.3: New file.
1042
1043 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
1044 src/dlmalloc.c.
1045 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
1046
1047 * configure.ac: Bump version to 3.0.8.
1048 parisc*-*-linux*: Add.
1049 i386-*-freebsd* | i386-*-openbsd*: Add.
1050 powerpc-*-beos*: Add.
1051 AM_CONDITIONAL X86_FREEBSD: Add.
1052 AC_CONFIG_FILES: Add man/Makefile.
1053
1054 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
1055
10562009-06-08 Andrew Haley <aph@redhat.com>
1057
1058 * README: Import from libffi 3.0.8.
1059
10602009-06-08 Andrew Haley <aph@redhat.com>
1061
1062 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
1063 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
1064 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
1065 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
1066
1067 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
1068 * testsuite/libffi.call/stret_medium.c: Likewise.
1069 * testsuite/libffi.call/stret_large2.c: Likewise.
1070 * testsuite/libffi.call/stret_large.c: Likewise.
1071
10722008-12-26 Timothy Wall <twall@users.sf.net>
1073
Anthony Green0cfe60e2009-12-29 10:06:04 -05001074 * testsuite/libffi.call/cls_longdouble.c,
1075 testsuite/libffi.call/cls_longdouble_va.c,
1076 testsuite/libffi.call/cls_align_longdouble.c,
1077 testsuite/libffi.call/cls_align_longdouble_split.c,
1078 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
1079 failures on x86_64 cygwin/mingw.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001080
10812008-12-22 Timothy Wall <twall@users.sf.net>
1082
Anthony Green0cfe60e2009-12-29 10:06:04 -05001083 * testsuite/libffi.call/closure_fn0.c,
1084 testsuite/libffi.call/closure_fn1.c,
1085 testsuite/libffi.call/closure_fn2.c,
1086 testsuite/libffi.call/closure_fn3.c,
1087 testsuite/libffi.call/closure_fn4.c,
1088 testsuite/libffi.call/closure_fn5.c,
1089 testsuite/libffi.call/closure_fn6.c,
1090 testsuite/libffi.call/closure_loc_fn0.c,
1091 testsuite/libffi.call/closure_stdcall.c,
1092 testsuite/libffi.call/cls_align_pointer.c,
1093 testsuite/libffi.call/cls_pointer.c,
1094 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
1095 pointer to integer (intptr_t).
1096 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001097
10982008-07-24 Anthony Green <green@redhat.com>
1099
Anthony Green0cfe60e2009-12-29 10:06:04 -05001100 * testsuite/libffi.call/cls_dbls_struct.c,
1101 testsuite/libffi.call/cls_double_va.c,
1102 testsuite/libffi.call/cls_longdouble.c,
1103 testsuite/libffi.call/cls_longdouble_va.c,
1104 testsuite/libffi.call/cls_pointer.c,
1105 testsuite/libffi.call/cls_pointer_stack.c,
1106 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
1107 compiler warnings.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001108
11092008-03-04 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001110 Blake Chaffin
1111 hos@tamanegi.org
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001112
Anthony Green0cfe60e2009-12-29 10:06:04 -05001113 * testsuite/libffi.call/cls_align_longdouble_split2.c
1114 testsuite/libffi.call/cls_align_longdouble_split.c
1115 testsuite/libffi.call/cls_dbls_struct.c
1116 testsuite/libffi.call/cls_double_va.c
1117 testsuite/libffi.call/cls_longdouble.c
1118 testsuite/libffi.call/cls_longdouble_va.c
1119 testsuite/libffi.call/cls_pointer.c
1120 testsuite/libffi.call/cls_pointer_stack.c
1121 testsuite/libffi.call/err_bad_abi.c
1122 testsuite/libffi.call/err_bad_typedef.c
1123 testsuite/libffi.call/stret_large2.c
1124 testsuite/libffi.call/stret_large.c
1125 testsuite/libffi.call/stret_medium2.c
1126 testsuite/libffi.call/stret_medium.c: New tests from Apple.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001127
11282009-06-05 Andrew Haley <aph@redhat.com>
1129
1130 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
1131 libffi.
1132
11332009-06-04 Andrew Haley <aph@redhat.com>
1134
1135 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
1136 stdcall changes.
1137
11382008-02-26 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001139 Thomas Heller <theller@ctypes.org>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001140
Anthony Green0cfe60e2009-12-29 10:06:04 -05001141 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
1142 comment.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001143
11442008-02-03 Timothy Wall <twall@users.sf.net>
1145
Anthony Green0cfe60e2009-12-29 10:06:04 -05001146 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
1147 offset based on code pointer, not data pointer.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001148
11492008-01-31 Timothy Wall <twall@users.sf.net>
1150
Anthony Green0cfe60e2009-12-29 10:06:04 -05001151 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
1152 closures.
1153 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
1154 closures.
1155 * src/x86/win32.S: Add assembly for stdcall closure.
1156 * src/x86/ffi.c: Initialize stdcall closure trampoline.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001157
11582009-06-04 Andrew Haley <aph@redhat.com>
1159
1160 * include/ffi.h.in: Change void (*)() to void (*)(void).
1161 * src/x86/ffi.c: Likewise.
1162
11632009-06-04 Andrew Haley <aph@redhat.com>
1164
1165 * src/powerpc/ppc_closure.S: Insert licence header.
1166 * src/powerpc/linux64_closure.S: Likewise.
1167 * src/m68k/sysv.S: Likewise.
1168
1169 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
1170 * src/powerpc/ffi.c: Likewise.
1171 * src/powerpc/ffi_darwin.c: Likewise.
1172 * src/m32r/ffi.c: Likewise.
1173 * src/sh64/ffi.c: Likewise.
1174 * src/x86/ffi64.c: Likewise.
1175 * src/alpha/ffi.c: Likewise.
1176 * src/alpha/osf.S: Likewise.
1177 * src/frv/ffi.c: Likewise.
1178 * src/s390/ffi.c: Likewise.
1179 * src/pa/ffi.c: Likewise.
1180 * src/pa/hpux32.S: Likewise.
1181 * src/ia64/unix.S: Likewise.
1182 * src/ia64/ffi.c: Likewise.
1183 * src/sparc/ffi.c: Likewise.
1184 * src/mips/ffi.c: Likewise.
1185 * src/sh/ffi.c: Likewise.
1186
11872008-02-15 David Daney <ddaney@avtrex.com>
1188
Anthony Green0cfe60e2009-12-29 10:06:04 -05001189 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
1190 Define (conditionally), and use it to include cachectl.h.
1191 (ffi_prep_closure_loc): Fix cache flushing.
1192 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001193
11942009-06-04 Andrew Haley <aph@redhat.com>
1195
1196 include/ffi.h.in,
1197 src/arm/ffitarget.h,
1198 src/arm/ffi.c,
1199 src/arm/sysv.S,
1200 src/powerpc/ffitarget.h,
1201 src/closures.c,
1202 src/sh64/ffitarget.h,
1203 src/sh64/ffi.c,
1204 src/sh64/sysv.S,
1205 src/types.c,
1206 src/x86/ffi64.c,
1207 src/x86/ffitarget.h,
1208 src/x86/win32.S,
1209 src/x86/darwin.S,
1210 src/x86/ffi.c,
1211 src/x86/sysv.S,
1212 src/x86/unix64.S,
1213 src/alpha/ffitarget.h,
1214 src/alpha/ffi.c,
1215 src/alpha/osf.S,
1216 src/m68k/ffitarget.h,
1217 src/frv/ffitarget.h,
1218 src/frv/ffi.c,
1219 src/s390/ffitarget.h,
1220 src/s390/sysv.S,
1221 src/cris/ffitarget.h,
1222 src/pa/linux.S,
1223 src/pa/ffitarget.h,
1224 src/pa/ffi.c,
1225 src/raw_api.c,
1226 src/ia64/ffitarget.h,
1227 src/ia64/unix.S,
1228 src/ia64/ffi.c,
1229 src/ia64/ia64_flags.h,
1230 src/java_raw_api.c,
1231 src/debug.c,
1232 src/sparc/v9.S,
1233 src/sparc/ffitarget.h,
1234 src/sparc/ffi.c,
1235 src/sparc/v8.S,
1236 src/mips/ffitarget.h,
1237 src/mips/n32.S,
1238 src/mips/o32.S,
1239 src/mips/ffi.c,
1240 src/prep_cif.c,
1241 src/sh/ffitarget.h,
1242 src/sh/ffi.c,
1243 src/sh/sysv.S: Update license text.
1244
12452009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
1246
1247 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
1248 (.eh_frame): Add FDE for it.
1249
12502009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
1251
1252 * configure.ac: Also check if assembler supports pc-relative
1253 relocs on X86_WIN32 targets.
1254 * configure: Regenerate.
1255 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
1256 (_ffi_call_SYSV): Add missing function type symbol .def and
1257 add EH markup labels.
1258 (_ffi_call_STDCALL): Likewise.
1259 (_ffi_closure_SYSV): Likewise.
1260 (_ffi_closure_raw_SYSV): Likewise.
1261 (.eh_frame): Add hand-crafted EH data.
1262
12632009-04-09 Jakub Jelinek <jakub@redhat.com>
1264
1265 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
1266 version 3 of the GNU General Public License and to point readers
1267 at the COPYING3 file and the FSF's license web page.
1268 * testsuite/libffi.call/call.exp: Likewise.
1269 * testsuite/libffi.special/special.exp: Likewise.
1270
12712009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1272
1273 * configure: Regenerate.
1274
12752008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1276
1277 PR libffi/26048
1278 * configure.ac (HAVE_AS_X86_PCREL): New test.
1279 * configure: Regenerate.
1280 * fficonfig.h.in: Regenerate.
1281 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
1282 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
1283 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
1284 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1285 * src/x86/unix64.S (.Lstore_table): Move to .text section.
1286 (.Lload_table): Likewise.
1287 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1288
12892008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1290
1291 * configure: Regenerate.
1292
12932008-11-21 Eric Botcazou <ebotcazou@adacore.com>
1294
1295 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
1296 signed/unsigned int8/16 return values.
1297 * src/sparc/v8.S (ffi_call_v8): Likewise.
1298 (ffi_closure_v8): Likewise.
1299
13002008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001301 Steve Ellcey <sje@cup.hp.com>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001302
1303 * configure: Regenerate for new libtool.
1304 * Makefile.in: Ditto.
1305 * include/Makefile.in: Ditto.
1306 * aclocal.m4: Ditto.
1307
13082008-08-25 Andreas Tobler <a.tobler@schweiz.org>
1309
1310 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
1311 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
1312 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
1313 Adjust copyright notice.
1314 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
1315 register or two register to use for FFI_SYSV structs.
1316 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
1317 (ffi_closure_helper_SYSV): Fix the return type for
1318 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
1319 Adjust copyright notice.
1320
13212008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
1322
1323 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
1324 int.
1325
13262008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1327
1328 * configure: Regenerate.
1329 * include/Makefile.in: Regenerate.
1330 * testsuite/Makefile.in: Regenerate.
1331
13322008-06-07 Joseph Myers <joseph@codesourcery.com>
1333
1334 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
1335 powerpc-*-beos*): Remove.
1336 * configure: Regenerate.
1337
13382008-05-09 Julian Brown <julian@codesourcery.com>
1339
1340 * Makefile.am (LTLDFLAGS): New.
1341 (libffi_la_LDFLAGS): Use above.
1342 * Makefile.in: Regenerate.
1343
13442008-04-18 Paolo Bonzini <bonzini@gnu.org>
1345
1346 PR bootstrap/35457
1347 * aclocal.m4: Regenerate.
1348 * configure: Regenerate.
1349
13502008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
1351
1352 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
1353 * src/sh64/sysv.S: Likewise.
1354
13552008-03-26 Daniel Jacobowitz <dan@debian.org>
1356
1357 * src/arm/sysv.S: Fix ARM comment marker.
1358
13592008-03-26 Jakub Jelinek <jakub@redhat.com>
1360
1361 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
1362 * src/s390/sysv.S: Likewise.
1363 * src/powerpc/ppc_closure.S: Likewise.
1364 * src/powerpc/sysv.S: Likewise.
1365 * src/x86/unix64.S: Likewise.
1366 * src/x86/sysv.S: Likewise.
1367 * src/sparc/v8.S: Likewise.
1368 * src/sparc/v9.S: Likewise.
1369 * src/m68k/sysv.S: Likewise.
1370 * src/arm/sysv.S: Likewise.
1371
13722008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1373
1374 * aclocal.m4: Regenerate.
1375 * configure: Likewise.
1376 * Makefile.in: Likewise.
1377 * include/Makefile.in: Likewise.
1378 * testsuite/Makefile.in: Likewise.
1379
13802008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
1381 Andreas Tobler <a.tobler@schweiz.org>
1382
1383 * configure.ac: Add amd64-*-freebsd* target.
1384 * configure: Regenerate.
1385
13862008-01-30 H.J. Lu <hongjiu.lu@intel.com>
1387
1388 PR libffi/34612
1389 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
1390 returning struct.
1391
1392 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
1393 tests.
1394
13952008-01-24 David Edelsohn <edelsohn@gnu.org>
1396
1397 * configure: Regenerate.
1398
13992008-01-06 Andreas Tobler <a.tobler@schweiz.org>
1400
1401 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
1402
14032008-01-05 Andreas Tobler <a.tobler@schweiz.org>
1404
1405 PR testsuite/32843
1406 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
1407 signed/unsigned int8/16 for X86_DARWIN.
1408 Updated copyright info.
1409 Handle one and two byte structs with special cif->flags.
1410 * src/x86/ffitarget.h: Add special types for one and two byte structs.
1411 Updated copyright info.
1412 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
1413 sysv.S
1414 Remove code to pop args from the stack after call.
1415 Special-case signed/unsigned for int8/16, one and two byte structs.
1416 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1417 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1418 FFI_TYPE_SINT32.
1419 Updated copyright info.
1420
14212007-12-08 David Daney <ddaney@avtrex.com>
1422
Anthony Green0cfe60e2009-12-29 10:06:04 -05001423 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001424 SUBU, add with ADDU and use smaller code sequences.
1425
14262007-12-07 David Daney <ddaney@avtrex.com>
1427
1428 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
1429 type.
1430
14312007-12-06 David Daney <ddaney@avtrex.com>
1432
1433 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
1434 defined.
1435 (ffi_java_raw): New typedef.
1436 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
1437 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
1438 ffi_java_raw.
1439 (ffi_java_raw_closure) : Same.
1440 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
1441 parameter types.
1442 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
1443 FFI_SIZEOF_JAVA_RAW.
1444 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
1445 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
1446 sizeof(ffi_java_raw) for alignment calculations.
1447 (ffi_java_ptrarray_to_raw): Same.
1448 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
Anthony Green0cfe60e2009-12-29 10:06:04 -05001449 if FFI_SIZEOF_JAVA_RAW == 4.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001450 (ffi_java_raw_to_rvalue): Same.
1451 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
1452 (ffi_java_translate_args): Same.
1453 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
1454 parameter types.
1455 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
1456
14572007-12-06 David Daney <ddaney@avtrex.com>
1458
Anthony Green0cfe60e2009-12-29 10:06:04 -05001459 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001460 pointer values.
1461
14622007-12-01 Andreas Tobler <a.tobler@schweiz.org>
1463
1464 PR libffi/31937
1465 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
1466 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
1467 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
1468 set the NUM_FPR_ARG_REGISTERS according to.
1469 Add support for potential soft-float support under hard-float
1470 architecture.
1471 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
1472 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
1473 to the FFI_LINUX_SOFT_FLOAT ABI.
1474 (ffi_prep_cif_machdep): Likewise.
1475 (ffi_closure_helper_SYSV): Likewise.
1476 * src/powerpc/ppc_closure.S: Make sure not to store float/double
1477 on archs where __NO_FPRS__ is true.
1478 Add FFI_TYPE_UINT128 support.
1479 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
1480 Adjust copyright notice.
1481
14822007-11-25 Andreas Tobler <a.tobler@schweiz.org>
1483
1484 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
1485 * include/ffi_common.h: ... here.
1486 Update copyright.
1487
14882007-11-17 Andreas Tobler <a.tobler@schweiz.org>
1489
1490 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
1491 * src/powerpc/linux64.S: Likewise.
1492 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
1493 * testsuite/libffi.call/return_ldl.c: New test.
1494
14952007-09-04 <aph@redhat.com>
1496
1497 * src/arm/sysv.S (UNWIND): New.
1498 (Whole file): Conditionally compile unwinder directives.
1499 * src/arm/sysv.S: Add unwinder directives.
1500
1501 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
1502 Only treat r0 as a struct address if we're actually returning a
1503 struct by address.
1504 Only copy the bytes that are actually within a struct.
1505 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
1506 is returned in r0, not passed by address.
1507 (ffi_call): Allocate a word-sized temporary for the case where
1508 a composite is returned in r0.
1509 (ffi_prep_incoming_args_SYSV): Align as necessary.
1510
15112007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
1512
Anthony Green0cfe60e2009-12-29 10:06:04 -05001513 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001514 directly using the sys_cacheflush syscall.
1515
15162007-07-27 Andrew Haley <aph@redhat.com>
1517
1518 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
1519
15202007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
1521
1522 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
1523 * configure.ac: Likewise.
1524 * Makefile.in: Regenerate.
1525 * include/Makefile.in: Likewise.
1526 * testsuite/Makefile.in: Likewise.
1527 * configure: Likewise.
1528
15292007-08-24 David Daney <ddaney@avtrex.com>
1530
1531 * testsuite/libffi.call/return_sl.c: New test.
1532
15332007-08-10 David Daney <ddaney@avtrex.com>
1534
1535 * testsuite/libffi.call/cls_multi_ushort.c,
1536 testsuite/libffi.call/cls_align_uint16.c,
1537 testsuite/libffi.call/nested_struct1.c,
1538 testsuite/libffi.call/nested_struct3.c,
1539 testsuite/libffi.call/cls_7_1_byte.c,
1540 testsuite/libffi.call/nested_struct5.c,
1541 testsuite/libffi.call/cls_double.c,
1542 testsuite/libffi.call/nested_struct7.c,
1543 testsuite/libffi.call/cls_sint.c,
1544 testsuite/libffi.call/nested_struct9.c,
1545 testsuite/libffi.call/cls_20byte1.c,
1546 testsuite/libffi.call/cls_multi_sshortchar.c,
1547 testsuite/libffi.call/cls_align_sint64.c,
1548 testsuite/libffi.call/cls_3byte2.c,
1549 testsuite/libffi.call/cls_multi_schar.c,
1550 testsuite/libffi.call/cls_multi_uchar.c,
1551 testsuite/libffi.call/cls_19byte.c,
1552 testsuite/libffi.call/cls_9byte1.c,
1553 testsuite/libffi.call/cls_align_float.c,
1554 testsuite/libffi.call/closure_fn1.c,
1555 testsuite/libffi.call/problem1.c,
1556 testsuite/libffi.call/closure_fn3.c,
1557 testsuite/libffi.call/cls_sshort.c,
1558 testsuite/libffi.call/closure_fn5.c,
1559 testsuite/libffi.call/cls_align_double.c,
1560 testsuite/libffi.call/nested_struct.c,
1561 testsuite/libffi.call/cls_2byte.c,
1562 testsuite/libffi.call/nested_struct10.c,
1563 testsuite/libffi.call/cls_4byte.c,
1564 testsuite/libffi.call/cls_6byte.c,
1565 testsuite/libffi.call/cls_8byte.c,
1566 testsuite/libffi.call/cls_multi_sshort.c,
1567 testsuite/libffi.call/cls_align_sint16.c,
1568 testsuite/libffi.call/cls_align_uint32.c,
1569 testsuite/libffi.call/cls_20byte.c,
1570 testsuite/libffi.call/cls_float.c,
1571 testsuite/libffi.call/nested_struct2.c,
1572 testsuite/libffi.call/cls_5_1_byte.c,
1573 testsuite/libffi.call/nested_struct4.c,
1574 testsuite/libffi.call/cls_24byte.c,
1575 testsuite/libffi.call/nested_struct6.c,
1576 testsuite/libffi.call/cls_64byte.c,
1577 testsuite/libffi.call/nested_struct8.c,
1578 testsuite/libffi.call/cls_uint.c,
1579 testsuite/libffi.call/cls_multi_ushortchar.c,
1580 testsuite/libffi.call/cls_schar.c,
1581 testsuite/libffi.call/cls_uchar.c,
1582 testsuite/libffi.call/cls_align_uint64.c,
1583 testsuite/libffi.call/cls_ulonglong.c,
1584 testsuite/libffi.call/cls_align_longdouble.c,
1585 testsuite/libffi.call/cls_1_1byte.c,
1586 testsuite/libffi.call/cls_12byte.c,
1587 testsuite/libffi.call/cls_3_1byte.c,
1588 testsuite/libffi.call/cls_3byte1.c,
1589 testsuite/libffi.call/cls_4_1byte.c,
1590 testsuite/libffi.call/cls_6_1_byte.c,
1591 testsuite/libffi.call/cls_16byte.c,
1592 testsuite/libffi.call/cls_18byte.c,
1593 testsuite/libffi.call/closure_fn0.c,
1594 testsuite/libffi.call/cls_9byte2.c,
1595 testsuite/libffi.call/closure_fn2.c,
1596 testsuite/libffi.call/closure_fn4.c,
1597 testsuite/libffi.call/cls_ushort.c,
1598 testsuite/libffi.call/closure_fn6.c,
1599 testsuite/libffi.call/cls_5byte.c,
1600 testsuite/libffi.call/cls_align_pointer.c,
1601 testsuite/libffi.call/cls_7byte.c,
1602 testsuite/libffi.call/cls_align_sint32.c,
1603 testsuite/libffi.special/unwindtest_ffi_call.cc,
1604 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
1605
16062007-08-10 David Daney <ddaney@avtrex.com>
1607
1608 PR libffi/28313
1609 * configure.ac: Don't treat mips64 as a special case.
1610 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
1611 * configure: Regenerate
1612 * Makefile.in: Ditto.
1613 * fficonfig.h.in: Ditto.
1614 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
1615 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
1616 (FFI_DEFAULT_ABI): Set for n64 case.
1617 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
1618 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
1619 (ffi_closure_N32): New function.
1620 (.eh_frame): New section
1621 * src/mips/o32.S: Clean up comments.
1622 (ffi_closure_O32): Pass ffi_closure parameter in $12.
1623 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
1624 _MIPS_SIM == _ABIN32 throughout.
1625 (FFI_MIPS_STOP_HERE): New, use in place of
1626 ffi_stop_here.
1627 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
1628 to support n32/n64 ABIs.
1629 (calc_n32_struct_flags): Rewrite.
1630 (calc_n32_return_struct_flags): Remove unused variable. Reverse
1631 position of flag bits.
1632 (ffi_prep_cif_machdep): Rewrite n32 portion.
1633 (ffi_call): Enable for n64. Add special handling for small structure
1634 return values.
1635 (ffi_prep_closure_loc): Add n32 and n64 support.
1636 (ffi_closure_mips_inner_O32): Add cast to silence warning.
1637 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
1638
16392007-08-08 David Daney <ddaney@avtrex.com>
1640
1641 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
1642 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
1643 specifiers.
1644 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
1645 * testsuite/libffi.call/cls_sint.c (main): Ditto.
1646 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
1647 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
1648 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
1649 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
1650 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
1651 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
1652 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
1653 * testsuite/libffi.call/return_fl3.c (main): Ditto.
1654 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
1655 * testsuite/libffi.call/nested_struct.c (main): Ditto.
1656 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
1657 * testsuite/libffi.call/return_ll1.c (main): Ditto.
1658 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
1659 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
1660 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
1661 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
1662 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
1663 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
1664 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
1665 * testsuite/libffi.call/cls_uint.c (main): Ditto.
1666 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
1667 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
1668 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
1669 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
1670 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
1671 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
1672 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
1673 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
1674 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
1675
16762007-08-07 Andrew Haley <aph@redhat.com>
1677
1678 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
1679 checkin.
1680
16812007-08-06 Andrew Haley <aph@redhat.com>
1682
1683 PR testsuite/32843
1684 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1685 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1686 FFI_TYPE_SINT32.
1687
16882007-08-02 David Daney <ddaney@avtrex.com>
1689
1690 * testsuite/libffi.call/return_ul.c (main): Define return type as
1691 ffi_arg. Use proper printf conversion specifier.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001692
Anthony Greenc6dddbd2009-10-04 08:11:33 -040016932007-07-30 Andrew Haley <aph@redhat.com>
1694
1695 PR testsuite/32843
1696 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
1697 signed/unsigned int8/16.
1698 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
1699 Use a jump table.
1700 Remove code to pop args from the stack after call.
1701 Special-case signed/unsigned int8/16.
1702 * testsuite/libffi.call/return_sc.c (main): Revert.
1703
17042007-07-26 Richard Guenther <rguenther@suse.de>
1705
1706 PR testsuite/32843
1707 * testsuite/libffi.call/return_sc.c (main): Verify call
1708 result as signed char, not ffi_arg.
1709
17102007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1711
1712 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
1713 * configure: Regenerate.
1714
17152007-07-11 David Daney <ddaney@avtrex.com>
1716
1717 * src/mips/ffi.c: Don't include sys/cachectl.h.
1718 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
1719 cacheflush().
1720
17212007-05-18 Aurelien Jarno <aurelien@aurel32.net>
1722
1723 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
1724 from (ffi_prep_closure): ... this.
1725 (FFI_INIT_TRAMPOLINE): Adjust.
1726
17272005-12-31 Phil Blundell <pb@reciva.com>
1728
Anthony Green0cfe60e2009-12-29 10:06:04 -05001729 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
1730 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001731 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
1732 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1733 (FFI_CLOSURES): Enable closure support.
1734
17352007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
1736
Anthony Green0cfe60e2009-12-29 10:06:04 -05001737 * testsuite/libffi.call/cls_multi_ushort.c,
1738 testsuite/libffi.call/cls_align_uint16.c,
1739 testsuite/libffi.call/nested_struct1.c,
1740 testsuite/libffi.call/nested_struct3.c,
1741 testsuite/libffi.call/cls_7_1_byte.c,
1742 testsuite/libffi.call/cls_double.c,
1743 testsuite/libffi.call/nested_struct5.c,
1744 testsuite/libffi.call/nested_struct7.c,
1745 testsuite/libffi.call/cls_sint.c,
1746 testsuite/libffi.call/nested_struct9.c,
1747 testsuite/libffi.call/cls_20byte1.c,
1748 testsuite/libffi.call/cls_multi_sshortchar.c,
1749 testsuite/libffi.call/cls_align_sint64.c,
1750 testsuite/libffi.call/cls_3byte2.c,
1751 testsuite/libffi.call/cls_multi_schar.c,
1752 testsuite/libffi.call/cls_multi_uchar.c,
1753 testsuite/libffi.call/cls_19byte.c,
1754 testsuite/libffi.call/cls_9byte1.c,
1755 testsuite/libffi.call/cls_align_float.c,
1756 testsuite/libffi.call/closure_fn1.c,
1757 testsuite/libffi.call/problem1.c,
1758 testsuite/libffi.call/closure_fn3.c,
1759 testsuite/libffi.call/cls_sshort.c,
1760 testsuite/libffi.call/closure_fn5.c,
1761 testsuite/libffi.call/cls_align_double.c,
1762 testsuite/libffi.call/cls_2byte.c,
1763 testsuite/libffi.call/nested_struct.c,
1764 testsuite/libffi.call/nested_struct10.c,
1765 testsuite/libffi.call/cls_4byte.c,
1766 testsuite/libffi.call/cls_6byte.c,
1767 testsuite/libffi.call/cls_8byte.c,
1768 testsuite/libffi.call/cls_multi_sshort.c,
1769 testsuite/libffi.call/cls_align_uint32.c,
1770 testsuite/libffi.call/cls_align_sint16.c,
1771 testsuite/libffi.call/cls_float.c,
1772 testsuite/libffi.call/cls_20byte.c,
1773 testsuite/libffi.call/cls_5_1_byte.c,
1774 testsuite/libffi.call/nested_struct2.c,
1775 testsuite/libffi.call/cls_24byte.c,
1776 testsuite/libffi.call/nested_struct4.c,
1777 testsuite/libffi.call/nested_struct6.c,
1778 testsuite/libffi.call/cls_64byte.c,
1779 testsuite/libffi.call/nested_struct8.c,
1780 testsuite/libffi.call/cls_uint.c,
1781 testsuite/libffi.call/cls_multi_ushortchar.c,
1782 testsuite/libffi.call/cls_schar.c,
1783 testsuite/libffi.call/cls_uchar.c,
1784 testsuite/libffi.call/cls_align_uint64.c,
1785 testsuite/libffi.call/cls_ulonglong.c,
1786 testsuite/libffi.call/cls_align_longdouble.c,
1787 testsuite/libffi.call/cls_1_1byte.c,
1788 testsuite/libffi.call/cls_12byte.c,
1789 testsuite/libffi.call/cls_3_1byte.c,
1790 testsuite/libffi.call/cls_3byte1.c,
1791 testsuite/libffi.call/cls_4_1byte.c,
1792 testsuite/libffi.call/cls_6_1_byte.c,
1793 testsuite/libffi.call/cls_16byte.c,
1794 testsuite/libffi.call/cls_18byte.c,
1795 testsuite/libffi.call/closure_fn0.c,
1796 testsuite/libffi.call/cls_9byte2.c,
1797 testsuite/libffi.call/closure_fn2.c,
1798 testsuite/libffi.call/closure_fn4.c,
1799 testsuite/libffi.call/cls_ushort.c,
1800 testsuite/libffi.call/closure_fn6.c,
1801 testsuite/libffi.call/cls_5byte.c,
1802 testsuite/libffi.call/cls_align_pointer.c,
1803 testsuite/libffi.call/cls_7byte.c,
1804 testsuite/libffi.call/cls_align_sint32.c,
1805 testsuite/libffi.special/unwindtest_ffi_call.cc,
1806 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001807
18082007-07-05 H.J. Lu <hongjiu.lu@intel.com>
1809
1810 * aclocal.m4: Regenerated.
1811
18122007-06-02 Paolo Bonzini <bonzini@gnu.org>
1813
1814 * configure: Regenerate.
1815
18162007-05-23 Steve Ellcey <sje@cup.hp.com>
1817
1818 * Makefile.in: Regenerate.
1819 * configure: Regenerate.
1820 * aclocal.m4: Regenerate.
1821 * include/Makefile.in: Regenerate.
1822 * testsuite/Makefile.in: Regenerate.
1823
18242007-05-10 Roman Zippel <zippel@linux-m68k.org>
1825
1826 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
1827 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
1828 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
1829 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1830 (FFI_CLOSURES): Enable closure support.
1831
18322007-05-10 Roman Zippel <zippel@linux-m68k.org>
1833
1834 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
1835 * configure: Regenerate.
1836 * fficonfig.h.in: Regenerate.
1837 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
1838 CFI_OFFSET,CFI_DEF_CFA): New macros.
1839 (ffi_call_SYSV): Add callframe annotation.
1840
18412007-05-10 Roman Zippel <zippel@linux-m68k.org>
1842
1843 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
1844 numerous test suite failures.
1845 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
1846
18472007-04-11 Paolo Bonzini <bonzini@gnu.org>
1848
1849 * Makefile.am (EXTRA_DIST): Bring up to date.
1850 * Makefile.in: Regenerate.
1851 * src/frv/eabi.S: Remove RCS keyword.
1852
18532007-04-06 Richard Henderson <rth@redhat.com>
1854
1855 * configure.ac: Tidy target case.
1856 (HAVE_LONG_DOUBLE): Allow the target to override.
1857 * configure: Regenerate.
1858 * include/ffi.h.in: Don't define ffi_type_foo if
1859 LIBFFI_HIDE_BASIC_TYPES is defined.
1860 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
1861 to ffi_type_double.
1862 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
1863 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
1864 (ffi_type_longdouble): Special case for Alpha. Don't define
1865 if long double == double.
1866
1867 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
1868 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
1869 (ffi_call, ffi_closure_osf_inner): Likewise.
1870 (ffi_closure_osf_inner): Likewise. Mark hidden.
1871 (ffi_call_osf, ffi_closure_osf): Mark hidden.
1872 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
1873 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
1874 (load_table): Handle 128-bit long double.
1875
1876 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
1877
18782007-04-06 Tom Tromey <tromey@redhat.com>
1879
1880 PR libffi/31491:
1881 * README: Fixed bug in example.
1882
18832007-04-03 Jakub Jelinek <jakub@redhat.com>
1884
1885 * src/closures.c: Include sys/statfs.h.
1886 (_GNU_SOURCE): Define on Linux.
1887 (FFI_MMAP_EXEC_SELINUX): Define.
1888 (selinux_enabled): New variable.
1889 (selinux_enabled_check): New function.
1890 (is_selinux_enabled): Define.
1891 (dlmmap): Use it.
1892
18932007-03-24 Uros Bizjak <ubizjak@gmail.com>
1894
1895 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
1896 Use 'volatile float sum' to create sum of floats to avoid false
1897 negative due to excess precision on ix86 targets.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001898 (main): Ditto.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001899
19002007-03-08 Alexandre Oliva <aoliva@redhat.com>
1901
1902 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
1903 patch.
1904 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
1905
19062007-03-07 Alexandre Oliva <aoliva@redhat.com>
1907
1908 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
1909 (ffi_prep_closure_loc): New.
1910 (ffi_prep_raw_closure_loc): New.
1911 (ffi_prep_java_raw_closure_loc): New.
1912 * src/closures.c: New file.
1913 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
1914 Replace sflags with exec_offset.
1915 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
1916 sub_segment_exec_offset): New macros.
1917 (get_segment_flags, set_segment_flags, check_segment_merge): New
1918 macros.
1919 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
1920 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
1921 destroy_mspace): Use new macros.
1922 (sys_alloc): Silence warning.
1923 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
1924 * Makefile.in: Rebuilt.
1925 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
1926 terms of ffi_prep_closure_loc.
1927 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
1928 from...
1929 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
1930 renamed version.
1931 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
1932 adjusted from...
1933 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
1934 the renamed version.
1935 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
1936 (ffi_prep_closure): ... this.
1937 * src/pa/ffi.c: Likewise.
1938 * src/cris/ffi.c: Likewise. Adjust.
1939 * src/frv/ffi.c: Likewise.
1940 * src/ia64/ffi.c: Likewise.
1941 * src/mips/ffi.c: Likewise.
1942 * src/powerpc/ffi_darwin.c: Likewise.
1943 * src/s390/ffi.c: Likewise.
1944 * src/sh/ffi.c: Likewise.
1945 * src/sh64/ffi.c: Likewise.
1946 * src/sparc/ffi.c: Likewise.
1947 * src/x86/ffi64.c: Likewise.
1948 * src/x86/ffi.c: Likewise.
1949 (FFI_INIT_TRAMPOLINE): Adjust.
1950 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
1951 (ffi_prep_raw_closure): ... this.
1952 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
1953 (ffi_prep_closure): ... this.
1954 (flush_icache): Adjust.
1955
19562007-03-07 Alexandre Oliva <aoliva@redhat.com>
1957
1958 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
1959 Lea's malloc.
1960
19612007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
1962
1963 * Makefile.am: Add dummy install-pdf target.
1964 * Makefile.in: Regenerate
1965
19662007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
1967
1968 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
1969 ffi_closure_helper_SYSV): Add long double handling.
1970
19712007-02-02 Jakub Jelinek <jakub@redhat.com>
1972
1973 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
1974 immediately after bctrl instruction.
1975
19762007-01-18 Alexandre Oliva <aoliva@redhat.com>
1977
1978 * Makefile.am (all-recursive, install-recursive,
1979 mostlyclean-recursive, clean-recursive, distclean-recursive,
1980 maintainer-clean-recursive): Add missing targets.
1981 * Makefile.in: Rebuilt.
1982
19832006-12-14 Andreas Tobler <a.tobler@schweiz.org>
1984
1985 * configure.ac: Add TARGET for x86_64-*-darwin*.
1986 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
1987 for X86_DARWIN.
1988 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
1989 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
1990 * configure: Regenerate.
1991 * Makefile.in: Regenerate.
1992 * include/Makefile.in: Regenerate.
1993 * testsuite/Makefile.in: Regenerate.
1994 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
1995 ffi_call only.
1996
19972006-12-13 Andreas Tobler <a.tobler@schweiz.org>
1998
1999 * aclocal.m4: Regenerate with aclocal -I .. as written in the
2000 Makefile.am.
2001
20022006-10-31 Geoffrey Keating <geoffk@apple.com>
2003
2004 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
2005 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
2006 Darwin.
2007 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
2008 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
2009
20102006-10-10 Paolo Bonzini <bonzini@gnu.org>
2011 Sandro Tolaini <tolaini@libero.it>
2012
Anthony Green0cfe60e2009-12-29 10:06:04 -05002013 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002014 conditional.
2015 * configure: Regenerated.
2016 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
2017 (EXTRA_DIST): Add src/x86/darwin.S.
2018 * Makefile.in: Regenerated.
2019 * include/Makefile.in: Regenerated.
2020 * testsuite/Makefile.in: Regenerated.
2021
2022 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
2023 X86_WIN32, and additionally align stack to 16 bytes.
2024 * src/x86/darwin.S: New, based on sysv.S.
2025 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
2026
20272006-09-12 David Daney <ddaney@avtrex.com>
2028
2029 PR libffi/23935
2030 * include/Makefile.am: Install both ffi.h and ffitarget.h in
2031 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
2032 * aclocal.m4: Regenerated for automake 1.9.6.
2033 * Makefile.in: Regenerated.
2034 * include/Makefile.in: Regenerated.
2035 * testsuite/Makefile.in: Regenerated.
2036
20372006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
2038
2039 * include/ffi_common.h (struct): Revert accidental commit.
2040
20412006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
2042
2043 * include/ffi_common.h: Remove lint directives.
2044 * include/ffi.h.in: Likewise.
2045
20462006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
2047
2048 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
2049 for 32-bit architectures.
2050 * testsuite/libffi.call/return_ul.c: New test case.
2051
20522006-07-19 David Daney <ddaney@avtrex.com>
2053
2054 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
2055 xfail remains for mips64.
2056
20572006-05-23 Carlos O'Donell <carlos@codesourcery.com>
2058
2059 * Makefile.am: Add install-html target. Add install-html to .PHONY
2060 * Makefile.in: Regenerate.
2061 * aclocal.m4: Regenerate.
2062 * include/Makefile.in: Regenerate.
2063 * testsuite/Makefile.in: Regenerate.
2064
20652006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2066
2067 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
2068 stack slot.
2069
20702006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
2071
2072 * README: Remove notice about 'Crazy Comments'.
2073 * src/debug.c: Remove lint directives. Cleanup white spaces.
2074 * src/java_raw_api.c: Likewise.
2075 * src/prep_cif.c: Likewise.
2076 * src/raw_api.c: Likewise.
2077 * src/ffitest.c: Delete. No longer needed, all test cases migrated
2078 to the testsuite.
2079 * src/arm/ffi.c: Remove lint directives.
2080 * src/m32r/ffi.c: Likewise.
2081 * src/pa/ffi.c: Likewise.
2082 * src/powerpc/ffi.c: Likewise.
2083 * src/powerpc/ffi_darwin.c: Likewise.
2084 * src/sh/ffi.c: Likewise.
2085 * src/sh64/ffi.c: Likewise.
2086 * src/x86/ffi.c: Likewise.
2087 * testsuite/libffi.call/float2.c: Likewise.
2088 * testsuite/libffi.call/promotion.c: Likewise.
2089 * testsuite/libffi.call/struct1.c: Likewise.
2090
20912006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
2092
2093 * src/pa/hpux32.S: Correct unwind offset calculation for
2094 ffi_closure_pa32.
2095 * src/pa/linux.S: Likewise.
2096
20972006-04-12 James E Wilson <wilson@specifix.com>
2098
2099 PR libgcj/26483
2100 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
2101 (hfa_type_load): Call stf_spill.
2102 (hfa_type_store): Call ldf_fill.
2103 (ffi_call): Adjust calls to above routines. Add local temps for
2104 macro result.
2105
21062006-04-10 Matthias Klose <doko@debian.org>
2107
2108 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
2109 directory names containing underscores.
2110
21112006-04-07 James E Wilson <wilson@specifix.com>
2112
2113 * testsuite/libffi.call/float4.c: New testcase.
2114
21152006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2116 Andreas Tobler <a.tobler@schweiz.ch>
2117
2118 * Makefile.am: Add PA_HPUX port.
2119 * Makefile.in: Regenerate.
2120 * include/Makefile.in: Likewise.
2121 * testsuite/Makefile.in: Likewise.
2122 * configure.ac: Add PA_HPUX rules.
2123 * configure: Regenerate.
2124 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
2125 Add PA_HPUX and PA64_HPUX.
2126 Rename FFI_LINUX ABI to FFI_PA32 ABI.
2127 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
2128 (FFI_TYPE_SMALL_STRUCT2): Define.
2129 (FFI_TYPE_SMALL_STRUCT4): Likewise.
2130 (FFI_TYPE_SMALL_STRUCT8): Likewise.
2131 (FFI_TYPE_SMALL_STRUCT3): Redefine.
2132 (FFI_TYPE_SMALL_STRUCT5): Likewise.
2133 (FFI_TYPE_SMALL_STRUCT6): Likewise.
2134 (FFI_TYPE_SMALL_STRUCT7): Likewise.
2135 * src/pa/ffi.c (ROUND_DOWN): Delete.
2136 (fldw, fstw, fldd, fstd): Use '__asm__'.
2137 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
2138 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
2139 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
2140 Simplify incrementing of stack slot variable. Change type of local
2141 'n' to unsigned int.
2142 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
2143 double on PA_HPUX.
2144 (ffi_prep_cif_machdep): Likewise.
2145 (ffi_call): Likewise.
2146 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
2147 return type to ffi_status. Simplify incrementing of stack slot
2148 variable. Only copy floating point argument registers when PA_LINUX
2149 is true. Reformat debug statement.
2150 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
2151 FFI_TYPE_SMALL_STRUCT8.
2152 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
2153 declaration.
2154 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
2155 Add nops to cache flush. Add trampoline for PA_HPUX.
2156 * src/pa/hpux32.S: New file.
2157 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
2158 ffi_prep_args_LINUX to ffi_prep_args_pa32.
2159 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
2160 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
2161 argument type checks so that common argument types appear first.
2162 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
2163 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
2164
21652006-03-24 Alan Modra <amodra@bigpond.net.au>
2166
2167 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
2168 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
2169 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
2170 FFI_TYPE_LONGDOUBLE.
2171 (ffi_prep_args64): Assert using IBM extended double.
2172 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
2173 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
2174 (ffi_call): Handle FFI_LINUX.
2175 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
2176 gpr3 return pointer as for struct return. Handle FFI_LINUX
2177 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
2178 unnecessarily.
2179 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
2180 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
2181 Don't use r6 as pointer to results, instead use sp offset. Don't
2182 make a special call to load lr with case table address, instead
2183 use offset from previous call.
2184 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
2185 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
2186 return.
2187
21882006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
2189
2190 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
2191 passed with FP registers correctly.
2192 (ffi_closure_helper_SYSV): Likewise.
2193 * src/sh64/sysv.S: Likewise.
2194
21952006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
2196
2197 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
2198 args and userdata unused.
2199 (closure_test_fn1): Mark cif and userdata unused.
2200 (main): Remove unused res.
2201
22022006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
2203
2204 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
2205 -O2, -O3, -Os and the warning flags -W -Wall.
2206 * testsuite/libffi.special/special.exp: Likewise.
2207 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
2208 unused parameter unused for gcc or else do nothing.
2209 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2210 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
2211 and userdata unused.
2212 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
2213 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
2214 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
2215 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
2216 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
2217 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
2218 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
2219 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
2220 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
2221 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
2222 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
2223 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
2224 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
2225 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
2226 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
2227 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
2228 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
2229 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
2230 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
2231 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
2232 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
2233 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
2234 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
2235 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
2236 Likewise.
2237 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
2238 Likewise.
2239 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
2240 Likewise.
2241 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
2242 void* to avoid compiler warning.
2243 (main): Likewise.
2244 (cls_struct_align_gn): Mark cif and userdata unused.
2245 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
2246 Likewise.
2247 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
2248 Likewise.
2249 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
2250 Likewise.
2251 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
2252 Likewise.
2253 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
2254 Likewise.
2255 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
2256 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
2257 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
2258 data unused.
2259 (main): Cast res_call to silence gcc.
2260 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
2261 data unused.
2262 (main): Cast res_call to silence gcc.
2263 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
2264 and data unused.
2265 (main): Cast res_call to silence gcc.
2266 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
2267 data unused.
2268 (main): Cast res_call to silence gcc.
2269 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
2270 data unused.
2271 (main): Cast res_call to silence gcc.
2272 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
2273 and data unused.
2274 (main): Cast res_call to silence gcc.
2275 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
2276 userdata unused.
2277 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
2278 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
2279 userdata unused.
2280 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
2281 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
2282 userdata unused.
2283 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
2284 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
2285 userdata unused.
2286 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
2287 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
2288 userdata unused.
2289 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
2290 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
2291 and userdata unused.
2292 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
2293 userdata unused.
2294 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
2295 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
2296 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
2297 Cleanup white spaces.
2298 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
2299 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
2300 cif and userdata unused.
2301 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
2302 Likewise.
2303 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
2304 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
2305 formatters to silence gcc.
2306 (B_gn): Mark cif and userdata unused.
2307 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
2308 unused.
2309 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
2310 (B_gn): Mark cif and userdata unused.
2311 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
2312 unused.
2313 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
2314 (B_gn): Mark cif and userdata unused.
2315 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
2316 unused.
2317 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
2318 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
2319 * testsuite/libffi.call/problem1.c (stub): Likewise.
2320 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
2321 gcc.
2322 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
2323 in the last commit for this test case in the test case itself.
2324 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
2325 unused.
2326 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
2327 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
2328 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
2329 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
2330 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
2331 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
2332
23332006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
2334
2335 * src/sh/sysv.S: Fix register numbers in the FDE for
2336 ffi_closure_SYSV.
2337
23382006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
2339
2340 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
2341 declaration to avoid a false negative on ix86. See PR323.
2342
23432006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
2344
2345 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
2346 and cast integer to void * if needed. Update the pointer to
2347 the FP register saved area correctly.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002348
Anthony Greenc6dddbd2009-10-04 08:11:33 -040023492006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
2350
2351 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
2352 is fixed.
2353 * testsuite/libffi.call/nested_struct4.c: Likewise.
2354
23552006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
2356
2357 * testsuite/libffi.call/return_dbl.c: New test case.
2358 * testsuite/libffi.call/return_dbl1.c: Likewise.
2359 * testsuite/libffi.call/return_dbl2.c: Likewise.
2360 * testsuite/libffi.call/return_fl.c: Likewise.
2361 * testsuite/libffi.call/return_fl1.c: Likewise.
2362 * testsuite/libffi.call/return_fl2.c: Likewise.
2363 * testsuite/libffi.call/return_fl3.c: Likewise.
2364 * testsuite/libffi.call/closure_fn6.c: Likewise.
2365
2366 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
2367 definition.
2368 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
2369 here to be used by other test cases too.
2370
2371 * testsuite/libffi.call/nested_struct10.c: New test case.
2372 * testsuite/libffi.call/nested_struct9.c: Likewise.
2373 * testsuite/libffi.call/nested_struct8.c: Likewise.
2374 * testsuite/libffi.call/nested_struct7.c: Likewise.
2375 * testsuite/libffi.call/nested_struct6.c: Likewise.
2376 * testsuite/libffi.call/nested_struct5.c: Likewise.
2377 * testsuite/libffi.call/nested_struct4.c: Likewise.
2378
23792006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
2380
2381 * configure.ac: Enable libffi for sparc64-*-freebsd*.
2382 * configure: Rebuilt.
2383
23842006-01-18 Jakub Jelinek <jakub@redhat.com>
2385
2386 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
2387 instead do the shifting inline.
2388 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
2389 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
2390 and 8 byte structs, for the remaining struct sizes don't call
2391 __lshrdi3, instead do the shifting inline.
2392
23932005-12-07 Thiemo Seufer <ths@networkno.de>
2394
2395 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
2396 missing parentheses.
2397 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
2398 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
2399 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
2400 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
2401 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
2402 FA_0_0_OFF2.
2403 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
2404 endianness bugs.
2405 (ffi_prep_closure): Improve trampoline instruction scheduling.
2406 (ffi_closure_mips_inner_O32): Fix endianness bugs.
2407
24082005-12-03 Alan Modra <amodra@bigpond.net.au>
2409
2410 * src/powerpc/ffi.c: Formatting.
2411 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
2412 (ffi_prep_args64): Likewise.
2413
24142005-09-30 Geoffrey Keating <geoffk@apple.com>
2415
2416 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
2417 darwin, use -shared-libgcc not -lgcc_s, and explain why.
2418
24192005-09-26 Tom Tromey <tromey@redhat.com>
2420
2421 * testsuite/libffi.call/float1.c (value_type): New typedef.
2422 (CANARY): New define.
2423 (main): Check for result buffer overflow.
2424 * src/powerpc/linux64.S: Handle linux64 long double returns.
2425 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
2426 (ffi_prep_cif_machdep): Handle linux64 long double returns.
2427
24282005-08-25 Alan Modra <amodra@bigpond.net.au>
2429
2430 PR target/23404
2431 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
2432 homed fp args.
2433 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
2434
24352005-08-11 Jakub Jelinek <jakub@redhat.com>
2436
2437 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
2438 (AH_BOTTOM): Add FFI_HIDDEN definition.
2439 * configure: Rebuilt.
2440 * fficonfig.h.in: Rebuilt.
2441 * src/powerpc/ffi.c (hidden): Remove.
2442 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
2443 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
2444 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
2445 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
2446 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
2447 add FFI_HIDDEN to its prototype.
2448 (ffi_closure_SYSV_inner): New.
2449 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
2450 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
2451
24522005-08-10 Alfred M. Szmidt <ams@gnu.org>
2453
2454 PR libffi/21819:
2455 * configure: Rebuilt.
2456 * configure.ac: Handle i*86-*-gnu*.
2457
24582005-08-09 Jakub Jelinek <jakub@redhat.com>
2459
2460 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
2461 DW_CFA_offset_extended_sf rather than
2462 DW_CFA_GNU_negative_offset_extended.
2463 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
2464
24652005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
2466
2467 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
2468 on sh3.
2469 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
2470 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
2471 partially on register.
2472 (ffi_closure_helper_SYSV): Likewise.
2473 (ffi_prep_cif_machdep): Don't set too many cif->flags.
2474
24752005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
2476
2477 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
2478 Remove empty line.
2479 * src/sh64/ffi.c (simple_type): Remove.
2480 (return_type): Handle small structures correctly.
2481 (ffi_prep_args): Likewise.
2482 (ffi_call): Likewise.
2483 (ffi_closure_helper_SYSV): Likewise.
2484 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
2485 Emit position independent code if PIC and remove wrong datalabel
2486 prefixes from EH data.
2487
24882005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
2489
2490 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
2491 * Makefile.in: Regenerate.
2492 * include/Makefile.in: Likewise.
2493 * testsuite/Makefile.in: Likewise.
2494 * configure.ac: Add POWERPC_FREEBSD rules.
2495 * configure: Regenerate.
2496 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
2497 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
2498 * src/powerpc/ffi.c: Add flags to handle small structure returns
2499 in ffi_call_SYSV.
2500 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
2501 Aka FFI_SYSV.
2502 (ffi_closure_helper_SYSV): Likewise.
2503 * src/powerpc/ppc_closure.S: Add return types for small structures.
2504 * src/powerpc/sysv.S: Add bits to handle small structures for
2505 final SYSV 4 ABI.
2506
25072005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
2508
2509 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
2510 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
2511 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
2512
25132005-07-05 Randolph Chung <tausq@debian.org>
2514
2515 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
2516 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
2517 structures. Kill compilation warnings.
2518 (ffi_closure_inner_LINUX): Print return values as hex in debug
2519 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
2520 Properly handle 5-7 byte structure returns.
2521 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
2522 (FFI_TYPE_SMALL_STRUCT2): Remove.
2523 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
2524 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
2525 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
2526 (checksmst1, checksmst2): Remove.
2527 (checksmst3): Optimize handling of 3-byte struct returns.
2528 (checksmst567): Properly handle 5-7 byte struct returns.
2529
25302005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2531
2532 PR libgcj/21943
2533 * src/mips/n32.S: Enforce PIC code.
2534 * src/mips/o32.S: Likewise.
2535
25362005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2537
2538 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
2539 * configure: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002540
Anthony Greenc6dddbd2009-10-04 08:11:33 -040025412005-06-01 Alan Modra <amodra@bigpond.net.au>
2542
2543 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
2544 to call ffi_closure_helper_SYSV. Append @local instead.
2545 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
2546
25472005-05-17 Kelley Cook <kcook@gcc.gnu.org>
2548
2549 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
2550 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
2551 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
2552 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
2553 include/Makefile.in, testsuite/Makefile.in: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002554
Anthony Greenc6dddbd2009-10-04 08:11:33 -040025552005-05-09 Mike Stump <mrs@apple.com>
2556
2557 * configure: Regenerate.
2558
25592005-05-08 Richard Henderson <rth@redhat.com>
2560
2561 PR libffi/21285
2562 * src/alpha/osf.S: Update unwind into to match code.
2563
25642005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
2565 Richard Henderson <rth@redhat.com>
2566
2567 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
2568 bit 11 of flags.
2569 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
2570 (ffi_prep_closure): Set carry bit if sse-used flag set.
2571 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
2572 Only load sse registers if ssecount non-zero.
2573 (ffi_closure_unix64): Only save sse registers if carry set on entry.
2574
25752005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
2576
2577 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
2578 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
2579 * configure: Regenerate.
2580
25812005-04-20 Hans-Peter Nilsson <hp@axis.com>
2582
2583 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
2584 have Tcl8.3-compatible intermediate variable.
2585
Anthony Green0cfe60e2009-12-29 10:06:04 -050025862005-04-18 Simon Posnjak <simon.posnjak@siol.net>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002587 Hans-Peter Nilsson <hp@axis.com>
2588
2589 * Makefile.am: Add CRIS support.
2590 * configure.ac: Likewise.
2591 * Makefile.in, configure, testsuite/Makefile.in,
2592 include/Makefile.in: Regenerate.
2593 * src/cris: New directory.
2594 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
2595 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
2596
2597 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
2598 \r?\n in output tests.
2599
26002005-04-12 Mike Stump <mrs@apple.com>
2601
2602 * configure: Regenerate.
2603
26042005-03-30 Hans Boehm <Hans.Boehm@hp.com>
2605
2606 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002607
Anthony Greenc6dddbd2009-10-04 08:11:33 -040026082005-03-30 Steve Ellcey <sje@cup.hp.com>
2609
2610 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
2611 (ffi_sarg) Ditto.
2612 * src/ia64/unix.S (ffi_closure_unix): Extend gp
2613 to 64 bits in ILP32 mode.
2614 Load 64 bits even for short data.
2615
26162005-03-23 Mike Stump <mrs@apple.com>
2617
2618 * src/powerpc/darwin.S: Update for -m64 multilib.
2619 * src/powerpc/darwin_closure.S: Likewise.
2620
26212005-03-21 Zack Weinberg <zack@codesourcery.com>
2622
2623 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
2624 Do not set tool_include_dir.
2625 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
2626 Regenerate.
2627 * include/Makefile.am: Set gcc_version and toollibffidir.
2628 * include/Makefile.in: Regenerate.
2629
26302005-02-22 Andrew Haley <aph@redhat.com>
2631
2632 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
2633 odd-numbered register pairs for 64-bit integer types.
2634
26352005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
2636
2637 PR libffi/20104
2638 * testsuite/libffi.call/return_ll1.c: New test case.
2639
26402005-02-11 Janis Johnson <janis187@us.ibm.com>
2641
2642 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
2643 * testsuite/libffi.call/float.c: Ditto.
2644 * testsuite/libffi.call/float2.c: Ditto.
2645 * testsuite/libffi.call/float3.c: Ditto.
2646
26472005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
2648
2649 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
2650
26512005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2652
2653 * testsuite/libffi.special/special.exp (cxx_options): Add
2654 -shared-libgcc.
2655
26562004-12-31 Richard Henderson <rth@redhat.com>
2657
2658 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
2659 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
2660 offset parameters with a type parameter; deduce size and structure
2661 alignment. Update all users.
2662
26632004-12-31 Richard Henderson <rth@redhat.com>
2664
2665 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
2666 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
2667 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
2668 into ffi_prep_closure.
2669 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
2670 from scratch.
2671
26722004-12-27 Richard Henderson <rth@redhat.com>
2673
2674 * src/x86/unix64.S: Fix typo in unwind info.
2675
26762004-12-25 Richard Henderson <rth@redhat.com>
2677
2678 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
2679 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
2680 (merge_classes): Check for it.
2681 (SSE_CLASS_P): New.
2682 (classify_argument): Pass byte_offset by value; perform all updates
2683 inside struct case.
2684 (examine_argument): Add classes argument; handle
2685 X86_64_COMPLEX_X87_CLASS.
2686 (ffi_prep_args): Merge into ...
2687 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
2688 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
2689 (ffi_fill_return_value): Remove.
2690 (ffi_prep_closure): Remove dead assert.
2691 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
2692 Rewrite to use struct register_args instead of va_list. Create
2693 flags for handling structure returns.
2694 * src/x86/unix64.S: Remove dead strings.
2695 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
2696 stack frame with ffi_call. Handle structure returns properly.
2697 (float2sse, floatfloat2sse, double2sse): Remove.
2698 (sse2float, sse2double, sse2floatfloat): Remove.
2699 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
2700 to handle structure returns properly.
2701
27022004-12-08 David Edelsohn <edelsohn@gnu.org>
2703
2704 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
2705 PICFLAG.
2706 * Makefile.in: Regenerated.
2707
27082004-12-02 Richard Sandiford <rsandifo@redhat.com>
2709
2710 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
2711 * configure, aclocal.m4, Makefile.in: Regenerate.
2712 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
2713
27142004-11-29 Kelley Cook <kcook@gcc.gnu.org>
2715
2716 * configure: Regenerate for libtool change.
2717
27182004-11-25 Kelley Cook <kcook@gcc.gnu.org>
2719
2720 * configure: Regenerate for libtool reversion.
2721
27222004-11-24 Kelley Cook <kcook@gcc.gnu.org>
2723
2724 * configure: Regenerate for libtool change.
2725
27262004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2727
2728 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
2729
27302004-11-23 Richard Sandiford <rsandifo@redhat.com>
2731
2732 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
2733 of jal. Use an absolute encoding for the frame information.
2734
27352004-11-23 Kelley Cook <kcook@gcc.gnu.org>
2736
2737 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
2738 * acinclude.m4: Delete logic for sincludes.
2739 * aclocal.m4, Makefile.in, configure: Regenerate.
2740 * include/Makefile: Likewise.
2741 * testsuite/Makefile: Likewise.
2742
27432004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
2744
2745 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
2746 on a 8-byte boundary.
2747 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
2748
27492004-10-27 Richard Earnshaw <rearnsha@arm.com>
2750
2751 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
2752 long long values. Round stack allocation to a multiple of 8 bytes
2753 for ATPCS compatibility.
2754 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
2755 names. Handle returning long long types. Add Thumb and interworking
2756 support. Improve soft-float code.
2757
27582004-10-27 Richard Earnshaw <rearnsha@arm.com>
2759
2760 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
2761 (libffi_exit): New function.
2762 (libffi_init): Build the testglue wrapper if needed.
2763
27642004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
2765
2766 PR other/18138
2767 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
2768
27692004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2770
2771 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
2772
27732004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
2774
2775 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
2776 * testsuite/libffi.call/float3.c: New test case.
2777
27782004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
2779
2780 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
2781 the function returning a structure pointed with R2.
2782 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
2783 the structure return value if T bit set. Emit position
2784 independent code and EH data if PIC.
2785
27862004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2787
2788 * Makefile.am: Add m32r support.
2789 * configure.ac: Likewise.
2790 * Makefile.in: Regenerate.
2791 * confiugre: Regenerate.
2792 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
2793 (uint64, sint64, double, longdouble)
2794 * src/m32r: New directory.
2795 * src/m32r/ffi.c: New file.
2796 * src/m32r/sysv.S: Likewise.
2797 * src/m32r/ffitarget.h: Likewise.
2798
27992004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
2800
2801 * testsuite/libffi.call/negint.c: New test case.
2802
28032004-09-14 H.J. Lu <hongjiu.lu@intel.com>
2804
2805 PR libgcj/17465
2806 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
2807 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
2808 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
2809 DYLD_LIBRARY_PATH.
2810
28112004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
2812
2813 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
2814 * testsuite/libffi.call/promotion.c: Likewise.
2815 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
2816 whitespaces.
2817 * testsuite/libffi.call/return_sc.c: Likewise.
2818 * testsuite/libffi.call/return_uc.c: Likewise.
2819
28202004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
2821
2822 * src/powerpc/darwin.S: Fix comments and identation.
2823 * src/powerpc/darwin_closure.S: Likewise.
2824
28252004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
2826
2827 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
2828 (ffi_prep_args): Handle longdouble arguments.
2829 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
2830 longdouble.
2831 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
2832 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
2833 values.
2834 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
2835 * src/types.c: Defined longdouble size and alignment for darwin.
2836
28372004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
2838
2839 * src/powerpc/aix.S: Remove whitespaces.
2840 * src/powerpc/aix_closure.S: Likewise.
2841 * src/powerpc/asm.h: Likewise.
2842 * src/powerpc/ffi.c: Likewise.
2843 * src/powerpc/ffitarget.h: Likewise.
2844 * src/powerpc/linux64.S: Likewise.
2845 * src/powerpc/linux64_closure.S: Likewise.
2846 * src/powerpc/ppc_closure.S: Likewise.
2847 * src/powerpc/sysv.S: Likewise.
2848
28492004-08-30 Anthony Green <green@redhat.com>
2850
2851 * Makefile.am: Add frv support.
2852 * Makefile.in, testsuite/Makefile.in: Rebuilt.
2853 * configure.ac: Read configure.host.
2854 * configure.in: Read configure.host.
2855 * configure.host: New file. frv-elf needs libgloss.
2856 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
2857 alignment. This is needed to frv and shouldn't harm the others.
2858 * include/ffi_common.h (ALIGN_DOWN): New macro.
2859 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
2860
28612004-08-24 David Daney <daney@avtrex.com>
2862
2863 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
2864 * testsuite/libffi.call/closure_fn1.c: Likewise.
2865 * testsuite/libffi.call/closure_fn2.c Likewise.
2866 * testsuite/libffi.call/closure_fn3.c: Likewise.
2867 * testsuite/libffi.call/closure_fn4.c: Likewise.
2868 * testsuite/libffi.call/closure_fn5.c: Likewise.
2869 * testsuite/libffi.call/cls_18byte.c: Likewise.
2870 * testsuite/libffi.call/cls_19byte.c: Likewise.
2871 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2872 * testsuite/libffi.call/cls_20byte.c: Likewise.
2873 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2874 * testsuite/libffi.call/cls_24byte.c: Likewise.
2875 * testsuite/libffi.call/cls_2byte.c: Likewise.
2876 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2877 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2878 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2879 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2880 * testsuite/libffi.call/cls_4byte.c: Likewise.
2881 * testsuite/libffi.call/cls_64byte.c: Likewise.
2882 * testsuite/libffi.call/cls_6byte.c: Likewise.
2883 * testsuite/libffi.call/cls_7byte.c: Likewise.
2884 * testsuite/libffi.call/cls_8byte.c: Likewise.
2885 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2886 * testsuite/libffi.call/cls_9byte2.c: Likewise.
2887 * testsuite/libffi.call/cls_align_double.c: Likewise.
2888 * testsuite/libffi.call/cls_align_float.c: Likewise.
2889 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
2890 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
2891 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
2892 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
2893 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
2894 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
2895 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
2896 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
2897 * testsuite/libffi.call/cls_double.c: Likewise.
2898 * testsuite/libffi.call/cls_float.c: Likewise.
2899 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
2900 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
2901 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
2902 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
2903 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
2904 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
2905 * testsuite/libffi.call/cls_schar.c: Likewise.
2906 * testsuite/libffi.call/cls_sint.c: Likewise.
2907 * testsuite/libffi.call/cls_sshort.c: Likewise.
2908 * testsuite/libffi.call/cls_uchar.c: Likewise.
2909 * testsuite/libffi.call/cls_uint.c: Likewise.
2910 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2911 * testsuite/libffi.call/cls_ushort.c: Likewise.
2912 * testsuite/libffi.call/nested_struct.c: Likewise.
2913 * testsuite/libffi.call/nested_struct1.c: Likewise.
2914 * testsuite/libffi.call/nested_struct2.c: Likewise.
2915 * testsuite/libffi.call/nested_struct3.c: Likewise.
2916 * testsuite/libffi.call/problem1.c: Likewise.
2917 * testsuite/libffi.special/unwindtest.cc: Likewise.
2918 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
2919 to zero.
2920 * testsuite/libffi.call/cls_16byte.c: Likewise.
2921 * testsuite/libffi.call/cls_5byte.c: Likewise.
2922
29232004-08-23 David Daney <daney@avtrex.com>
2924
2925 PR libgcj/13141
2926 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
2927 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
2928 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
2929 parameters and return types.
2930 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
2931 (ffi_prep_closure): Ditto.
2932 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
2933 alignment calculations.
2934 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
2935 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
2936
29372004-08-14 Casey Marshall <csm@gnu.org>
2938
2939 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
2940 contain `FFI_TYPE_UINT64' as return type for any 64-bit
2941 integer (O32 ABI only).
2942 (ffi_prep_closure): new function.
2943 (ffi_closure_mips_inner_O32): new function.
2944 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
2945 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
2946 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
2947 64 bit integers correctly.
2948 (ffi_closure_O32): new function.
2949 Added DWARF-2 unwind info for both functions.
2950
29512004-08-10 Andrew Haley <aph@redhat.com>
2952
2953 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
2954
29552004-08-01 Robert Millan <robertmh@gnu.org>
2956
2957 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
2958 * configure: Regenerate.
2959
29602004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
2961
2962 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
2963 and mmap() explicitly instead of relying on preset autoconf cache
2964 variables.
2965 * aclocal.m4: Regenerate.
2966 * configure: Regenerate.
2967
29682004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
2969
2970 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
2971 (ffi_check_float_struct): Remove unused prototype.
2972
29732004-06-30 Geoffrey Keating <geoffk@apple.com>
2974
2975 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
2976 character on Darwin, use '\n\t' instead.
2977
29782004-06-26 Matthias Klose <doko@debian.org>
2979
2980 * libtool-version: Fix typo in revision/age.
2981
29822004-06-17 Matthias Klose <doko@debian.org>
2983
2984 * libtool-version: New.
2985 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
2986 * Makefile.in: Regenerate.
2987
29882004-06-15 Paolo Bonzini <bonzini@gnu.org>
2989
2990 * Makefile.am: Remove useless multilib rules.
2991 * Makefile.in: Regenerate.
2992 * aclocal.m4: Regenerate with automake 1.8.5.
2993 * configure.ac: Remove useless multilib configury.
2994 * configure: Regenerate.
2995
29962004-06-15 Paolo Bonzini <bonzini@gnu.org>
2997
2998 * .cvsignore: New file.
2999
30002004-06-10 Jakub Jelinek <jakub@redhat.com>
3001
3002 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
3003 fp_done.
3004 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
3005 changed from 8.
3006
30072004-06-06 Sean McNeil <sean@mcneil.com>
3008
3009 * configure.ac: Add x86_64-*-freebsd* support.
3010 * configure: Regenerate.
3011
30122004-04-26 Joe Buck <jbuck@welsh-buck.org>
3013
3014 Bug 15093
3015 * configure.ac: Test for existence of mmap and sys/mman.h before
3016 checking blacklist. Fix suggested by Jim Wilson.
3017 * configure: Regenerate.
3018
30192004-04-26 Matt Austern <austern@apple.com>
3020
3021 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
3022 FDE location.
3023 * src/powerpc/darwin_closure.S: Likewise.
3024
30252004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
3026
3027 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
3028 error. Reported by Thomas Heller <theller@python.net>.
3029 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
3030 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
3031
30322004-03-20 Matthias Klose <doko@debian.org>
3033
3034 * src/pa/linux.S: Fix typo.
3035
30362004-03-19 Matthias Klose <doko@debian.org>
3037
3038 * Makefile.am: Update.
3039 * Makefile.in: Regenerate.
3040 * src/pa/ffi.h.in: Remove.
3041 * src/pa/ffitarget.h: New file.
3042
30432004-02-10 Randolph Chung <tausq@debian.org>
3044
3045 * Makefile.am: Add PA support.
3046 * Makefile.in: Regenerate.
3047 * include/Makefile.in: Regenerate.
3048 * configure.ac: Add PA target.
3049 * configure: Regenerate.
3050 * src/pa/ffi.c: New file.
3051 * src/pa/ffi.h.in: Add PA support.
3052 * src/pa/linux.S: New file.
3053 * prep_cif.c: Add PA support.
3054
30552004-03-16 Hosaka Yuji <hos@tamanegi.org>
3056
3057 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
3058 double.
3059 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
3060 with ecif->cif->flags.
3061 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
3062 with cif->flags.
3063 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
3064 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
3065 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
3066 sc_retstruct2b): Add for 1 or 2-bytes struct case.
3067
30682004-03-15 Kelley Cook <kcook@gcc.gnu.org>
3069
3070 * configure.in: Rename file to ...
3071 * configure.ac: ... this.
3072 * fficonfig.h.in: Regenerate.
3073 * Makefile.in: Regenerate.
3074 * include/Makefile.in: Regenerate.
3075 * testsuite/Makefile.in: Regenerate.
3076
30772004-03-12 Matt Austern <austern@apple.com>
3078
3079 * src/powerpc/darwin.S: Fix EH information so it corresponds to
3080 changes in EH format resulting from addition of linkonce support.
3081 * src/powerpc/darwin_closure.S: Likewise.
3082
30832004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
3084 Paolo Bonzini <bonzini@gnu.org>
3085
3086 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
3087 Remove VPATH. Remove rules for object files. Remove multilib support.
3088 (AM_CCASFLAGS): Add.
3089 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
3090 (AC_PREREQ): Bump version to 2.59.
3091 (AC_INIT): Fill with version info and bug address.
3092 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
3093 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
3094 De-precious CC so that the right flags are passed down to multilibs.
3095 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
3096 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
3097 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
3098 * configure: Rebuilt.
3099 * aclocal.m4: Likewise.
3100 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
3101 * fficonfig.h.in: Likewise.
3102
31032004-03-11 Andreas Schwab <schwab@suse.de>
3104
3105 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
3106 arguments from fp registers only for the first 8 parameter slots.
3107 Don't convert a float parameter when passed in memory.
3108
31092004-03-09 Hans-Peter Nilsson <hp@axis.com>
3110
3111 * configure: Regenerate for config/accross.m4 correction.
3112
31132004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
3114
3115 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
3116 ecif->cif->bytes to bytes.
3117 (ffi_prep_cif_machdep): Add braces around nested if statement.
3118
31192004-02-09 Alan Modra <amodra@bigpond.net.au>
3120
3121 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
3122
3123 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
3124 (ffi_closure_helper_LINUX64): Fix typo.
3125 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
3126 for powerpc64-*-*.
3127 * testsuite/libffi.call/float.c: Likewise.
3128 * testsuite/libffi.call/float2.c: Likewise.
3129
31302004-02-08 Alan Modra <amodra@bigpond.net.au>
3131
3132 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
3133 long double function return and long double arg handling.
3134 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
3135 Use "end_pfr" instead of "nf". Correct long double handling.
3136 Localise "temp".
3137 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
3138 return value.
3139 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
3140 space for long double return value. Adjust stack frame and offsets.
3141 Load f2 long double return.
3142
31432004-02-07 Alan Modra <amodra@bigpond.net.au>
3144
3145 * src/types.c: Use 16 byte long double for POWERPC64.
3146
31472004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3148
3149 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
3150 when the structure return address is passed in %o0.
3151 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
3152 (ffi_v9_layout_struct): Align the field following a nested structure
3153 on a word boundary. Use memmove instead of memcpy.
3154 (ffi_call): Update call to ffi_V9_return_struct.
3155 (ffi_prep_closure): Define 'ctx' only for V8.
3156 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
3157 and ffi_closure_sparc_inner_v9.
3158 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
3159 Always skip the structure return address. For structures and long
3160 doubles, copy the argument directly.
3161 (ffi_closure_sparc_inner_v9): Skip the structure return address only
3162 if required. Shift the maximum floating-point slot accordingly. For
3163 big structures, copy the argument directly; otherwise, left-justify the
3164 argument and call ffi_v9_layout_struct to lay out the structure on
3165 the stack.
3166 * src/sparc/v8.S: Undef STACKFRAME before defining it.
3167 (ffi_closure_v8): Pass the structure return address. Update call to
3168 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
3169 Skip the 'unimp' insn when returning long doubles and structures.
3170 * src/sparc/v9.S: Undef STACKFRAME before defining it.
3171 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
3172 FFI_TYPE_INT handling. Load structures both in integers and
3173 floating-point registers on return.
3174 * README: Update status of the SPARC port.
3175
31762004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
3177
3178 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
3179 as of type ffi_arg.
3180 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
3181
31822004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
3183
3184 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
3185 value as of type ffi_arg, not unsigned int.
3186
31872004-01-21 Michael Ritzert <ritzert@t-online.de>
3188
3189 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
3190 of the LHS.
3191
31922004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
3193
3194 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
3195 Solaris.
3196
31972004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3198
3199 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
3200 to void *.
3201
32022003-12-10 Richard Henderson <rth@redhat.com>
3203
3204 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
3205 size_t instead of int.
3206
32072003-12-04 Hosaka Yuji <hos@tamanegi.org>
3208
3209 * testsuite/libffi.call/many_win32.c: Include <float.h>.
3210 * testsuite/libffi.call/many_win32.c (main): Replace variable
3211 int i with unsigned long ul.
3212
3213 * testsuite/libffi.call/cls_align_uint64.c: New test case.
3214 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3215 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3216 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3217 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3218 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3219 * testsuite/libffi.call/cls_align_float.c: Likewise.
3220 * testsuite/libffi.call/cls_align_double.c: Likewise.
3221 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3222 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3223
32242003-12-02 Hosaka Yuji <hos@tamanegi.org>
3225
3226 PR other/13221
3227 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
3228 Align arguments to 32 bits.
3229
32302003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
3231
3232 PR other/13221
3233 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
3234 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3235 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3236 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3237 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3238 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3239
3240 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
3241
32422003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3243
3244 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
3245 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3246
32472003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
3248
3249 * Makefile.in: Rebuilt.
3250 * configure: Likewise.
3251 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
3252 the right type.
3253
32542003-11-21 Andreas Jaeger <aj@suse.de>
3255 Andreas Tobler <a.tobler@schweiz.ch>
3256
3257 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
3258 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
3259 * Makefile.in: Rebuilt.
3260 * aclocal.m4: Likewise.
3261 * configure: Likewise.
3262 * fficonfig.h.in: Likewise.
3263 * testsuite/lib/libffi-dg.exp: Add include dir.
3264 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
3265 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3266 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
3267 for ffi_closure if available.
3268 * testsuite/libffi.call/closure_fn1.c: Likewise.
3269 * testsuite/libffi.call/closure_fn2.c: Likewise.
3270 * testsuite/libffi.call/closure_fn3.c: Likewise.
3271 * testsuite/libffi.call/closure_fn4.c: Likewise.
3272 * testsuite/libffi.call/closure_fn5.c: Likewise.
3273 * testsuite/libffi.call/cls_12byte.c: Likewise.
3274 * testsuite/libffi.call/cls_16byte.c: Likewise.
3275 * testsuite/libffi.call/cls_18byte.c: Likewise.
3276 * testsuite/libffi.call/cls_19byte.c: Likewise.
3277 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3278 * testsuite/libffi.call/cls_20byte.c: Likewise.
3279 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3280 * testsuite/libffi.call/cls_24byte.c: Likewise.
3281 * testsuite/libffi.call/cls_2byte.c: Likewise.
3282 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3283 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3284 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3285 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3286 * testsuite/libffi.call/cls_4byte.c: Likewise.
3287 * testsuite/libffi.call/cls_5byte.c: Likewise.
3288 * testsuite/libffi.call/cls_64byte.c: Likewise.
3289 * testsuite/libffi.call/cls_6byte.c: Likewise.
3290 * testsuite/libffi.call/cls_7byte.c: Likewise.
3291 * testsuite/libffi.call/cls_8byte.c: Likewise.
3292 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3293 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3294 * testsuite/libffi.call/cls_double.c: Likewise.
3295 * testsuite/libffi.call/cls_float.c: Likewise.
3296 * testsuite/libffi.call/cls_schar.c: Likewise.
3297 * testsuite/libffi.call/cls_sint.c: Likewise.
3298 * testsuite/libffi.call/cls_sshort.c: Likewise.
3299 * testsuite/libffi.call/cls_uchar.c: Likewise.
3300 * testsuite/libffi.call/cls_uint.c: Likewise.
3301 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3302 * testsuite/libffi.call/cls_ushort.c: Likewise.
3303 * testsuite/libffi.call/nested_struct.c: Likewise.
3304 * testsuite/libffi.call/nested_struct1.c: Likewise.
3305 * testsuite/libffi.call/nested_struct2.c: Likewise.
3306 * testsuite/libffi.call/nested_struct3.c: Likewise.
3307 * testsuite/libffi.call/problem1.c: Likewise.
3308 * testsuite/libffi.special/unwindtest.cc: Likewise.
3309
33102003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
3311
3312 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
3313
33142003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
3315
3316 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
3317 Add -lgcc_s to additional flags.
3318
33192003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
3320
3321 * configure.in, include/Makefile.am: PR libgcj/11147, install
3322 the ffitarget.h header file in a gcc versioned and target
3323 dependent place.
3324 * configure: Regenerated.
3325 * Makefile.in, include/Makefile.in: Likewise.
3326 * testsuite/Makefile.in: Likewise.
3327
33282003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
3329
3330 * testsuite/libffi.call/closure_fn0.c: Print result and check
3331 with dg-output to make debugging easier.
3332 * testsuite/libffi.call/closure_fn1.c: Likewise.
3333 * testsuite/libffi.call/closure_fn2.c: Likewise.
3334 * testsuite/libffi.call/closure_fn3.c: Likewise.
3335 * testsuite/libffi.call/closure_fn4.c: Likewise.
3336 * testsuite/libffi.call/closure_fn5.c: Likewise.
3337 * testsuite/libffi.call/cls_12byte.c: Likewise.
3338 * testsuite/libffi.call/cls_16byte.c: Likewise.
3339 * testsuite/libffi.call/cls_18byte.c: Likewise.
3340 * testsuite/libffi.call/cls_19byte.c: Likewise.
3341 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3342 * testsuite/libffi.call/cls_20byte.c: Likewise.
3343 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3344 * testsuite/libffi.call/cls_24byte.c: Likewise.
3345 * testsuite/libffi.call/cls_2byte.c: Likewise.
3346 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3347 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3348 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3349 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3350 * testsuite/libffi.call/cls_4byte.c: Likewise.
3351 * testsuite/libffi.call/cls_5byte.c: Likewise.
3352 * testsuite/libffi.call/cls_64byte.c: Likewise.
3353 * testsuite/libffi.call/cls_6byte.c: Likewise.
3354 * testsuite/libffi.call/cls_7byte.c: Likewise.
3355 * testsuite/libffi.call/cls_8byte.c: Likewise.
3356 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3357 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3358 * testsuite/libffi.call/cls_double.c: Likewise.
3359 * testsuite/libffi.call/cls_float.c: Likewise.
3360 * testsuite/libffi.call/cls_schar.c: Likewise.
3361 * testsuite/libffi.call/cls_sint.c: Likewise.
3362 * testsuite/libffi.call/cls_sshort.c: Likewise.
3363 * testsuite/libffi.call/cls_uchar.c: Likewise.
3364 * testsuite/libffi.call/cls_uint.c: Likewise.
3365 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3366 * testsuite/libffi.call/cls_ushort.c: Likewise.
3367 * testsuite/libffi.call/problem1.c: Likewise.
3368
3369 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
3370 static.
3371
33722003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
3373
3374 * testsuite/libffi.call/cls_9byte2.c: New test case.
3375 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3376 * testsuite/libffi.call/cls_64byte.c: Likewise.
3377 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3378 * testsuite/libffi.call/cls_19byte.c: Likewise.
3379 * testsuite/libffi.call/cls_18byte.c: Likewise.
3380 * testsuite/libffi.call/closure_fn4.c: Likewise.
3381 * testsuite/libffi.call/closure_fn5.c: Likewise.
3382 * testsuite/libffi.call/cls_schar.c: Likewise.
3383 * testsuite/libffi.call/cls_sint.c: Likewise.
3384 * testsuite/libffi.call/cls_sshort.c: Likewise.
3385 * testsuite/libffi.call/nested_struct2.c: Likewise.
3386 * testsuite/libffi.call/nested_struct3.c: Likewise.
3387
33882003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
3389
3390 * testsuite/libffi.call/cls_double.c: Do a check on the result.
3391 * testsuite/libffi.call/cls_uchar.c: Likewise.
3392 * testsuite/libffi.call/cls_uint.c: Likewise.
3393 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3394 * testsuite/libffi.call/cls_ushort.c: Likewise.
3395 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
3396
33972003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
3398
3399 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
3400 the initialization.
3401
34022003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
3403
3404 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
3405 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
3406
34072003-10-22 David Daney <ddaney@avtrex.com>
3408
3409 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
3410 __attribute__((__mode__(__SI__))) and friends.
3411
34122003-10-22 Andreas Schwab <schwab@suse.de>
3413
3414 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
3415
34162003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
3417
3418 * configure.in: AC_LINK_FILES(ffitarget.h).
3419 * configure: Regenerate.
3420 * Makefile.in: Likewise.
3421 * include/Makefile.in: Likewise.
3422 * testsuite/Makefile.in: Likewise.
3423 * fficonfig.h.in: Likewise.
3424
34252003-10-21 Paolo Bonzini <bonzini@gnu.org>
3426 Richard Henderson <rth@redhat.com>
3427
3428 Avoid that ffi.h includes fficonfig.h.
3429
3430 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
3431 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
3432 (TARGET_SRC_MIPS_SGI): Removed.
3433 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
3434 (MIPS_SGI): Removed.
3435 (CLEANFILES): Removed.
3436 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
3437 targets.
3438 * acconfig.h: Removed.
3439 * configure.in: Compute sizeofs only for double and long double.
3440 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
3441 into AC_DEFINE instead of using acconfig.h. Create
3442 include/ffitarget.h instead of include/fficonfig.h. Rename
3443 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
3444 AC_DEFINE EH_FRAME_FLAGS.
3445 * include/Makefile.am (DISTCLEANFILES): New automake macro.
3446 (hack_DATA): Add ffitarget.h.
3447 * include/ffi.h.in: Remove all system specific definitions.
3448 Declare raw API even if it is not installed, why bother?
3449 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
3450 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
3451 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
3452 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
3453 * include/ffi_common.h (bool): Do not define.
3454 (ffi_assert): Accept failed assertion.
3455 (ffi_type_test): Return void and accept file/line.
3456 (FFI_ASSERT): Pass stringized failed assertion.
3457 (FFI_ASSERT_AT): New macro.
3458 (FFI_ASSERT_VALID_TYPE): New macro.
3459 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
3460 UINT64, SINT64): Define here with gcc's __attribute__ macro
3461 instead of in ffi.h
3462 (FLOAT32, ALIGN): Define here instead of in ffi.h
3463 * include/ffi-mips.h: Removed. Its content moved to
3464 src/mips/ffitarget.h after separating assembly and C sections.
3465 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
3466 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
3467 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
3468 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
3469 SIZEOF_ARG -> FFI_SIZEOF_ARG.
3470 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
3471 * src/debug.c (ffi_assert): Accept stringized failed assertion.
3472 (ffi_type_test): Rewritten.
3473 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
3474 FFI_ASSERT_VALID_TYPE.
3475 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
3476 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
3477 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
3478 src/s390/ffitarget.h, src/sh/ffitarget.h,
3479 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
3480 src/x86/ffitarget.h: New files.
3481 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
3482 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
3483 src/powerpc/aix.S, src/powerpc/darwin.S,
3484 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
3485 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
3486 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
3487 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
3488 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
3489 include fficonfig.h
3490
34912003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3492
3493 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
3494 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
3495
34962003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
3497
3498 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
3499 Used when FFI_DEBUG = 1.
3500
35012003-10-14 Alan Modra <amodra@bigpond.net.au>
3502
3503 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
3504 and align.
3505
35062003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3507
3508 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
3509 FFI_MIPS_O32 for O32 ABI.
3510
35112003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
3512
3513 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
3514 SPARC64. Cleanup whitespaces.
3515
35162003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
3517
3518 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
3519 strongarm, xscale. Cleanup whitespaces.
3520 * testsuite/libffi.call/closure_fn1.c: Likewise.
3521 * testsuite/libffi.call/closure_fn2.c: Likewise.
3522 * testsuite/libffi.call/closure_fn3.c: Likewise.
3523 * testsuite/libffi.call/cls_12byte.c: Likewise.
3524 * testsuite/libffi.call/cls_16byte.c: Likewise.
3525 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3526 * testsuite/libffi.call/cls_20byte.c: Likewise.
3527 * testsuite/libffi.call/cls_24byte.c: Likewise.
3528 * testsuite/libffi.call/cls_2byte.c: Likewise.
3529 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3530 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3531 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3532 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3533 * testsuite/libffi.call/cls_4byte.c: Likewise.
3534 * testsuite/libffi.call/cls_5byte.c: Likewise.
3535 * testsuite/libffi.call/cls_6byte.c: Likewise.
3536 * testsuite/libffi.call/cls_7byte.c: Likewise.
3537 * testsuite/libffi.call/cls_8byte.c: Likewise.
3538 * testsuite/libffi.call/cls_double.c: Likewise.
3539 * testsuite/libffi.call/cls_float.c: Likewise.
3540 * testsuite/libffi.call/cls_uchar.c: Likewise.
3541 * testsuite/libffi.call/cls_uint.c: Likewise.
3542 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3543 * testsuite/libffi.call/cls_ushort.c: Likewise.
3544 * testsuite/libffi.call/nested_struct.c: Likewise.
3545 * testsuite/libffi.call/nested_struct1.c: Likewise.
3546 * testsuite/libffi.call/problem1.c: Likewise.
3547 * testsuite/libffi.special/unwindtest.cc: Likewise.
3548 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
3549
35502003-09-18 David Edelsohn <edelsohn@gnu.org>
3551
3552 * src/powerpc/aix.S: Cleanup whitespaces.
3553 * src/powerpc/aix_closure.S: Likewise.
3554
35552003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
3556
3557 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
3558 * src/powerpc/darwin_closure.S: Likewise.
3559 * src/powerpc/ffi_darwin.c: Likewise.
3560
35612003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
3562 David Edelsohn <edelsohn@gnu.org>
3563
3564 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
3565 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
3566 parameter stack.
3567 * src/powerpc/darwin_closure.S: Likewise.
3568 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
3569 according to the Darwin/AIX ABI.
3570 (ffi_prep_cif_machdep): Likewise.
3571 (ffi_closure_helper_DARWIN): Likewise.
3572 Remove the outgoing parameter stack logic. Simplify the evaluation
3573 of the different CASE types.
3574 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
3575 statement in the trampoline code.
3576
35772003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
3578
3579 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
3580 for the register size.
3581 (ffi_closure_helper_SYSV): Handle the structure return value
3582 address correctly.
3583 (ffi_closure_helper_SYSV): Return the appropriate type when
3584 the registers are used for the structure return value.
3585 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
3586 the 64-bit return value. Update copyright years.
3587
35882003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3589
3590 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
3591 srcdir for ffi_mips.h.
3592
35932003-09-12 Alan Modra <amodra@bigpond.net.au>
3594
3595 * src/prep_cif.c (initialize_aggregate): Include tail padding in
3596 structure size.
3597 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
3598 placement of float result.
3599 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
3600 cast of "resp" for big-endian 64 bit machines.
3601
36022003-09-11 Alan Modra <amodra@bigpond.net.au>
3603
3604 * src/types.c (double, longdouble): Merge identical SH and ARM
3605 typedefs, and add POWERPC64.
3606 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
3607 struct split over gpr and rest.
3608 (ffi_prep_cif_machdep): Correct intarg_count for structures.
3609 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
3610
36112003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
3612
3613 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
3614 passing correctly.
3615
36162003-09-09 Alan Modra <amodra@bigpond.net.au>
3617
3618 * configure: Regenerate.
3619
36202003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
3621
3622 * Makefile.am: Remove build rules for ffitest.
3623 * Makefile.in: Rebuilt.
3624
36252003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
3626
3627 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
3628 about implicit declaration of abort().
3629
36302003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
3631
3632 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
3633 * Makefile.in: Rebuilt.
3634 * configure.in: Add dejagnu test framework.
3635 * configure: Rebuilt.
3636
3637 * testsuite/Makefile.am: New file.
3638 * testsuite/Makefile.in: Built
3639 * testsuite/lib/libffi-dg.exp: New file.
3640 * testsuite/config/default.exp: Likewise.
3641 * testsuite/libffi.call/call.exp: Likewise.
3642 * testsuite/libffi.call/ffitest.h: Likewise.
3643 * testsuite/libffi.call/closure_fn0.c: Likewise.
3644 * testsuite/libffi.call/closure_fn1.c: Likewise.
3645 * testsuite/libffi.call/closure_fn2.c: Likewise.
3646 * testsuite/libffi.call/closure_fn3.c: Likewise.
3647 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3648 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3649 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3650 * testsuite/libffi.call/cls_2byte.c: Likewise.
3651 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3652 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3653 * testsuite/libffi.call/cls_4byte.c: Likewise.
3654 * testsuite/libffi.call/cls_5byte.c: Likewise.
3655 * testsuite/libffi.call/cls_6byte.c: Likewise.
3656 * testsuite/libffi.call/cls_7byte.c: Likewise.
3657 * testsuite/libffi.call/cls_8byte.c: Likewise.
3658 * testsuite/libffi.call/cls_12byte.c: Likewise.
3659 * testsuite/libffi.call/cls_16byte.c: Likewise.
3660 * testsuite/libffi.call/cls_20byte.c: Likewise.
3661 * testsuite/libffi.call/cls_24byte.c: Likewise.
3662 * testsuite/libffi.call/cls_double.c: Likewise.
3663 * testsuite/libffi.call/cls_float.c: Likewise.
3664 * testsuite/libffi.call/cls_uchar.c: Likewise.
3665 * testsuite/libffi.call/cls_uint.c: Likewise.
3666 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3667 * testsuite/libffi.call/cls_ushort.c: Likewise.
3668 * testsuite/libffi.call/float.c: Likewise.
3669 * testsuite/libffi.call/float1.c: Likewise.
3670 * testsuite/libffi.call/float2.c: Likewise.
3671 * testsuite/libffi.call/many.c: Likewise.
3672 * testsuite/libffi.call/many_win32.c: Likewise.
3673 * testsuite/libffi.call/nested_struct.c: Likewise.
3674 * testsuite/libffi.call/nested_struct1.c: Likewise.
3675 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
3676 * testsuite/libffi.call/problem1.c: Likewise.
3677 * testsuite/libffi.call/promotion.c: Likewise.
3678 * testsuite/libffi.call/return_ll.c: Likewise.
3679 * testsuite/libffi.call/return_sc.c: Likewise.
3680 * testsuite/libffi.call/return_uc.c: Likewise.
3681 * testsuite/libffi.call/strlen.c: Likewise.
3682 * testsuite/libffi.call/strlen_win32.c: Likewise.
3683 * testsuite/libffi.call/struct1.c: Likewise.
3684 * testsuite/libffi.call/struct2.c: Likewise.
3685 * testsuite/libffi.call/struct3.c: Likewise.
3686 * testsuite/libffi.call/struct4.c: Likewise.
3687 * testsuite/libffi.call/struct5.c: Likewise.
3688 * testsuite/libffi.call/struct6.c: Likewise.
3689 * testsuite/libffi.call/struct7.c: Likewise.
3690 * testsuite/libffi.call/struct8.c: Likewise.
3691 * testsuite/libffi.call/struct9.c: Likewise.
3692 * testsuite/libffi.special/special.exp: New file.
3693 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3694 * testsuite/libffi.special/unwindtest.cc: Likewise.
3695
3696
36972003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
3698
3699 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
3700 copyright years.
3701
37022003-08-02 Alan Modra <amodra@bigpond.net.au>
3703
3704 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
3705 structure passing.
3706 (ffi_closure_helper_LINUX64): Likewise.
3707 * src/powerpc/linux64.S: Remove code writing to parm save area.
3708 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
3709 address in lr from ffi_closure_helper_LINUX64 call to calculate
3710 table address. Optimize function tail.
3711
37122003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
3713
3714 * src/sparc/ffi.c: Handle all floating point registers.
3715 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
3716
37172003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
3718
3719 * README: Note that libffi is not part of GCC. Update the project
3720 URL and status.
3721
37222003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3723
3724 * src/powerpc/ppc_closure.S: Include ffi.h.
3725
37262003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3727
3728 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
3729 Use C style comments.
3730
37312003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3732
3733 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
3734 * Makefile.in: Regenerate.
3735 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
3736 * configure: Regenerate.
3737 * include/ffi.h.in: Add SHmedia support.
3738 * src/sh64/ffi.c: New file.
3739 * src/sh64/sysv.S: New file.
3740
37412003-05-16 Jakub Jelinek <jakub@redhat.com>
3742
3743 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
3744 should be read-only.
3745 * configure: Rebuilt.
3746 * fficonfig.h.in: Rebuilt.
3747 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
3748 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
3749 * src/powerpc/linux64.S: Likewise.
3750 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
3751 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
3752 if -fpic/-fPIC/-mrelocatable.
3753 * src/powerpc/powerpc_closure.S: Likewise.
3754 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
3755 #write in .eh_frame flags.
3756 * src/sparc/v9.S: Likewise.
3757 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
3758 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
3759 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
3760
37612003-05-07 Jeff Sturm <jsturm@one-point.com>
3762
3763 Fixes PR bootstrap/10656
3764 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
3765 support for .register pseudo-op.
3766 * src/sparc/v8.S: Use it.
3767 * fficonfig.h.in: Rebuilt.
3768 * configure: Rebuilt.
3769
37702003-04-18 Jakub Jelinek <jakub@redhat.com>
3771
3772 * include/ffi.h.in (POWERPC64): Define if 64-bit.
3773 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
3774 Make it the default on POWERPC64.
3775 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
3776 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
3777 * configure: Rebuilt.
3778 * src/powerpc/ffi.c (hidden): Define.
3779 (ffi_prep_args_SYSV): Renamed from
3780 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
3781 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
3782 ASM_NEEDS_REGISTERS64): New.
3783 (ffi_prep_args64): New function.
3784 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
3785 (ffi_call): Likewise.
3786 (ffi_prep_closure): Likewise.
3787 (flush_icache): Surround by #ifndef POWERPC64.
3788 (ffi_dblfl): New union type.
3789 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
3790 (ffi_closure_helper_LINUX64): New function.
3791 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
3792 __powerpc64__.
3793 * src/powerpc/sysv.S: Likewise.
3794 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
3795 * src/powerpc/linux64.S: New file.
3796 * src/powerpc/linux64_closure.S: New file.
3797 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
3798 src/powerpc/linux64_closure.S.
3799 (TARGET_SRC_POWERPC): Likewise.
3800
3801 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
3802 closure_test_fn3): Fix result printing on big-endian 64-bit
3803 machines.
3804 (main): Print tst2_arg instead of uninitialized tst2_result.
3805
3806 * src/ffitest.c (main): Hide what closure pointer really points to
3807 from the compiler.
3808
38092003-04-16 Richard Earnshaw <rearnsha@arm.com>
3810
3811 * configure.in (arm-*-netbsdelf*): Add configuration.
3812 (configure): Regenerated.
3813
38142003-04-04 Loren J. Rittle <ljrittle@acm.org>
3815
3816 * include/Makefile.in: Regenerate.
3817
38182003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3819
3820 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
3821 bit mode.
3822 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
3823 Receive closure pointer through parameter, read args using
3824 __builtin_dwarf_cfa.
3825 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
3826
38272003-03-12 Andreas Schwab <schwab@suse.de>
3828
3829 * configure.in: Avoid trailing /. in toolexeclibdir.
3830 * configure: Rebuilt.
3831
38322003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
3833
3834 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
3835
38362003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
3837
3838 * libffi/src/powerpc/darwin_closure.S:
3839 Fix alignement bug, allocate 8 bytes for the result.
3840 * libffi/src/powerpc/aix_closure.S:
3841 Likewise.
3842 * libffi/src/powerpc/ffi_darwin.c:
3843 Update stackframe description for aix/darwin_closure.S.
3844
38452003-02-06 Jakub Jelinek <jakub@redhat.com>
3846
3847 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
3848 attribute.
3849
38502003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
3851 Andreas Schwab <schwab@suse.de>
3852
3853 * configure.in: Adjust command to source config-ml.in to account
3854 for changes to the libffi_basedir definition.
3855 (libffi_basedir): Remove ${srcdir} from value and include trailing
3856 slash if nonempty.
3857
3858 * configure: Regenerate.
3859
38602003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3861
3862 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
3863
38642003-01-28 Andrew Haley <aph@redhat.com>
3865
3866 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
3867 * src/x86/ffi64.c (ffi_prep_closure): New.
3868 (ffi_closure_UNIX64_inner): New.
3869 * src/x86/unix64.S (ffi_closure_UNIX64): New.
3870
38712003-01-27 Alexandre Oliva <aoliva@redhat.com>
3872
3873 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
3874 Remove USE_LIBDIR conditional.
3875 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
3876 * Makefile.in, configure: Rebuilt.
3877
38782003-01027 David Edelsohn <edelsohn@gnu.org>
3879
3880 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
3881 * Makefile.in: Regenerate.
3882
38832003-01-22 Andrew Haley <aph@redhat.com>
3884
3885 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
3886 unwind info.
3887
38882003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3889
3890 * src/powerpc/darwin.S: Add unwind info.
3891 * src/powerpc/darwin_closure.S: Likewise.
3892
38932003-01-14 Andrew Haley <aph@redhat.com>
3894
3895 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
3896 (ffi_prep_cif_machdep): Likewise.
3897 * src/x86/unix64.S: Add unwind info.
3898
38992003-01-14 Andreas Jaeger <aj@suse.de>
3900
3901 * src/ffitest.c (main): Only use ffi_closures if those are
3902 supported.
3903
39042003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
3905
3906 * libffi/src/ffitest.c
3907 add closure testcases
3908
39092003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
3910
3911 * libffi/src/powerpc/ffi.c
3912 fix alignment bug for float (4 byte aligned iso 8 byte)
3913
39142003-01-09 Geoffrey Keating <geoffk@apple.com>
3915
3916 * src/powerpc/ffi_darwin.c: Remove RCS version string.
3917 * src/powerpc/darwin.S: Remove RCS version string.
3918
39192003-01-03 Jeff Sturm <jsturm@one-point.com>
3920
3921 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
3922 * src/ffitest.c (main): Use static storage for closure.
3923 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
3924 * src/sparc/v8.S (ffi_closure_v8): New.
3925 * src/sparc/v9.S (ffi_closure_v9): New.
3926
39272002-11-10 Ranjit Mathew <rmathew@hotmail.com>
3928
3929 * include/ffi.h.in: Added FFI_STDCALL ffi_type
3930 enumeration for X86_WIN32.
3931 * src/x86/win32.S: Added ffi_call_STDCALL function
3932 definition.
3933 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
3934 switch cases for recognising FFI_STDCALL and
3935 calling ffi_call_STDCALL if target is X86_WIN32.
3936 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
3937 stdcall versions of the "my_strlen" and "many"
3938 test functions (for X86_WIN32).
3939 Added test cases to test stdcall invocation using
3940 these functions.
3941
39422002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
3943
3944 * src/sh/sysv.S: Add DWARF2 unwind info.
3945
39462002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
3947
3948 * src/s390/sysv.S (.eh_frame section): Make section read-only.
3949
39502002-11-26 Jim Wilson <wilson@redhat.com>
3951
3952 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
3953
39542002-11-23 H.J. Lu <hjl@gnu.org>
3955
3956 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
3957 Include ../config/accross.m4.
3958 * aclocal.m4; Rebuild.
3959 * configure: Likewise.
3960
39612002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
3962
3963 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
3964
39652002-11-11 DJ Delorie <dj@redhat.com>
3966
3967 * configure.in: Look for common files in the right place.
3968
39692002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
3970
3971 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
3972 raw data as _Jv_word values, not ffi_raw.
3973 (ffi_java_ptrarray_to_raw): Likewise.
3974 (ffi_java_rvalue_to_raw): New function.
3975 (ffi_java_raw_call): Call it.
3976 (ffi_java_raw_to_rvalue): New function.
3977 (ffi_java_translate_args): Call it.
3978 * src/ffitest.c (closure_test_fn): Interpret return value
3979 as ffi_arg, not int.
3980 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
3981 FFI_TYPE_POINTER case.
3982 (ffi_closure_helper_SYSV): Likewise. Also, assume return
3983 values extended to word size.
3984
39852002-10-02 Andreas Jaeger <aj@suse.de>
3986
3987 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
3988
39892002-10-01 Bo Thorsen <bo@smetana.suse.de>
3990
3991 * include/ffi.h.in: Fix i386 win32 compilation.
3992
39932002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
3994
3995 * configure.in: Add s390x-*-linux-* target.
3996 * configure: Regenerate.
3997 * include/ffi.h.in: Define S390X for s390x targets.
3998 (FFI_CLOSURES): Define for s390/s390x.
3999 (FFI_TRAMPOLINE_SIZE): Likewise.
4000 (FFI_NATIVE_RAW_API): Likewise.
4001 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
4002 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
4003 * src/s390/ffi.c: Major rework of existing code. Add support for
4004 s390x targets. Add closure support.
4005 * src/s390/sysv.S: Likewise.
4006
40072002-09-29 Richard Earnshaw <rearnsha@arm.com>
4008
4009 * src/arm/sysv.S: Fix typo.
4010
40112002-09-28 Richard Earnshaw <rearnsha@arm.com>
4012
4013 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
4014 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
4015 (ffi_call_SYSV): Handle soft-float.
4016
40172002-09-27 Bo Thorsen <bo@suse.de>
4018
4019 * include/ffi.h.in: Fix multilib x86-64 support.
4020
40212002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4022
4023 * Makefile.am (all-multi): Fix multilib parallel build.
4024
40252002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
4026
4027 * configure.in (sh[34]*-*-linux*): Add brackets.
4028 * configure: Regenerate.
4029
40302002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
4031
4032 * Makefile.am: Add SH support.
4033 * Makefile.in: Regenerate.
4034 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
4035 * configure: Regenerate.
4036 * include/ffi.h.in: Add SH support.
4037 * src/sh/ffi.c: New file.
4038 * src/sh/sysv.S: New file.
4039 * src/types.c: Add SH support.
4040
40412002-07-16 Bo Thorsen <bo@suse.de>
4042
4043 * src/x86/ffi64.c: New file that adds x86-64 support.
4044 * src/x86/unix64.S: New file that handles argument setup for
4045 x86-64.
4046 * src/x86/sysv.S: Don't use this on x86-64.
4047 * src/x86/ffi.c: Don't use this on x86-64.
4048 Remove unused vars.
4049 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
4050 for x86-64.
4051 * src/ffitest.c (struct6): New test that tests a special case in
4052 the x86-64 ABI.
4053 (struct7): Likewise.
4054 (struct8): Likewise.
4055 (struct9): Likewise.
4056 (closure_test_fn): Silence warning about this when it's not used.
4057 (main): Add the new tests.
4058 (main): Fix a couple of wrong casts and silence some compiler warnings.
4059 * include/ffi.h.in: Add x86-64 ABI definition.
4060 * fficonfig.h.in: Regenerate.
4061 * Makefile.am: Add x86-64 support.
4062 * configure.in: Likewise.
4063 * Makefile.in: Regenerate.
4064 * configure: Likewise.
4065
40662002-06-24 Bo Thorsen <bo@suse.de>
4067
4068 * src/types.c: Merge settings for similar architectures.
4069 Add x86-64 sizes and alignments.
4070
40712002-06-23 Bo Thorsen <bo@suse.de>
4072
4073 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
4074 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
4075 * src/mips/ffi.c (ffi_prep_args): Likewise.
4076 * src/m68k/ffi.c (ffi_prep_args): Likewise.
4077
40782002-07-18 H.J. Lu (hjl@gnu.org)
4079
4080 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
4081 (libffi_la_SOURCES): Support MIPS_LINUX.
4082 (libffi_convenience_la_SOURCES): Likewise.
4083 * Makefile.in: Regenerated.
4084
4085 * configure.in (mips64*-*): Skip.
4086 (mips*-*-linux*): New.
4087 * configure: Regenerated.
4088
4089 * src/mips/ffi.c: Include <sgidefs.h>.
4090
40912002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
4092
4093 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
4094
40952002-05-27 Roger Sayle <roger@eyesopen.com>
4096
4097 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
4098
40992002-05-27 Bo Thorsen <bo@suse.de>
4100
4101 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
4102 fix formatting.
4103
41042002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
4105
4106 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
4107 beginning of function (for older apple cc).
4108
41092002-05-08 Alexandre Oliva <aoliva@redhat.com>
4110
4111 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
4112 script entry, and set LD to it when configuring multilibs.
4113 * configure: Rebuilt.
4114
41152002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
4116
4117 * configure.in (sparc64-*-netbsd*): Add target.
4118 (sparc-*-netbsdelf*): Likewise.
4119 * configure: Regenerate.
4120
41212002-04-28 David S. Miller <davem@redhat.com>
4122
4123 * configure.in, configure: Fix SPARC test in previous change.
4124
41252002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
4126
4127 * Makefile.am: Add Linux for S/390 support.
4128 * Makefile.in: Regenerate.
4129 * configure.in: Add Linux for S/390 support.
4130 * configure: Regenerate.
4131 * include/ffi.h.in: Add Linux for S/390 support.
4132 * src/s390/ffi.c: New file from libffi CVS tree.
4133 * src/s390/sysv.S: New file from libffi CVS tree.
4134
41352002-04-28 Jakub Jelinek <jakub@redhat.com>
4136
4137 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
4138 %r_disp32().
4139 * src/sparc/v8.S: Use it.
4140 * src/sparc/v9.S: Likewise.
4141 * fficonfig.h.in: Rebuilt.
4142 * configure: Rebuilt.
4143
41442002-04-08 Hans Boehm <Hans_Boehm@hp.com>
4145
4146 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
4147 correctly.
4148 * src/ia64/unix.S: Add unwind information. Fix comments.
4149 Save sp in a way that's compatible with unwind info.
4150 (ffi_call_unix): Correctly restore sp in all cases.
4151 * src/ia64/ffi.c: Add, fix comments.
4152
41532002-04-08 Jakub Jelinek <jakub@redhat.com>
4154
4155 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
4156
41572002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
4158
4159 * configure.in (alpha*-*-netbsd*): Add target.
4160 * configure: Regenerate.
4161
41622002-04-04 Jeff Sturm <jsturm@one-point.com>
4163
4164 * src/sparc/v8.S: Add unwind info.
4165 * src/sparc/v9.S: Likewise.
4166
41672002-03-30 Krister Walfridsson <cato@df.lth.se>
4168
4169 * configure.in: Enable i*86-*-netbsdelf*.
4170 * configure: Rebuilt.
4171
41722002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
4173
4174 PR other/2620
4175 * src/mips/n32.s: Delete
4176 * src/mips/o32.s: Delete
4177
41782002-03-21 Loren J. Rittle <ljrittle@acm.org>
4179
4180 * configure.in: Enable alpha*-*-freebsd*.
4181 * configure: Rebuilt.
4182
41832002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4184
4185 * Makefile.am: libfficonvenience -> libffi_convenience.
4186 * Makefile.in: Rebuilt.
4187
4188 * Makefile.am: Define ffitest_OBJECTS.
4189 * Makefile.in: Rebuilt.
4190
41912002-03-07 Andreas Tobler <toa@pop.agri.ch>
4192 David Edelsohn <edelsohn@gnu.org>
4193
4194 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
4195 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
4196 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
4197 * Makefile.in: Regenerate.
4198 * include/ffi.h.in: Add AIX and Darwin closure definitions.
4199 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
4200 (flush_icache, flush_range): New functions.
4201 (ffi_closure_helper_DARWIN): New function.
4202 * src/powerpc/aix_closure.S: New file.
4203 * src/powerpc/darwin_closure.S: New file.
4204
42052002-02-24 Jeff Sturm <jsturm@one-point.com>
4206
4207 * include/ffi.h.in: Add typedef for ffi_arg.
4208 * src/ffitest.c (main): Declare rint with ffi_arg.
4209
42102002-02-21 Andreas Tobler <toa@pop.agri.ch>
4211
4212 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
4213 number of GPRs for floating-point arguments.
4214
42152002-01-31 Anthony Green <green@redhat.com>
4216
4217 * configure: Rebuilt.
4218 * configure.in: Replace CHECK_SIZEOF and endian tests with
4219 cross-compiler friendly macros.
4220 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
4221 macros.
4222
42232002-01-18 David Edelsohn <edelsohn@gnu.org>
4224
4225 * src/powerpc/darwin.S (_ffi_call_AIX): New.
4226 * src/powerpc/aix.S (ffi_call_DARWIN): New.
4227
42282002-01-17 David Edelsohn <edelsohn@gnu.org>
4229
4230 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
4231 (TARGET_SRC_POWERPC_AIX): New.
4232 (POWERPC_AIX): New stanza.
4233 * Makefile.in: Regenerate.
4234 * configure.in: Add AIX case.
4235 * configure: Regenerate.
4236 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
4237 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
4238 size. Fix "long double" support.
4239 (ffi_call): Add FFI_AIX case.
4240 * src/powerpc/aix.S: New.
4241
42422001-10-09 John Hornkvist <john@toastedmarshmallow.com>
4243
4244 Implement Darwin PowerPC ABI.
4245 * configure.in: Handle powerpc-*-darwin*.
4246 * Makefile.am: Set source files for POWERPC_DARWIN.
4247 * configure: Rebuilt.
4248 * Makefile.in: Rebuilt.
4249 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
4250 POWERPC_DARWIN.
4251 * src/powerpc/darwin.S: New file.
4252 * src/powerpc/ffi_darwin.c: New file.
4253
42542001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
4255
4256 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
4257
42582001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4259
4260 * src/x86/sysv.S: Avoid gas-only .balign directive.
4261 Use C style comments.
4262
42632001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4264
4265 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
4266 Fixes PR bootstrap/3563.
4267
42682001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4269
4270 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
4271
42722001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4273
4274 * configure.in: Recognize sparc*-sun-* host.
4275 * configure: Regenerate.
4276
42772001-06-06 Andrew Haley <aph@redhat.com>
4278
4279 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
4280
42812001-06-03 Andrew Haley <aph@redhat.com>
4282
4283 * src/alpha/osf.S: Add unwind info.
4284 * src/powerpc/sysv.S: Add unwind info.
4285 * src/powerpc/ppc_closure.S: Likewise.
4286
42872000-05-31 Jeff Sturm <jsturm@one-point.com>
4288
4289 * configure.in: Fix AC_ARG_ENABLE usage.
4290 * configure: Rebuilt.
4291
42922001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4293
4294 * configure.in: Remove warning about beta code.
4295 * configure: Rebuilt.
4296
42972001-04-25 Hans Boehm <Hans_Boehm@hp.com>
4298
4299 * src/ia64/unix.S: Restore stack pointer when returning from
4300 ffi_closure_UNIX.
4301 * src/ia64/ffi.c: Fix typo in comment.
4302
43032001-04-18 Jim Wilson <wilson@redhat.com>
4304
4305 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
4306 to eliminate RAW DV.
4307
43082001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
4309
4310 * Makefile.am: Make a libtool convenience library.
4311 * Makefile.in: Rebuilt.
4312
43132001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
4314
4315 * configure.in: Use different syntax for subdirectory creation.
4316 * configure: Rebuilt.
4317
43182001-03-27 Jon Beniston <jon@beniston.com>
4319
4320 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
4321 * configure: Rebuilt.
4322 * Makefile.am: Added X86_WIN32 target support.
4323 * Makefile.in: Rebuilt.
4324
4325 * include/ffi.h.in: Added X86_WIN32 target support.
4326
4327 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
4328 * src/types.c: Added X86_WIN32 target support.
4329
4330 * src/x86/win32.S: New file. Based on sysv.S, but with EH
4331 stuff removed and made to work with CygWin's gas.
4332
43332001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
4334
4335 * configure.in: Make target subdirectory in build dir.
4336 * Makefile.am: Override suffix based rules to specify correct output
4337 subdirectory.
4338 * Makefile.in: Rebuilt.
4339 * configure: Rebuilt.
4340
43412001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
4342
4343 * src/powerpc/ppc_closure.S: New file.
4344 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
4345 involving long long and register pairs.
4346 (ffi_prep_closure): New function.
4347 (flush_icache): Likewise.
4348 (ffi_closure_helper_SYSV): Likewise.
4349 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
4350 (FFI_TRAMPOLINE_SIZE): Likewise.
4351 (FFI_NATIVE_RAW_API): Likewise.
4352 * Makefile.in: Rebuilt.
4353 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
4354 (TARGET_SRC_POWERPC): Likewise.
4355
43562001-03-19 Tom Tromey <tromey@redhat.com>
4357
4358 * Makefile.in: Rebuilt.
4359 * Makefile.am (ffitest_LDFLAGS): New macro.
4360
43612001-03-02 Nick Clifton <nickc@redhat.com>
4362
4363 * include/ffi.h.in: Remove RCS ident string.
4364 * include/ffi_mips.h: Remove RCS ident string.
4365 * src/debug.c: Remove RCS ident string.
4366 * src/ffitest.c: Remove RCS ident string.
4367 * src/prep_cif.c: Remove RCS ident string.
4368 * src/types.c: Remove RCS ident string.
4369 * src/alpha/ffi.c: Remove RCS ident string.
4370 * src/alpha/osf.S: Remove RCS ident string.
4371 * src/arm/ffi.c: Remove RCS ident string.
4372 * src/arm/sysv.S: Remove RCS ident string.
4373 * src/mips/ffi.c: Remove RCS ident string.
4374 * src/mips/n32.S: Remove RCS ident string.
4375 * src/mips/o32.S: Remove RCS ident string.
4376 * src/sparc/ffi.c: Remove RCS ident string.
4377 * src/sparc/v8.S: Remove RCS ident string.
4378 * src/sparc/v9.S: Remove RCS ident string.
4379 * src/x86/ffi.c: Remove RCS ident string.
4380 * src/x86/sysv.S: Remove RCS ident string.
4381
43822001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
4383
4384 * include/ffi.h.in: Change sourceware.cygnus.com references to
4385 gcc.gnu.org.
4386
43872000-12-09 Richard Henderson <rth@redhat.com>
4388
4389 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
4390 (ffi_closure_osf_inner): Index rather than increment avalue
4391 and arg_types. Give ffi_closure_osf the raw return value type.
4392 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
4393 promotion.
4394
43952000-12-07 Richard Henderson <rth@redhat.com>
4396
4397 * src/raw_api.c (ffi_translate_args): Fix typo.
4398 (ffi_prep_closure): Likewise.
4399
4400 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
4401 FFI_TRAMPOLINE_SIZE.
4402 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
4403 cif->bytes for new ffi_call_osf implementation.
4404 (ffi_prep_args): Absorb into ...
4405 (ffi_call): ... here. Do all stack allocation here and
4406 avoid a callback function.
4407 (ffi_prep_closure, ffi_closure_osf_inner): New.
4408 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
4409 (ffi_closure_osf): New.
4410
44112000-09-10 Alexandre Oliva <aoliva@redhat.com>
4412
4413 * config.guess, config.sub, install-sh: Removed.
4414 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
4415 * Makefile.in: Rebuilt.
4416
4417 * acinclude.m4: Include libtool macros from the top level.
4418 * aclocal.m4, configure: Rebuilt.
4419
44202000-08-22 Alexandre Oliva <aoliva@redhat.com>
4421
4422 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
4423 * configure: Rebuilt.
4424
44252000-05-11 Scott Bambrough <scottb@netwinder.org>
4426
4427 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
4428 memory correctly. Use conditional instructions, not branches where
4429 possible.
4430
44312000-05-04 Tom Tromey <tromey@cygnus.com>
4432
4433 * configure: Rebuilt.
4434 * configure.in: Match `arm*-*-linux-*'.
4435 From Chris Dornan <cdornan@arm.com>.
4436
44372000-04-28 Jakub Jelinek <jakub@redhat.com>
4438
4439 * Makefile.am (SUBDIRS): Define.
4440 (AM_MAKEFLAGS): Likewise.
4441 (Multilib support.): Add section.
4442 * Makefile.in: Rebuilt.
4443 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
4444 New variables. Set for gcc using -print-multi-lib. Export them
4445 to libtool.
4446 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
4447 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
4448 for -shared links.
4449 (extra_compiler_flags_value, extra_compiler_flags): Check these
4450 for extra compiler options which need to be passed down in
4451 compiler_flags.
4452
44532000-04-16 Anthony Green <green@redhat.com>
4454
4455 * configure: Rebuilt.
4456 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
4457
44582000-04-14 Jakub Jelinek <jakub@redhat.com>
4459
4460 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
4461 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
4462 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
4463 Replace all void * sizeofs with sizeof(int).
4464 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
4465 different than DOUBLE.
4466 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
4467 (ffi_prep_args_v9): New function.
4468 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
4469 (ffi_V9_return_struct): New function.
4470 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
4471 32bit code (not yet cross-arch calls).
4472 * src/sparc/v8.S: Add struct return delay nop.
4473 Handle long long.
4474 * src/sparc/v9.S: New file.
4475 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
4476 is used on sparc64 only for structures larger than 32 bytes.
4477 Pass by reference for structures is done for structure arguments
4478 larger than 16 bytes.
4479 * src/ffitest.c (main): Use 64bit rint on sparc64.
4480 Run long long tests on sparc.
4481 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
4482 sparc64.
4483 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
4484 on sparc64.
4485 * configure.in (sparc-*-linux*): New supported target.
4486 (sparc64-*-linux*): Likewise.
4487 * configure: Rebuilt.
4488 * Makefile.am: Add v9.S to SPARC files.
4489 * Makefile.in: Likewise.
4490 (LINK): Surround $(CCLD) into double quotes, so that multilib
4491 compiles work correctly.
4492
44932000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
4494
4495 * configure: Rebuilt.
4496 * configure.in: (i*86-*-solaris*): New libffi target. Patch
4497 proposed by Bryce McKinlay.
4498
44992000-03-20 Tom Tromey <tromey@cygnus.com>
4500
4501 * Makefile.in: Hand edit for java_raw_api.lo.
4502
45032000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
4504
4505 * config.guess, config.sub: Update from the gcc tree.
4506 Fix for PR libgcj/168.
4507
45082000-03-03 Tom Tromey <tromey@cygnus.com>
4509
4510 * Makefile.in: Fixed ia64 by hand.
4511
4512 * configure: Rebuilt.
4513 * configure.in (--enable-multilib): New option.
4514 (libffi_basedir): New subst.
4515 (AC_OUTPUT): Added multilib code.
4516
45172000-03-02 Tom Tromey <tromey@cygnus.com>
4518
4519 * Makefile.in: Rebuilt.
4520 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
4521 directory name.
4522
45232000-02-25 Hans Boehm <boehm@acm.org>
4524
4525 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
4526 files.
4527 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
4528 list.
4529 (ffi_prep_raw_closure): Use ffi_translate_args, not
4530 ffi_closure_translate.
4531 * src/java_raw_api.c: New file.
4532 * src/ffitest.c (closure_test_fn): New function.
4533 (main): Define `rint' as long long on IA64. Added new test when
4534 FFI_CLOSURES is defined.
4535 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
4536 (ffi_abi): Recognize IA64.
4537 (ffi_raw): Added `flt' field.
4538 Added "Java raw API" code.
4539 * configure.in: Recognize ia64.
4540 * Makefile.am (TARGET_SRC_IA64): New macro.
4541 (libffi_la_common_SOURCES): Added java_raw_api.c.
4542 (libffi_la_SOURCES): Define in IA64 case.
4543
45442000-01-04 Tom Tromey <tromey@cygnus.com>
4545
4546 * Makefile.in: Rebuilt with newer automake.
4547
45481999-12-31 Tom Tromey <tromey@cygnus.com>
4549
4550 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
4551
45521999-09-01 Tom Tromey <tromey@cygnus.com>
4553
4554 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
4555 undefs.
4556 * fficonfig.h.in: Rebuilt.
4557 * configure: Rebuilt.
4558 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
4559 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
4560 * acconfig.h: Don't #undef PACKAGE or VERSION.
4561
45621999-08-09 Anthony Green <green@cygnus.com>
4563
4564 * include/ffi.h.in: Try to work around messy header problem
4565 with PACKAGE and VERSION.
4566
4567 * configure: Rebuilt.
4568 * configure.in: Change version to 2.00-beta.
4569
4570 * fficonfig.h.in: Rebuilt.
4571 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
4572
4573 * src/x86/ffi.c (ffi_raw_call): Rename.
4574
45751999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
4576
4577 * src/x86/ffi.c (ffi_closure_SYSV): New function.
4578 (ffi_prep_incoming_args_SYSV): Ditto.
4579 (ffi_prep_closure): Ditto.
4580 (ffi_closure_raw_SYSV): Ditto.
4581 (ffi_prep_raw_closure): More ditto.
4582 (ffi_call_raw): Final ditto.
4583
4584 * include/ffi.h.in: Add definitions for closure and raw API.
4585
4586 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
4587 FFI_TYPE_UINT64.
4588
4589 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
4590
4591 * src/raw_api.c: New file.
4592
4593 * include/ffi.h.in (ffi_raw): New type.
4594 (UINT_ARG, SINT_ARG): New defines.
4595 (ffi_closure, ffi_raw_closure): New types.
4596 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
4597
4598 * configure.in: Add check for endianness and sizeof void*.
4599
4600 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
4601 instead of directly.
4602
4603 * configure: Rebuilt.
4604
4605Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
4606
4607 * configure.in: Add x86 and powerpc BeOS configurations.
4608 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
4609
46101999-05-09 Anthony Green <green@cygnus.com>
4611
4612 * configure.in: Add warning about this being beta code.
4613 Remove src/Makefile.am from the picture.
4614 * configure: Rebuilt.
4615
4616 * Makefile.am: Move logic from src/Makefile.am. Add changes
4617 to support libffi as a target library.
4618 * Makefile.in: Rebuilt.
4619
4620 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
4621 Upgraded to new autoconf, automake, libtool.
4622
4623 * README: Tweaks.
4624
4625 * LICENSE: Update copyright date.
4626
4627 * src/Makefile.am, src/Makefile.in: Removed.
4628
46291998-11-29 Anthony Green <green@cygnus.com>
4630
4631 * include/ChangeLog: Removed.
4632 * src/ChangeLog: Removed.
4633 * src/mips/ChangeLog: Removed.
4634 * src/sparc/ChangeLog: Remboved.
4635 * src/x86/ChangeLog: Removed.
4636
4637 * ChangeLog.v1: Created.