blob: d1936417effc2d1f770dfae6d716c9a5ac81beff [file] [log] [blame]
Anthony Greenc411f142011-11-12 07:32:36 -050012011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
Anthony Green8c019542011-09-06 14:26:32 -04002
Anthony Greenc411f142011-11-12 07:32:36 -05003 * m4/ax_enable_builddir: Change from string comparison to numeric
4 comparison for wc output.
Anthony Green236c9392011-11-12 07:37:40 -05005 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
6 X 10.7.
7 * configure: Rebuilt.
Anthony Greenee6696f2011-08-23 12:30:29 -04008
Anthony Green3d561062011-11-12 07:20:24 -050092011-11-10 Richard Henderson <rth@redhat.com>
Anthony Green049d8382011-08-22 14:50:10 -040010
Anthony Green3d561062011-11-12 07:20:24 -050011 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
12 * configure, aclocal.m4: Rebuild.
13
142011-09-04 Iain Sandoe <iains@gcc.gnu.org>
15
16 PR libffi/49594
17 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
18 helper reference track the architecture pointer size.
19
202011-08-25 Andrew Haley <aph@redhat.com>
21
22 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
23 instructions.
24 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
Anthony Green049d8382011-08-22 14:50:10 -040025
Anthony Greend992ac52011-07-29 17:32:53 -0400262011-07-11 Andrew Haley <aph@redhat.com>
27
28 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
29
302011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31
32 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
33 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
34
352011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
36
37 PR libffi/46660
38 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
39 mips-sgi-irix6*.
40 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
41
422011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
43
44 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
45 PRId8 instead of %hhu, %hhd.
46 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
47 PRIu8): Define.
48 [__sgi__] (PRId8, PRIu8): Define.
49
502011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
51
52 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
53 Define.
54 Use them to handle ELF vs. ECOFF differences.
55 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
56
Anthony Green2d3fb362011-03-30 16:54:42 -0400572011-03-30 Timothy Wall <twall@users.sf.net>
58
59 * src/powerpc/darwin.S: Fix unknown FDE encoding.
60 * src/powerpc/darwin_closure.S: ditto.
61
Anthony Green25416792011-02-25 15:09:13 -0500622011-02-25 Anthony Green <green@moxielogic.com>
63
Anthony Green74ee6ea2011-02-25 15:52:14 -050064 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
65 32-bit ABIs.
Anthony Green25416792011-02-25 15:09:13 -050066
Anthony Green8cf88782011-02-15 15:19:49 -0500672011-02-15 Anthony Green <green@moxielogic.com>
68
69 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
70 * configure: Rebuilt.
71
Anthony Greend992ac52011-07-29 17:32:53 -0400722011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
73
74 * configure: Regenerate.
75
Anthony Green1fbf9dc2011-02-13 08:06:39 -0500762011-02-13 Anthony Green <green@moxielogic.com>
77
78 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
79 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
80 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
81
82 * src/prep_cif.c (initialize_aggregate): Convert assertion into
83 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
84
85 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
86 just return FFI_BAD_ABI when things are wrong.
87 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
88 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
89 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
90 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
91 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
92
Anthony Green1833aa02011-02-11 07:11:04 -0500932011-02-11 Anthony Green <green@moxielogic.com>
94
95 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
96 just return FFI_BAD_ABI when things are wrong.
97
Anthony Green42695e72011-02-09 15:12:35 -0500982011-02-09 Stuart Shelton <srcshelton@gmail.com>
99
100 http://bugs.gentoo.org/show_bug.cgi?id=286911
101 * src/mips/ffitarget.h: Clean up error messages.
102 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
103 ffi_raw*.
104 * include/ffi.h.in: Add pragma for SGI compiler.
105
Anthony Greena6e56b92011-02-09 15:00:42 -05001062011-02-09 Anthony Green <green@moxielogic.com>
107
108 * configure.ac: Add powerpc64-*-darwin* support.
109
Anthony Green0cad4382011-02-09 06:11:46 -05001102011-02-09 Anthony Green <green@moxielogic.com>
Anthony Green11062292011-02-08 19:20:09 -0500111
Anthony Green747d6c32011-02-09 14:56:23 -0500112 * README: Mention Interix.
113
1142011-02-09 Jonathan Callen <abcd@gentoo.org>
115
116 * configure.ac: Add Interix to win32/cygwin/mingw case.
117 * configure: Ditto.
118 * src/closures.c: Treat Interix like Cygwin, instead of as a
119 generic win32.
120
1212011-02-09 Anthony Green <green@moxielogic.com>
122
Anthony Green69dbe842011-02-09 07:38:43 -0500123 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
124 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
125 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
126 (ffi_prep_closure_loc): Check for bad ABI.
127 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
128 (initialize_aggregate): Check for bad types.
Anthony Green0cad4382011-02-09 06:11:46 -0500129
Anthony Green90af15e2011-02-12 12:29:36 -05001302011-02-09 Landon Fuller <landonf@plausible.coop>
Anthony Green0cad4382011-02-09 06:11:46 -0500131
132 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
133 src/arm/trampoline.S.
134 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
135 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
136 * src/arm/ffi.c (ffi_trampoline_table)
137 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
138 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
139 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
140 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
141 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
142 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
143 separately.
144 * src/arm/sysv.S: Handle Apple iOS host.
145 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
Anthony Greenf4983182011-02-09 06:26:46 -0500146 * build-ios.sh: New file.
Anthony Green0cad4382011-02-09 06:11:46 -0500147 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
Anthony Green69dbe842011-02-09 07:38:43 -0500148 * README: Mention ARM iOS.
Anthony Green11062292011-02-08 19:20:09 -0500149
Anthony Greendc411e82011-02-08 10:49:29 -05001502011-02-08 Oren Held <orenhe@il.ibm.com>
151
152 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
153 redefinition of mallinfo on HP-UX.
154
Anthony Green404585d2011-02-08 10:44:36 -05001552011-02-08 Ginn Chen <ginn.chen@oracle.com>
156
157 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
Anthony Green049d8382011-08-22 14:50:10 -0400158 aggregate return ABI. Flush cache.
159 (ffi_prep_closure_loc): Flush cache.
Anthony Green404585d2011-02-08 10:44:36 -0500160
Anthony Green6972a4f2011-02-11 07:32:51 -05001612011-02-11 Anthony Green <green@moxielogic.com>
162
163 From Tom Honermann <tom.honermann@oracle.com>:
164 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
165 AIX. Declare .ffi_prep_args. Insert nops after branch
166 instructions so that the AIX linker can insert TOC reload
167 instructions.
168 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
169
Anthony Greend992ac52011-07-29 17:32:53 -04001702011-02-08 Ed <ed@kdtc.net>
171
172 * src/powerpc/asm.h: Fix grammar nit in comment.
173
Anthony Green89284fe2011-02-08 10:19:19 -05001742011-02-08 Uli Link <ul.mcamafia@linkitup.de>
175
176 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
177
Anthony Greend992ac52011-07-29 17:32:53 -04001782011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
179
180 PR libffi/46661
181 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
182 uintptr_t first.
183 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
184
Anthony Greened2c5182011-02-08 10:10:07 -05001852011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
186
187 * configure.ac: Fix x86 test for pc related relocs.
Anthony Green09f8f312011-02-28 15:36:07 -0500188 * configure: Rebuilt.
Anthony Greened2c5182011-02-08 10:10:07 -0500189
Anthony Green3b836242011-02-08 14:28:59 -05001902011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
191
192 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
193 Handle case when CPU variant does not have long double support.
194 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
195 and cores with soft floating point.
196
1972011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
198
199 * configure.ac: Add mips*-*-rtems* support.
200 * configure: Regenerate.
201 * src/mips/ffitarget.h: Ensure needed constants are available
202 for targets which do not have sgidefs.h.
203
Anthony Green0e584392011-02-08 07:52:40 -05002042011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
205
206 PR target/40125
207 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
208 * configure: Regenerate.
209
2102010-12-18 Iain Sandoe <iains@gcc.gnu.org>
211
212 PR libffi/29152
213 PR libffi/42378
214 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
215 update comments.
216 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
217 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
218 * src/powerpc/darwin.S: Provide Darwin64 implementation,
219 update comments.
220 * src/powerpc/ffi_darwin.c: Likewise.
221
2222010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
223
224 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
225 backslashes.
226 (libffi_cv_as_string_pseudo_op): Likewise.
227 * configure: Regenerate.
228
2292010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
230
231 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
232 (ffi_closure_VFP): Same.
233 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
234 directive.
235
2362010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
237
238 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
239 (PRIuPTR): Define.
240
2412010-11-29 Richard Henderson <rth@redhat.com>
242 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
243
244 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
245 (.eh_frame): Use FDE_ENCODING.
246 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
247
Anthony Green5b9cd522010-11-22 15:19:57 -05002482010-11-22 Jacek Caban <jacek@codeweavers.com>
249
250 * configure.ac: Check for symbol underscores on mingw-w64.
251 * configure: Rebuilt.
252 * src/x86/win64.S: Correctly access extern symbols in respect to
253 underscores.
254
Anthony Green2db72612010-11-21 10:50:56 -05002552010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
256
257 * testsuite/lib/libffi-dg.exp: Rename ...
258 * testsuite/lib/libffi.exp: ... to this.
259 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
260 * libffi/testsuite/libffi.special/special.exp: Likewise.
261
2622010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
263
264 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
265 code, new parameter, and return value. Update comments.
266 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
267 call to layout_vfp_args().
268 (ffi_call_SYSV): Update declaration.
269 (ffi_call_VFP): New declaration.
270 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
271 when ABI is FFI_VFP.
272 (ffi_closure_VFP): New declaration.
273 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
274 ffi_prep_incoming_args_SYSV().
275 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
276 case handling.
277 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
278 construction under VFP hard-float.
279 (rec_vfp_type_p): New function.
280 (vfp_type_p): Same.
281 (place_vfp_arg): Same.
282 (layout_vfp_args): Same.
283 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
284 based on __ARM_PCS_VFP.
285 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
286 fields.
287 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
288 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
289 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
290 direct call. Move function pointer load upwards.
291 (ffi_call_VFP): New function.
292 (ffi_closure_VFP): Same.
293
294 * testsuite/lib/libffi-dg.exp (check-flags): New function.
295 (dg-skip-if): New function.
296 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
297 and compiler options include -mfloat-abi=hard.
298 * testsuite/libffi.call/cls_longdouble_va.c: Same.
299
3002010-10-01 Jakub Jelinek <jakub@redhat.com>
301
302 PR libffi/45677
303 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
304 a multiple of 8.
305 * testsuite/libffi.call/many2.c: New test.
306
3072010-08-20 Mark Wielaard <mjw@redhat.com>
308
309 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
310 returns NULL.
311
3122010-08-09 Andreas Tobler <andreast@fgznet.ch>
313
314 * configure.ac: Add target powerpc64-*-freebsd*.
315 * configure: Regenerate.
316 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
317 -mlong-double-128 only to linux targets.
318 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
319 * testsuite/libffi.call/cls_longdouble.c: Likewise.
320 * testsuite/libffi.call/huge_struct.c: Likewise.
321
Anthony Green00d0b592010-08-05 14:56:53 -04003222010-08-05 Dan Witte <dwitte@mozilla.com>
323
324 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
325 debug CRT when --enable-debug is given.
326 * configure.ac: Define it.
327 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
328
Anthony Greenc1d28ba2010-08-05 08:48:16 -04003292010-08-04 Dan Witte <dwitte@mozilla.com>
330
331 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
332 platforms.
333 * src/x86/ffi.c: Remove redundant ifdef checks.
334 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
335 for X86_ANY so return value space doesn't get added twice.
336
Anthony Greenbda487e2010-08-05 09:02:41 -04003372010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
338
339 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
340
Anthony Greend14178b2010-07-23 09:14:00 -04003412010-07-22 Dan Witte <dwitte@mozilla.com>
342
343 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
344 * src/prep_cif.c: Fix ABI assertion.
345 * src/cris/ffi.c: Ditto.
346
Anthony Greeneaf444e2010-07-10 08:59:09 -04003472010-07-10 Evan Phoenix <evan@fallingsnow.net>
348
349 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
350
Anthony Green5feacad2010-08-05 08:30:04 -04003512010-07-07 Dan Horák <dan@danny.cz>
352
353 * include/ffi.h.in: Protect #define with #ifndef.
354 * src/powerpc/ffitarget.h: Ditto.
355 * src/s390/ffitarget.h: Ditto.
356 * src/sparc/ffitarget.h: Ditto.
357
Anthony Green2db72612010-11-21 10:50:56 -05003582010-07-07 Neil Roberts <neil@linux.intel.com>
359
360 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
361 16-bytes.
362
3632010-07-02 Jakub Jelinek <jakub@redhat.com>
364
365 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
366 * Makefile.in: Regenerated.
367
3682010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
369
370 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
371 output, too.
372 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
373 (libffi_cv_as_string_pseudo_op): Check for .string.
374 * configure: Regenerate.
375 * fficonfig.h.in: Regenerate.
376 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
377
Anthony Green10ea8482010-08-05 08:24:27 -04003782010-05-11 Dan Witte <dwitte@mozilla.com>
379
380 * doc/libffi.tex: Document previous change.
381
3822010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
383
384 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
385
Anthony Green63097412010-05-05 20:14:56 -04003862010-05-05 Michael Kohler <michaelkohler@live.com>
387
388 * src/dlmalloc.c (dlfree): Fix spelling.
389 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
390 * configure.ac: Ditto.
391 * configure: Rebuilt.
392
Anthony Greenf2c2a4f2010-04-13 10:19:28 -04003932010-04-13 Dan Witte <dwitte@mozilla.com>
394
395 * msvcc.sh: Build with -W3 instead of -Wall.
396 * src/powerpc/ffi_darwin.c: Remove build warnings.
397 * src/x86/ffi.c: Ditto.
398 * src/x86/ffitarget.h: Ditto.
399
Anthony Green2db72612010-11-21 10:50:56 -05004002010-04-12 Dan Witte <dwitte@mozilla.com>
401 Walter Meinl <wuno@lsvw.de>
Anthony Greenc0b69e52010-03-30 08:30:22 -0400402
Anthony Green2db72612010-11-21 10:50:56 -0500403 * configure.ac: Add OS/2 support.
404 * configure: Rebuilt.
405 * src/closures.c: Ditto.
406 * src/dlmalloc.c: Ditto.
407 * src/x86/win32.S: Ditto.
Anthony Green3f5b1372010-07-12 14:39:18 -0400408
4092010-04-07 Jakub Jelinek <jakub@redhat.com>
410
Anthony Green2db72612010-11-21 10:50:56 -0500411 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
Anthony Green3f5b1372010-07-12 14:39:18 -0400412
4132010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
414
415 * Makefile.in: Regenerate.
416 * aclocal.m4: Regenerate.
417 * include/Makefile.in: Regenerate.
418 * man/Makefile.in: Regenerate.
419 * testsuite/Makefile.in: Regenerate.
420
Anthony Green2db72612010-11-21 10:50:56 -05004212010-03-30 Dan Witte <dwitte@mozilla.com>
422
423 * msvcc.sh: Disable build warnings.
424 * README (tested): Clarify windows build procedure.
425
Anthony Green3f5b1372010-07-12 14:39:18 -04004262010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
427
428 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
429 * configure: Regenerate.
430 * fficonfig.h.in: Regenerate.
431 * libffi/src/x86/unix64.S (.eh_frame)
432 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
433
Anthony Green2db72612010-11-21 10:50:56 -05004342010-03-14 Matthias Klose <doko@ubuntu.com>
435
436 * src/x86/ffi64.c: Fix typo in comment.
437 * src/x86/ffi.c: Use /* ... */ comment style.
438
Anthony Green9dc9a292010-04-13 10:33:52 -04004392010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
440
441 * doc/libffi.texi (The Closure API): Fix typo.
442 * doc/libffi.info: Remove.
443
4442010-02-15 Matthias Klose <doko@ubuntu.com>
445
446 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
447 __ARM_ARCH_7EM__.
448
Anthony Green2db72612010-11-21 10:50:56 -05004492010-01-15 Anthony Green <green@redhat.com>
450
451 * README: Add notes on building with Microsoft Visual C++.
452
4532010-01-15 Daniel Witte <dwitte@mozilla.com>
454
455 * msvcc.sh: New file.
456
457 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
458 * src/x86/ffi.c: Tweak function declaration and remove excess
459 parens.
460 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
461 ffi_closure.
462
463 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
464 function ffi_call_win32 on X86_WIN32.
465 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
466 (ffi_call_STDCALL): Remove.
467
468 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
469 to ffi_prep_cif_machdep for x86.
470 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
471
4722010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
473
474 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
Anthony Green0e584392011-02-08 07:52:40 -0500475 Sun Studio compiler compatibility.
Anthony Green2db72612010-11-21 10:50:56 -0500476
4772010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
478
479 * doc/libffi.texi: Add closure example.
480
Anthony Green7b7a42f2010-01-12 09:14:14 -05004812010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
482
483 PR libffi/40701
484 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
485 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
486 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
487 alpha*-dec-osf*.
488 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
489 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
490 * testsuite/libffi.call/return_ll1.c: Likewise.
491 * testsuite/libffi.call/stret_medium2.c: Likewise.
492 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
493 MAP_FAILED to char *.
494
4952010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
496
497 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
498
Anthony Greenc3042af2010-01-01 08:08:02 -05004992009-12-31 Anthony Green <green@redhat.com>
500
501 * README: Update for libffi 3.0.9.
502
5032009-12-27 Matthias Klose <doko@ubuntu.com>
504
505 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
506 appropriate.
507 * configure: Rebuilt.
508
5092009-12-26 Anthony Green <green@redhat.com>
510
511 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
512 avr32*-*-*.
513 * testsuite/libffi.call/cls_double_va.c: Ditto.
514
5152009-12-26 Andreas Tobler <a.tobler@schweiz.org>
516
517 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
518 and inttypes.h.
519 * testsuite/libffi.special/unwindtest.cc: Ditto.
520
5212009-12-26 Andreas Tobler <a.tobler@schweiz.org>
522
523 * configure.ac: Add amd64-*-openbsd*.
524 * configure: Rebuilt.
525 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
526 openbsd programs with -lpthread.
527
5282009-12-26 Anthony Green <green@redhat.com>
529
530 * testsuite/libffi.call/cls_double_va.c,
531 testsuite/libffi.call/cls_longdouble.c,
532 testsuite/libffi.call/cls_longdouble_va.c,
533 testsuite/libffi.call/cls_pointer.c,
534 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
535 mips*-*-* and arm*-*-*.
536 * testsuite/libffi.call/cls_align_longdouble_split.c,
537 testsuite/libffi.call/cls_align_longdouble_split2.c,
538 testsuite/libffi.call/stret_medium2.c,
539 testsuite/libffi.call/stret_medium.c,
540 testsuite/libffi.call/stret_large.c,
541 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
542
5432009-12-31 Kay Tietz <ktietz70@googlemail.com>
544
545 * testsuite/libffi.call/ffitest.h,
546 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
547 definitions.
548
5492009-12-31 Carlo Bramini <carlo.bramix@libero.it>
550
551 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
552 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
553 * configure: Rebuilt.
554 * Makefile.in: Rebuilt.
555
5562009-12-31 Anthony Green <green@redhat.com>
557 Blake Chaffin.
558
559 * testsuite/libffi.call/huge_struct.c: New test case from Blake
560 Chaffin @ Apple.
561
Anthony Green0cfe60e2009-12-29 10:06:04 -05005622009-12-28 David Edelsohn <edelsohn@gnu.org>
563
564 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
565 local variables.
566 (aix_adjust_aggregate_sizes): New function.
567 (ffi_prep_cif_machdep): Call it.
568
5692009-12-26 Andreas Tobler <a.tobler@schweiz.org>
570
571 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
572 * configure: Regenerate.
573 * fficonfig.h.in: Likewise.
574 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
575 Solaris/x86.
576
5772009-12-26 Andreas Schwab <schwab@linux-m68k.org>
578
579 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
580 when a float arguments is passed in memory.
581 (ffi_closure_helper_SYSV): Mark general registers as used up when
582 a 64bit or soft-float long double argument is passed in memory.
583
Anthony Green9458d882009-12-26 07:02:27 -05005842009-12-25 Matthias Klose <doko@ubuntu.com>
585
586 * man/ffi_call.3: Fix #include in examples.
587 * doc/libffi.texi: Add dircategory.
588
5892009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
590
591 * include/ffi.h.in: Placed '__GNUC__' ifdef around
592 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
593 IRIX MIPSPro c99.
594 * include/ffi_common.h: Added '__sgi' define to non
595 '__attribute__((__mode__()))' integer typedefs.
Anthony Green0cfe60e2009-12-29 10:06:04 -0500596 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
Anthony Green9458d882009-12-26 07:02:27 -0500597 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
598 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
599 FFI_LONGDOUBLE support and alignment(N32 only).
600 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
601 fixed non '__attribute__((__mode__()))' integer typedefs.
602 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
603 since they are Linux/GNU Assembler specific.
604
6052009-12-25 Bradley Smith <brad@brad-smith.co.uk>
606
607 * configure.ac, Makefile.am, src/avr32/ffi.c,
608 src/avr32/ffitarget.h,
609 src/avr32/sysv.S: Add AVR32 port.
610 * configure, Makefile.in: Rebuilt.
611
Anthony Green115ab362009-12-24 00:22:00 -05006122009-12-21 Andreas Tobler <a.tobler@schweiz.org>
613
614 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
615 * configure: Regenerate.
616
6172009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
618
619 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
620
6212009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
622
623 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
624 type on HP-UX.
625
6262009-12-11 Eric Botcazou <ebotcazou@adacore.com>
627
628 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
629 double' arguments.
630
6312009-12-11 Eric Botcazou <ebotcazou@adacore.com>
632
633 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
634
6352009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
636
637 PR libffi/40700
638 * src/closures.c [X86_64 && __sun__ && __svr4__]
639 (FFI_MMAP_EXEC_WRIT): Define.
640
6412009-12-08 David Daney <ddaney@caviumnetworks.com>
642
643 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
644 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
645 * testsuite/libffi.call/stret_large.c: Same.
646 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
647 * testsuite/libffi.call/stret_large2.c: Same.
648 * testsuite/libffi.call/stret_medium2.c: Same.
649
6502009-12-07 David Edelsohn <edelsohn@gnu.org>
651
652 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
653 typo.
654
6552009-12-05 David Edelsohn <edelsohn@gnu.org>
656
657 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
658 code.
659 * src/powerpc/aix_closure.S: Same.
660
6612009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
662
663 * Makefile.in: Regenerate.
664 * configure: Regenerate.
665 * include/Makefile.in: Regenerate.
666 * man/Makefile.in: Regenerate.
667 * testsuite/Makefile.in: Regenerate.
668
6692009-12-04 David Edelsohn <edelsohn@gnu.org>
670
671 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
Anthony Green0cfe60e2009-12-29 10:06:04 -0500672 linux64_closure.S.
Anthony Green115ab362009-12-24 00:22:00 -0500673
6742009-12-04 Uros Bizjak <ubizjak@gmail.com>
675
676 PR libffi/41908
677 * src/x86/ffi64.c (classify_argument): Update from
678 gcc/config/i386/i386.c.
679 (ffi_closure_unix64_inner): Do not use the address of two consecutive
680 SSE registers directly.
681 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
682 for x86_64 linux targets.
683
6842009-12-04 David Edelsohn <edelsohn@gnu.org>
685
686 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
687 pfr for long double split between fpr13 and stack.
688
6892009-12-03 David Edelsohn <edelsohn@gnu.org>
690
691 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
692 fparg_count twice for long double.
693
6942009-12-03 David Edelsohn <edelsohn@gnu.org>
695
696 PR libffi/42243
697 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
698
6992009-12-03 Uros Bizjak <ubizjak@gmail.com>
700
701 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
702 Remove xfails for x86 linux targets.
703
7042009-12-02 David Edelsohn <edelsohn@gnu.org>
705
706 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
707 case.
708
7092009-12-01 David Edelsohn <edelsohn@gnu.org>
710
711 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
712 register usage. Call ffi_prep_args directly. Add long double
713 return value support.
714 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
715 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
716 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
717 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
718 mode.
719 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
720 into case.
721 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
722 Allocate result area between params and FPRs.
723
7242009-11-30 David Edelsohn <edelsohn@gnu.org>
725
726 PR target/35484
727 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
728 AIX64.
729 * src/powerpc/aix.S: Implement AIX64 version.
730 * src/powerpc/aix_closure.S: Implement AIX64 version.
731 (ffi_closure_ASM): Use extsb, lha and displament addresses.
732 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
733 support.
734 (ffi_prep_cif_machdep): Same.
735 (ffi_call): Same.
736 (ffi_closure_helper_DARWIN): Same.
737
7382009-11-02 Andreas Tobler <a.tobler@schweiz.org>
739
740 PR libffi/41908
741 * testsuite/libffi.call/testclosure.c: New test.
742
Anthony Greenc6dddbd2009-10-04 08:11:33 -04007432009-09-28 Kai Tietz <kai.tietz@onevision.com>
744
745 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
746 assembly version use of ___chkstk.
747
7482009-09-23 Matthias Klose <doko@ubuntu.com>
749
750 PR libffi/40242, PR libffi/41443
751 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
752 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
753 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
754 Change the conditionals to __SOFTFP__ || __ARM_EABI__
755 for -mfloat-abi=softfp to work.
756
7572009-09-17 Loren J. Rittle <ljrittle@acm.org>
758
759 PR testsuite/32843 (strikes again)
760 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
761 enable proper extension on char and short.
762
7632009-09-15 David Daney <ddaney@caviumnetworks.com>
764
765 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
766 handling for FFI_TYPE_POINTER.
767 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
768 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
769 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
770 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
771 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
772 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
773 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
774 structure and pointer returns.
775 (ffi_closure_N32): Add handling for pointer returns.
776 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
777 calc_n32_return_struct_flags): Handle soft-float.
778 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
779 (ffi_call_N32): Declare proper argument types.
780 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
781 soft-float.
782
7832009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
784
785 * configure.ac (AC_PREREQ): Bump to 2.64.
786
7872009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
788
789 * Makefile.am (install-html, install-pdf): Remove.
790 * Makefile.in: Regenerate.
791
792 * Makefile.in: Regenerate.
793 * aclocal.m4: Regenerate.
794 * configure: Regenerate.
795 * fficonfig.h.in: Regenerate.
796 * include/Makefile.in: Regenerate.
797 * man/Makefile.in: Regenerate.
798 * testsuite/Makefile.in: Regenerate.
799
Anthony Green3d561062011-11-12 07:20:24 -05008002011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
801
802 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
803 * configure: Rebuilt.
804
Anthony Greenc6dddbd2009-10-04 08:11:33 -04008052009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
806
807 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
808
8092009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
810
811 PR libffi/40807
812 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
813 return types for X86_WIN32.
814 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
815 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
816 _ffi_closure_STDCALL): Likewise.
817
818 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
819 (dlmmap, dlmunmap): Also use these functions on Cygwin.
820
8212009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
822
823 PR testsuite/40699
824 PR testsuite/40707
825 PR testsuite/40709
826 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
827 2009-06-30 commits.
828
8292009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
830
831 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
832 to "" before adding paths. (This reinstates an assignment that
833 was removed by my 2009-06-30 commit, but changes the initial
834 value from "." to "".)
835
8362009-07-01 H.J. Lu <hongjiu.lu@intel.com>
837
838 PR testsuite/40601
839 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
840 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
841 empty.
842
8432009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
844
845 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
846 to ld_library_path. Use add_path. Add just find_libgcc_s
847 to ld_library_path, not every libgcc multilib directory.
848
8492009-06-16 Wim Lewis <wiml@hhhh.org>
850
851 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
852 supposed to be callee-saved.
853 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
854 return buffer for odd-size structs.
855
8562009-06-16 Andreas Tobler <a.tobler@schweiz.org>
857
858 PR libffi/40444
859 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
860 allow_stack_execute for Darwin.
861
8622009-06-16 Andrew Haley <aph@redhat.com>
863
864 * configure.ac (TARGETDIR): Add missing blank lines.
865 * configure: Regenerate.
866
8672009-06-16 Andrew Haley <aph@redhat.com>
868
869 * testsuite/libffi.call/cls_align_sint64.c,
870 testsuite/libffi.call/cls_align_uint64.c,
871 testsuite/libffi.call/cls_longdouble_va.c,
872 testsuite/libffi.call/cls_ulonglong.c,
873 testsuite/libffi.call/return_ll1.c,
874 testsuite/libffi.call/stret_medium2.c: Fix printf format
875 specifiers.
876 * testsuite/libffi.call/ffitest.h,
877 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
878
8792009-06-15 Andrew Haley <aph@redhat.com>
880
881 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
882 * testsuite/libffi.call/err_bad_abi.c: Likewise.
Anthony Green0cfe60e2009-12-29 10:06:04 -0500883
Anthony Greenc6dddbd2009-10-04 08:11:33 -04008842009-06-12 Andrew Haley <aph@redhat.com>
885
886 * Makefile.am: Remove info_TEXINFOS.
887
8882009-06-12 Andrew Haley <aph@redhat.com>
889
890 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
891 testsuite/libffi.call/cls_align_uint64.c,
892 testsuite/libffi.call/cls_ulonglong.c,
893 testsuite/libffi.call/return_ll1.c,
894 testsuite/libffi.call/stret_medium2.c: Fix printf format
895 specifiers.
896 testsuite/libffi.special/unwindtest.cc: include stdint.h.
897
8982009-06-11 Timothy Wall <twall@users.sf.net>
899
900 * Makefile.am,
Anthony Green0cfe60e2009-12-29 10:06:04 -0500901 configure.ac,
902 include/ffi.h.in,
903 include/ffi_common.h,
904 src/closures.c,
905 src/dlmalloc.c,
906 src/x86/ffi.c,
907 src/x86/ffitarget.h,
908 src/x86/win64.S (new),
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400909 README: Added win64 support (mingw or MSVC)
Anthony Green0cfe60e2009-12-29 10:06:04 -0500910 * Makefile.in,
911 include/Makefile.in,
912 man/Makefile.in,
913 testsuite/Makefile.in,
914 configure,
915 aclocal.m4: Regenerated
916 * ltcf-c.sh: properly escape cygwin/w32 path
917 * man/ffi_call.3: Clarify size requirements for return value.
918 * src/x86/ffi64.c: Fix filename in comment.
919 * src/x86/win32.S: Remove unused extern.
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400920
Anthony Green0cfe60e2009-12-29 10:06:04 -0500921 * testsuite/libffi.call/closure_fn0.c,
922 testsuite/libffi.call/closure_fn1.c,
923 testsuite/libffi.call/closure_fn2.c,
924 testsuite/libffi.call/closure_fn3.c,
925 testsuite/libffi.call/closure_fn4.c,
926 testsuite/libffi.call/closure_fn5.c,
927 testsuite/libffi.call/closure_fn6.c,
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400928 testsuite/libffi.call/closure_stdcall.c,
929 testsuite/libffi.call/cls_12byte.c,
930 testsuite/libffi.call/cls_16byte.c,
931 testsuite/libffi.call/cls_18byte.c,
932 testsuite/libffi.call/cls_19byte.c,
933 testsuite/libffi.call/cls_1_1byte.c,
934 testsuite/libffi.call/cls_20byte.c,
935 testsuite/libffi.call/cls_20byte1.c,
936 testsuite/libffi.call/cls_24byte.c,
937 testsuite/libffi.call/cls_2byte.c,
938 testsuite/libffi.call/cls_3_1byte.c,
939 testsuite/libffi.call/cls_3byte1.c,
940 testsuite/libffi.call/cls_3byte2.c,
941 testsuite/libffi.call/cls_4_1byte.c,
942 testsuite/libffi.call/cls_4byte.c,
943 testsuite/libffi.call/cls_5_1_byte.c,
944 testsuite/libffi.call/cls_5byte.c,
945 testsuite/libffi.call/cls_64byte.c,
946 testsuite/libffi.call/cls_6_1_byte.c,
947 testsuite/libffi.call/cls_6byte.c,
948 testsuite/libffi.call/cls_7_1_byte.c,
949 testsuite/libffi.call/cls_7byte.c,
950 testsuite/libffi.call/cls_8byte.c,
951 testsuite/libffi.call/cls_9byte1.c,
952 testsuite/libffi.call/cls_9byte2.c,
953 testsuite/libffi.call/cls_align_double.c,
954 testsuite/libffi.call/cls_align_float.c,
955 testsuite/libffi.call/cls_align_longdouble.c,
956 testsuite/libffi.call/cls_align_longdouble_split.c,
957 testsuite/libffi.call/cls_align_longdouble_split2.c,
958 testsuite/libffi.call/cls_align_pointer.c,
959 testsuite/libffi.call/cls_align_sint16.c,
960 testsuite/libffi.call/cls_align_sint32.c,
961 testsuite/libffi.call/cls_align_sint64.c,
962 testsuite/libffi.call/cls_align_uint16.c,
963 testsuite/libffi.call/cls_align_uint32.c,
964 testsuite/libffi.call/cls_align_uint64.c,
965 testsuite/libffi.call/cls_dbls_struct.c,
966 testsuite/libffi.call/cls_double.c,
967 testsuite/libffi.call/cls_double_va.c,
968 testsuite/libffi.call/cls_float.c,
969 testsuite/libffi.call/cls_longdouble.c,
970 testsuite/libffi.call/cls_longdouble_va.c,
971 testsuite/libffi.call/cls_multi_schar.c,
972 testsuite/libffi.call/cls_multi_sshort.c,
973 testsuite/libffi.call/cls_multi_sshortchar.c,
974 testsuite/libffi.call/cls_multi_uchar.c,
975 testsuite/libffi.call/cls_multi_ushort.c,
976 testsuite/libffi.call/cls_multi_ushortchar.c,
977 testsuite/libffi.call/cls_pointer.c,
978 testsuite/libffi.call/cls_pointer_stack.c,
979 testsuite/libffi.call/cls_schar.c,
980 testsuite/libffi.call/cls_sint.c,
981 testsuite/libffi.call/cls_sshort.c,
982 testsuite/libffi.call/cls_uchar.c,
983 testsuite/libffi.call/cls_uint.c,
984 testsuite/libffi.call/cls_ulonglong.c,
985 testsuite/libffi.call/cls_ushort.c,
986 testsuite/libffi.call/err_bad_abi.c,
987 testsuite/libffi.call/err_bad_typedef.c,
988 testsuite/libffi.call/float2.c,
989 testsuite/libffi.call/huge_struct.c,
990 testsuite/libffi.call/nested_struct.c,
991 testsuite/libffi.call/nested_struct1.c,
992 testsuite/libffi.call/nested_struct10.c,
993 testsuite/libffi.call/nested_struct2.c,
994 testsuite/libffi.call/nested_struct3.c,
995 testsuite/libffi.call/nested_struct4.c,
996 testsuite/libffi.call/nested_struct5.c,
997 testsuite/libffi.call/nested_struct6.c,
998 testsuite/libffi.call/nested_struct7.c,
999 testsuite/libffi.call/nested_struct8.c,
1000 testsuite/libffi.call/nested_struct9.c,
1001 testsuite/libffi.call/problem1.c,
1002 testsuite/libffi.call/return_ldl.c,
1003 testsuite/libffi.call/return_ll1.c,
1004 testsuite/libffi.call/stret_large.c,
1005 testsuite/libffi.call/stret_large2.c,
1006 testsuite/libffi.call/stret_medium.c,
1007 testsuite/libffi.call/stret_medium2.c,
Anthony Green0cfe60e2009-12-29 10:06:04 -05001008 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
1009 of checking for MMAP. Use intptr_t instead of long casts.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001010
10112009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
1012
1013 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
1014 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
1015 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
1016
10172009-06-09 Andrew Haley <aph@redhat.com>
1018
1019 * src/x86/freebsd.S: Add missing file.
1020
10212009-06-08 Andrew Haley <aph@redhat.com>
1022
1023 Import from libffi 3.0.8:
1024
1025 * doc/libffi.texi: New file.
1026 * doc/libffi.info: Likewise.
1027 * doc/stamp-vti: Likewise.
1028 * man/Makefile.am: New file.
1029 * man/ffi_call.3: New file.
1030
1031 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
1032 src/dlmalloc.c.
1033 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
1034
1035 * configure.ac: Bump version to 3.0.8.
1036 parisc*-*-linux*: Add.
1037 i386-*-freebsd* | i386-*-openbsd*: Add.
1038 powerpc-*-beos*: Add.
1039 AM_CONDITIONAL X86_FREEBSD: Add.
1040 AC_CONFIG_FILES: Add man/Makefile.
1041
1042 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
1043
10442009-06-08 Andrew Haley <aph@redhat.com>
1045
1046 * README: Import from libffi 3.0.8.
1047
10482009-06-08 Andrew Haley <aph@redhat.com>
1049
1050 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
1051 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
1052 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
1053 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
1054
1055 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
1056 * testsuite/libffi.call/stret_medium.c: Likewise.
1057 * testsuite/libffi.call/stret_large2.c: Likewise.
1058 * testsuite/libffi.call/stret_large.c: Likewise.
1059
10602008-12-26 Timothy Wall <twall@users.sf.net>
1061
Anthony Green0cfe60e2009-12-29 10:06:04 -05001062 * testsuite/libffi.call/cls_longdouble.c,
1063 testsuite/libffi.call/cls_longdouble_va.c,
1064 testsuite/libffi.call/cls_align_longdouble.c,
1065 testsuite/libffi.call/cls_align_longdouble_split.c,
1066 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
1067 failures on x86_64 cygwin/mingw.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001068
10692008-12-22 Timothy Wall <twall@users.sf.net>
1070
Anthony Green0cfe60e2009-12-29 10:06:04 -05001071 * testsuite/libffi.call/closure_fn0.c,
1072 testsuite/libffi.call/closure_fn1.c,
1073 testsuite/libffi.call/closure_fn2.c,
1074 testsuite/libffi.call/closure_fn3.c,
1075 testsuite/libffi.call/closure_fn4.c,
1076 testsuite/libffi.call/closure_fn5.c,
1077 testsuite/libffi.call/closure_fn6.c,
1078 testsuite/libffi.call/closure_loc_fn0.c,
1079 testsuite/libffi.call/closure_stdcall.c,
1080 testsuite/libffi.call/cls_align_pointer.c,
1081 testsuite/libffi.call/cls_pointer.c,
1082 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
1083 pointer to integer (intptr_t).
1084 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001085
10862008-07-24 Anthony Green <green@redhat.com>
1087
Anthony Green0cfe60e2009-12-29 10:06:04 -05001088 * testsuite/libffi.call/cls_dbls_struct.c,
1089 testsuite/libffi.call/cls_double_va.c,
1090 testsuite/libffi.call/cls_longdouble.c,
1091 testsuite/libffi.call/cls_longdouble_va.c,
1092 testsuite/libffi.call/cls_pointer.c,
1093 testsuite/libffi.call/cls_pointer_stack.c,
1094 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
1095 compiler warnings.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001096
10972008-03-04 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001098 Blake Chaffin
1099 hos@tamanegi.org
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001100
Anthony Green0cfe60e2009-12-29 10:06:04 -05001101 * testsuite/libffi.call/cls_align_longdouble_split2.c
1102 testsuite/libffi.call/cls_align_longdouble_split.c
1103 testsuite/libffi.call/cls_dbls_struct.c
1104 testsuite/libffi.call/cls_double_va.c
1105 testsuite/libffi.call/cls_longdouble.c
1106 testsuite/libffi.call/cls_longdouble_va.c
1107 testsuite/libffi.call/cls_pointer.c
1108 testsuite/libffi.call/cls_pointer_stack.c
1109 testsuite/libffi.call/err_bad_abi.c
1110 testsuite/libffi.call/err_bad_typedef.c
1111 testsuite/libffi.call/stret_large2.c
1112 testsuite/libffi.call/stret_large.c
1113 testsuite/libffi.call/stret_medium2.c
1114 testsuite/libffi.call/stret_medium.c: New tests from Apple.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001115
11162009-06-05 Andrew Haley <aph@redhat.com>
1117
1118 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
1119 libffi.
1120
11212009-06-04 Andrew Haley <aph@redhat.com>
1122
1123 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
1124 stdcall changes.
1125
11262008-02-26 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001127 Thomas Heller <theller@ctypes.org>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001128
Anthony Green0cfe60e2009-12-29 10:06:04 -05001129 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
1130 comment.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001131
11322008-02-03 Timothy Wall <twall@users.sf.net>
1133
Anthony Green0cfe60e2009-12-29 10:06:04 -05001134 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
1135 offset based on code pointer, not data pointer.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001136
11372008-01-31 Timothy Wall <twall@users.sf.net>
1138
Anthony Green0cfe60e2009-12-29 10:06:04 -05001139 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
1140 closures.
1141 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
1142 closures.
1143 * src/x86/win32.S: Add assembly for stdcall closure.
1144 * src/x86/ffi.c: Initialize stdcall closure trampoline.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001145
11462009-06-04 Andrew Haley <aph@redhat.com>
1147
1148 * include/ffi.h.in: Change void (*)() to void (*)(void).
1149 * src/x86/ffi.c: Likewise.
1150
11512009-06-04 Andrew Haley <aph@redhat.com>
1152
1153 * src/powerpc/ppc_closure.S: Insert licence header.
1154 * src/powerpc/linux64_closure.S: Likewise.
1155 * src/m68k/sysv.S: Likewise.
1156
1157 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
1158 * src/powerpc/ffi.c: Likewise.
1159 * src/powerpc/ffi_darwin.c: Likewise.
1160 * src/m32r/ffi.c: Likewise.
1161 * src/sh64/ffi.c: Likewise.
1162 * src/x86/ffi64.c: Likewise.
1163 * src/alpha/ffi.c: Likewise.
1164 * src/alpha/osf.S: Likewise.
1165 * src/frv/ffi.c: Likewise.
1166 * src/s390/ffi.c: Likewise.
1167 * src/pa/ffi.c: Likewise.
1168 * src/pa/hpux32.S: Likewise.
1169 * src/ia64/unix.S: Likewise.
1170 * src/ia64/ffi.c: Likewise.
1171 * src/sparc/ffi.c: Likewise.
1172 * src/mips/ffi.c: Likewise.
1173 * src/sh/ffi.c: Likewise.
1174
11752008-02-15 David Daney <ddaney@avtrex.com>
1176
Anthony Green0cfe60e2009-12-29 10:06:04 -05001177 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
1178 Define (conditionally), and use it to include cachectl.h.
1179 (ffi_prep_closure_loc): Fix cache flushing.
1180 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001181
11822009-06-04 Andrew Haley <aph@redhat.com>
1183
1184 include/ffi.h.in,
1185 src/arm/ffitarget.h,
1186 src/arm/ffi.c,
1187 src/arm/sysv.S,
1188 src/powerpc/ffitarget.h,
1189 src/closures.c,
1190 src/sh64/ffitarget.h,
1191 src/sh64/ffi.c,
1192 src/sh64/sysv.S,
1193 src/types.c,
1194 src/x86/ffi64.c,
1195 src/x86/ffitarget.h,
1196 src/x86/win32.S,
1197 src/x86/darwin.S,
1198 src/x86/ffi.c,
1199 src/x86/sysv.S,
1200 src/x86/unix64.S,
1201 src/alpha/ffitarget.h,
1202 src/alpha/ffi.c,
1203 src/alpha/osf.S,
1204 src/m68k/ffitarget.h,
1205 src/frv/ffitarget.h,
1206 src/frv/ffi.c,
1207 src/s390/ffitarget.h,
1208 src/s390/sysv.S,
1209 src/cris/ffitarget.h,
1210 src/pa/linux.S,
1211 src/pa/ffitarget.h,
1212 src/pa/ffi.c,
1213 src/raw_api.c,
1214 src/ia64/ffitarget.h,
1215 src/ia64/unix.S,
1216 src/ia64/ffi.c,
1217 src/ia64/ia64_flags.h,
1218 src/java_raw_api.c,
1219 src/debug.c,
1220 src/sparc/v9.S,
1221 src/sparc/ffitarget.h,
1222 src/sparc/ffi.c,
1223 src/sparc/v8.S,
1224 src/mips/ffitarget.h,
1225 src/mips/n32.S,
1226 src/mips/o32.S,
1227 src/mips/ffi.c,
1228 src/prep_cif.c,
1229 src/sh/ffitarget.h,
1230 src/sh/ffi.c,
1231 src/sh/sysv.S: Update license text.
1232
12332009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
1234
1235 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
1236 (.eh_frame): Add FDE for it.
1237
12382009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
1239
1240 * configure.ac: Also check if assembler supports pc-relative
1241 relocs on X86_WIN32 targets.
1242 * configure: Regenerate.
1243 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
1244 (_ffi_call_SYSV): Add missing function type symbol .def and
1245 add EH markup labels.
1246 (_ffi_call_STDCALL): Likewise.
1247 (_ffi_closure_SYSV): Likewise.
1248 (_ffi_closure_raw_SYSV): Likewise.
1249 (.eh_frame): Add hand-crafted EH data.
1250
12512009-04-09 Jakub Jelinek <jakub@redhat.com>
1252
1253 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
1254 version 3 of the GNU General Public License and to point readers
1255 at the COPYING3 file and the FSF's license web page.
1256 * testsuite/libffi.call/call.exp: Likewise.
1257 * testsuite/libffi.special/special.exp: Likewise.
1258
12592009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1260
1261 * configure: Regenerate.
1262
12632008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1264
1265 PR libffi/26048
1266 * configure.ac (HAVE_AS_X86_PCREL): New test.
1267 * configure: Regenerate.
1268 * fficonfig.h.in: Regenerate.
1269 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
1270 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
1271 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
1272 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1273 * src/x86/unix64.S (.Lstore_table): Move to .text section.
1274 (.Lload_table): Likewise.
1275 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1276
12772008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1278
1279 * configure: Regenerate.
1280
12812008-11-21 Eric Botcazou <ebotcazou@adacore.com>
1282
1283 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
1284 signed/unsigned int8/16 return values.
1285 * src/sparc/v8.S (ffi_call_v8): Likewise.
1286 (ffi_closure_v8): Likewise.
1287
12882008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001289 Steve Ellcey <sje@cup.hp.com>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001290
1291 * configure: Regenerate for new libtool.
1292 * Makefile.in: Ditto.
1293 * include/Makefile.in: Ditto.
1294 * aclocal.m4: Ditto.
1295
12962008-08-25 Andreas Tobler <a.tobler@schweiz.org>
1297
1298 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
1299 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
1300 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
1301 Adjust copyright notice.
1302 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
1303 register or two register to use for FFI_SYSV structs.
1304 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
1305 (ffi_closure_helper_SYSV): Fix the return type for
1306 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
1307 Adjust copyright notice.
1308
13092008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
1310
1311 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
1312 int.
1313
13142008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1315
1316 * configure: Regenerate.
1317 * include/Makefile.in: Regenerate.
1318 * testsuite/Makefile.in: Regenerate.
1319
13202008-06-07 Joseph Myers <joseph@codesourcery.com>
1321
1322 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
1323 powerpc-*-beos*): Remove.
1324 * configure: Regenerate.
1325
13262008-05-09 Julian Brown <julian@codesourcery.com>
1327
1328 * Makefile.am (LTLDFLAGS): New.
1329 (libffi_la_LDFLAGS): Use above.
1330 * Makefile.in: Regenerate.
1331
13322008-04-18 Paolo Bonzini <bonzini@gnu.org>
1333
1334 PR bootstrap/35457
1335 * aclocal.m4: Regenerate.
1336 * configure: Regenerate.
1337
13382008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
1339
1340 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
1341 * src/sh64/sysv.S: Likewise.
1342
13432008-03-26 Daniel Jacobowitz <dan@debian.org>
1344
1345 * src/arm/sysv.S: Fix ARM comment marker.
1346
13472008-03-26 Jakub Jelinek <jakub@redhat.com>
1348
1349 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
1350 * src/s390/sysv.S: Likewise.
1351 * src/powerpc/ppc_closure.S: Likewise.
1352 * src/powerpc/sysv.S: Likewise.
1353 * src/x86/unix64.S: Likewise.
1354 * src/x86/sysv.S: Likewise.
1355 * src/sparc/v8.S: Likewise.
1356 * src/sparc/v9.S: Likewise.
1357 * src/m68k/sysv.S: Likewise.
1358 * src/arm/sysv.S: Likewise.
1359
13602008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1361
1362 * aclocal.m4: Regenerate.
1363 * configure: Likewise.
1364 * Makefile.in: Likewise.
1365 * include/Makefile.in: Likewise.
1366 * testsuite/Makefile.in: Likewise.
1367
13682008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
1369 Andreas Tobler <a.tobler@schweiz.org>
1370
1371 * configure.ac: Add amd64-*-freebsd* target.
1372 * configure: Regenerate.
1373
13742008-01-30 H.J. Lu <hongjiu.lu@intel.com>
1375
1376 PR libffi/34612
1377 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
1378 returning struct.
1379
1380 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
1381 tests.
1382
13832008-01-24 David Edelsohn <edelsohn@gnu.org>
1384
1385 * configure: Regenerate.
1386
13872008-01-06 Andreas Tobler <a.tobler@schweiz.org>
1388
1389 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
1390
13912008-01-05 Andreas Tobler <a.tobler@schweiz.org>
1392
1393 PR testsuite/32843
1394 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
1395 signed/unsigned int8/16 for X86_DARWIN.
1396 Updated copyright info.
1397 Handle one and two byte structs with special cif->flags.
1398 * src/x86/ffitarget.h: Add special types for one and two byte structs.
1399 Updated copyright info.
1400 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
1401 sysv.S
1402 Remove code to pop args from the stack after call.
1403 Special-case signed/unsigned for int8/16, one and two byte structs.
1404 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1405 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1406 FFI_TYPE_SINT32.
1407 Updated copyright info.
1408
14092007-12-08 David Daney <ddaney@avtrex.com>
1410
Anthony Green0cfe60e2009-12-29 10:06:04 -05001411 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001412 SUBU, add with ADDU and use smaller code sequences.
1413
14142007-12-07 David Daney <ddaney@avtrex.com>
1415
1416 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
1417 type.
1418
14192007-12-06 David Daney <ddaney@avtrex.com>
1420
1421 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
1422 defined.
1423 (ffi_java_raw): New typedef.
1424 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
1425 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
1426 ffi_java_raw.
1427 (ffi_java_raw_closure) : Same.
1428 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
1429 parameter types.
1430 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
1431 FFI_SIZEOF_JAVA_RAW.
1432 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
1433 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
1434 sizeof(ffi_java_raw) for alignment calculations.
1435 (ffi_java_ptrarray_to_raw): Same.
1436 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
Anthony Green0cfe60e2009-12-29 10:06:04 -05001437 if FFI_SIZEOF_JAVA_RAW == 4.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001438 (ffi_java_raw_to_rvalue): Same.
1439 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
1440 (ffi_java_translate_args): Same.
1441 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
1442 parameter types.
1443 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
1444
14452007-12-06 David Daney <ddaney@avtrex.com>
1446
Anthony Green0cfe60e2009-12-29 10:06:04 -05001447 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001448 pointer values.
1449
14502007-12-01 Andreas Tobler <a.tobler@schweiz.org>
1451
1452 PR libffi/31937
1453 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
1454 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
1455 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
1456 set the NUM_FPR_ARG_REGISTERS according to.
1457 Add support for potential soft-float support under hard-float
1458 architecture.
1459 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
1460 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
1461 to the FFI_LINUX_SOFT_FLOAT ABI.
1462 (ffi_prep_cif_machdep): Likewise.
1463 (ffi_closure_helper_SYSV): Likewise.
1464 * src/powerpc/ppc_closure.S: Make sure not to store float/double
1465 on archs where __NO_FPRS__ is true.
1466 Add FFI_TYPE_UINT128 support.
1467 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
1468 Adjust copyright notice.
1469
14702007-11-25 Andreas Tobler <a.tobler@schweiz.org>
1471
1472 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
1473 * include/ffi_common.h: ... here.
1474 Update copyright.
1475
14762007-11-17 Andreas Tobler <a.tobler@schweiz.org>
1477
1478 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
1479 * src/powerpc/linux64.S: Likewise.
1480 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
1481 * testsuite/libffi.call/return_ldl.c: New test.
1482
14832007-09-04 <aph@redhat.com>
1484
1485 * src/arm/sysv.S (UNWIND): New.
1486 (Whole file): Conditionally compile unwinder directives.
1487 * src/arm/sysv.S: Add unwinder directives.
1488
1489 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
1490 Only treat r0 as a struct address if we're actually returning a
1491 struct by address.
1492 Only copy the bytes that are actually within a struct.
1493 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
1494 is returned in r0, not passed by address.
1495 (ffi_call): Allocate a word-sized temporary for the case where
1496 a composite is returned in r0.
1497 (ffi_prep_incoming_args_SYSV): Align as necessary.
1498
14992007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
1500
Anthony Green0cfe60e2009-12-29 10:06:04 -05001501 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001502 directly using the sys_cacheflush syscall.
1503
15042007-07-27 Andrew Haley <aph@redhat.com>
1505
1506 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
1507
15082007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
1509
1510 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
1511 * configure.ac: Likewise.
1512 * Makefile.in: Regenerate.
1513 * include/Makefile.in: Likewise.
1514 * testsuite/Makefile.in: Likewise.
1515 * configure: Likewise.
1516
15172007-08-24 David Daney <ddaney@avtrex.com>
1518
1519 * testsuite/libffi.call/return_sl.c: New test.
1520
15212007-08-10 David Daney <ddaney@avtrex.com>
1522
1523 * testsuite/libffi.call/cls_multi_ushort.c,
1524 testsuite/libffi.call/cls_align_uint16.c,
1525 testsuite/libffi.call/nested_struct1.c,
1526 testsuite/libffi.call/nested_struct3.c,
1527 testsuite/libffi.call/cls_7_1_byte.c,
1528 testsuite/libffi.call/nested_struct5.c,
1529 testsuite/libffi.call/cls_double.c,
1530 testsuite/libffi.call/nested_struct7.c,
1531 testsuite/libffi.call/cls_sint.c,
1532 testsuite/libffi.call/nested_struct9.c,
1533 testsuite/libffi.call/cls_20byte1.c,
1534 testsuite/libffi.call/cls_multi_sshortchar.c,
1535 testsuite/libffi.call/cls_align_sint64.c,
1536 testsuite/libffi.call/cls_3byte2.c,
1537 testsuite/libffi.call/cls_multi_schar.c,
1538 testsuite/libffi.call/cls_multi_uchar.c,
1539 testsuite/libffi.call/cls_19byte.c,
1540 testsuite/libffi.call/cls_9byte1.c,
1541 testsuite/libffi.call/cls_align_float.c,
1542 testsuite/libffi.call/closure_fn1.c,
1543 testsuite/libffi.call/problem1.c,
1544 testsuite/libffi.call/closure_fn3.c,
1545 testsuite/libffi.call/cls_sshort.c,
1546 testsuite/libffi.call/closure_fn5.c,
1547 testsuite/libffi.call/cls_align_double.c,
1548 testsuite/libffi.call/nested_struct.c,
1549 testsuite/libffi.call/cls_2byte.c,
1550 testsuite/libffi.call/nested_struct10.c,
1551 testsuite/libffi.call/cls_4byte.c,
1552 testsuite/libffi.call/cls_6byte.c,
1553 testsuite/libffi.call/cls_8byte.c,
1554 testsuite/libffi.call/cls_multi_sshort.c,
1555 testsuite/libffi.call/cls_align_sint16.c,
1556 testsuite/libffi.call/cls_align_uint32.c,
1557 testsuite/libffi.call/cls_20byte.c,
1558 testsuite/libffi.call/cls_float.c,
1559 testsuite/libffi.call/nested_struct2.c,
1560 testsuite/libffi.call/cls_5_1_byte.c,
1561 testsuite/libffi.call/nested_struct4.c,
1562 testsuite/libffi.call/cls_24byte.c,
1563 testsuite/libffi.call/nested_struct6.c,
1564 testsuite/libffi.call/cls_64byte.c,
1565 testsuite/libffi.call/nested_struct8.c,
1566 testsuite/libffi.call/cls_uint.c,
1567 testsuite/libffi.call/cls_multi_ushortchar.c,
1568 testsuite/libffi.call/cls_schar.c,
1569 testsuite/libffi.call/cls_uchar.c,
1570 testsuite/libffi.call/cls_align_uint64.c,
1571 testsuite/libffi.call/cls_ulonglong.c,
1572 testsuite/libffi.call/cls_align_longdouble.c,
1573 testsuite/libffi.call/cls_1_1byte.c,
1574 testsuite/libffi.call/cls_12byte.c,
1575 testsuite/libffi.call/cls_3_1byte.c,
1576 testsuite/libffi.call/cls_3byte1.c,
1577 testsuite/libffi.call/cls_4_1byte.c,
1578 testsuite/libffi.call/cls_6_1_byte.c,
1579 testsuite/libffi.call/cls_16byte.c,
1580 testsuite/libffi.call/cls_18byte.c,
1581 testsuite/libffi.call/closure_fn0.c,
1582 testsuite/libffi.call/cls_9byte2.c,
1583 testsuite/libffi.call/closure_fn2.c,
1584 testsuite/libffi.call/closure_fn4.c,
1585 testsuite/libffi.call/cls_ushort.c,
1586 testsuite/libffi.call/closure_fn6.c,
1587 testsuite/libffi.call/cls_5byte.c,
1588 testsuite/libffi.call/cls_align_pointer.c,
1589 testsuite/libffi.call/cls_7byte.c,
1590 testsuite/libffi.call/cls_align_sint32.c,
1591 testsuite/libffi.special/unwindtest_ffi_call.cc,
1592 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
1593
15942007-08-10 David Daney <ddaney@avtrex.com>
1595
1596 PR libffi/28313
1597 * configure.ac: Don't treat mips64 as a special case.
1598 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
1599 * configure: Regenerate
1600 * Makefile.in: Ditto.
1601 * fficonfig.h.in: Ditto.
1602 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
1603 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
1604 (FFI_DEFAULT_ABI): Set for n64 case.
1605 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
1606 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
1607 (ffi_closure_N32): New function.
1608 (.eh_frame): New section
1609 * src/mips/o32.S: Clean up comments.
1610 (ffi_closure_O32): Pass ffi_closure parameter in $12.
1611 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
1612 _MIPS_SIM == _ABIN32 throughout.
1613 (FFI_MIPS_STOP_HERE): New, use in place of
1614 ffi_stop_here.
1615 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
1616 to support n32/n64 ABIs.
1617 (calc_n32_struct_flags): Rewrite.
1618 (calc_n32_return_struct_flags): Remove unused variable. Reverse
1619 position of flag bits.
1620 (ffi_prep_cif_machdep): Rewrite n32 portion.
1621 (ffi_call): Enable for n64. Add special handling for small structure
1622 return values.
1623 (ffi_prep_closure_loc): Add n32 and n64 support.
1624 (ffi_closure_mips_inner_O32): Add cast to silence warning.
1625 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
1626
16272007-08-08 David Daney <ddaney@avtrex.com>
1628
1629 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
1630 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
1631 specifiers.
1632 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
1633 * testsuite/libffi.call/cls_sint.c (main): Ditto.
1634 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
1635 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
1636 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
1637 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
1638 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
1639 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
1640 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
1641 * testsuite/libffi.call/return_fl3.c (main): Ditto.
1642 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
1643 * testsuite/libffi.call/nested_struct.c (main): Ditto.
1644 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
1645 * testsuite/libffi.call/return_ll1.c (main): Ditto.
1646 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
1647 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
1648 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
1649 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
1650 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
1651 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
1652 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
1653 * testsuite/libffi.call/cls_uint.c (main): Ditto.
1654 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
1655 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
1656 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
1657 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
1658 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
1659 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
1660 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
1661 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
1662 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
1663
16642007-08-07 Andrew Haley <aph@redhat.com>
1665
1666 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
1667 checkin.
1668
16692007-08-06 Andrew Haley <aph@redhat.com>
1670
1671 PR testsuite/32843
1672 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1673 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1674 FFI_TYPE_SINT32.
1675
16762007-08-02 David Daney <ddaney@avtrex.com>
1677
1678 * testsuite/libffi.call/return_ul.c (main): Define return type as
1679 ffi_arg. Use proper printf conversion specifier.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001680
Anthony Greenc6dddbd2009-10-04 08:11:33 -040016812007-07-30 Andrew Haley <aph@redhat.com>
1682
1683 PR testsuite/32843
1684 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
1685 signed/unsigned int8/16.
1686 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
1687 Use a jump table.
1688 Remove code to pop args from the stack after call.
1689 Special-case signed/unsigned int8/16.
1690 * testsuite/libffi.call/return_sc.c (main): Revert.
1691
16922007-07-26 Richard Guenther <rguenther@suse.de>
1693
1694 PR testsuite/32843
1695 * testsuite/libffi.call/return_sc.c (main): Verify call
1696 result as signed char, not ffi_arg.
1697
16982007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1699
1700 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
1701 * configure: Regenerate.
1702
17032007-07-11 David Daney <ddaney@avtrex.com>
1704
1705 * src/mips/ffi.c: Don't include sys/cachectl.h.
1706 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
1707 cacheflush().
1708
17092007-05-18 Aurelien Jarno <aurelien@aurel32.net>
1710
1711 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
1712 from (ffi_prep_closure): ... this.
1713 (FFI_INIT_TRAMPOLINE): Adjust.
1714
17152005-12-31 Phil Blundell <pb@reciva.com>
1716
Anthony Green0cfe60e2009-12-29 10:06:04 -05001717 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
1718 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001719 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
1720 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1721 (FFI_CLOSURES): Enable closure support.
1722
17232007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
1724
Anthony Green0cfe60e2009-12-29 10:06:04 -05001725 * testsuite/libffi.call/cls_multi_ushort.c,
1726 testsuite/libffi.call/cls_align_uint16.c,
1727 testsuite/libffi.call/nested_struct1.c,
1728 testsuite/libffi.call/nested_struct3.c,
1729 testsuite/libffi.call/cls_7_1_byte.c,
1730 testsuite/libffi.call/cls_double.c,
1731 testsuite/libffi.call/nested_struct5.c,
1732 testsuite/libffi.call/nested_struct7.c,
1733 testsuite/libffi.call/cls_sint.c,
1734 testsuite/libffi.call/nested_struct9.c,
1735 testsuite/libffi.call/cls_20byte1.c,
1736 testsuite/libffi.call/cls_multi_sshortchar.c,
1737 testsuite/libffi.call/cls_align_sint64.c,
1738 testsuite/libffi.call/cls_3byte2.c,
1739 testsuite/libffi.call/cls_multi_schar.c,
1740 testsuite/libffi.call/cls_multi_uchar.c,
1741 testsuite/libffi.call/cls_19byte.c,
1742 testsuite/libffi.call/cls_9byte1.c,
1743 testsuite/libffi.call/cls_align_float.c,
1744 testsuite/libffi.call/closure_fn1.c,
1745 testsuite/libffi.call/problem1.c,
1746 testsuite/libffi.call/closure_fn3.c,
1747 testsuite/libffi.call/cls_sshort.c,
1748 testsuite/libffi.call/closure_fn5.c,
1749 testsuite/libffi.call/cls_align_double.c,
1750 testsuite/libffi.call/cls_2byte.c,
1751 testsuite/libffi.call/nested_struct.c,
1752 testsuite/libffi.call/nested_struct10.c,
1753 testsuite/libffi.call/cls_4byte.c,
1754 testsuite/libffi.call/cls_6byte.c,
1755 testsuite/libffi.call/cls_8byte.c,
1756 testsuite/libffi.call/cls_multi_sshort.c,
1757 testsuite/libffi.call/cls_align_uint32.c,
1758 testsuite/libffi.call/cls_align_sint16.c,
1759 testsuite/libffi.call/cls_float.c,
1760 testsuite/libffi.call/cls_20byte.c,
1761 testsuite/libffi.call/cls_5_1_byte.c,
1762 testsuite/libffi.call/nested_struct2.c,
1763 testsuite/libffi.call/cls_24byte.c,
1764 testsuite/libffi.call/nested_struct4.c,
1765 testsuite/libffi.call/nested_struct6.c,
1766 testsuite/libffi.call/cls_64byte.c,
1767 testsuite/libffi.call/nested_struct8.c,
1768 testsuite/libffi.call/cls_uint.c,
1769 testsuite/libffi.call/cls_multi_ushortchar.c,
1770 testsuite/libffi.call/cls_schar.c,
1771 testsuite/libffi.call/cls_uchar.c,
1772 testsuite/libffi.call/cls_align_uint64.c,
1773 testsuite/libffi.call/cls_ulonglong.c,
1774 testsuite/libffi.call/cls_align_longdouble.c,
1775 testsuite/libffi.call/cls_1_1byte.c,
1776 testsuite/libffi.call/cls_12byte.c,
1777 testsuite/libffi.call/cls_3_1byte.c,
1778 testsuite/libffi.call/cls_3byte1.c,
1779 testsuite/libffi.call/cls_4_1byte.c,
1780 testsuite/libffi.call/cls_6_1_byte.c,
1781 testsuite/libffi.call/cls_16byte.c,
1782 testsuite/libffi.call/cls_18byte.c,
1783 testsuite/libffi.call/closure_fn0.c,
1784 testsuite/libffi.call/cls_9byte2.c,
1785 testsuite/libffi.call/closure_fn2.c,
1786 testsuite/libffi.call/closure_fn4.c,
1787 testsuite/libffi.call/cls_ushort.c,
1788 testsuite/libffi.call/closure_fn6.c,
1789 testsuite/libffi.call/cls_5byte.c,
1790 testsuite/libffi.call/cls_align_pointer.c,
1791 testsuite/libffi.call/cls_7byte.c,
1792 testsuite/libffi.call/cls_align_sint32.c,
1793 testsuite/libffi.special/unwindtest_ffi_call.cc,
1794 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001795
17962007-07-05 H.J. Lu <hongjiu.lu@intel.com>
1797
1798 * aclocal.m4: Regenerated.
1799
18002007-06-02 Paolo Bonzini <bonzini@gnu.org>
1801
1802 * configure: Regenerate.
1803
18042007-05-23 Steve Ellcey <sje@cup.hp.com>
1805
1806 * Makefile.in: Regenerate.
1807 * configure: Regenerate.
1808 * aclocal.m4: Regenerate.
1809 * include/Makefile.in: Regenerate.
1810 * testsuite/Makefile.in: Regenerate.
1811
18122007-05-10 Roman Zippel <zippel@linux-m68k.org>
1813
1814 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
1815 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
1816 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
1817 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1818 (FFI_CLOSURES): Enable closure support.
1819
18202007-05-10 Roman Zippel <zippel@linux-m68k.org>
1821
1822 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
1823 * configure: Regenerate.
1824 * fficonfig.h.in: Regenerate.
1825 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
1826 CFI_OFFSET,CFI_DEF_CFA): New macros.
1827 (ffi_call_SYSV): Add callframe annotation.
1828
18292007-05-10 Roman Zippel <zippel@linux-m68k.org>
1830
1831 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
1832 numerous test suite failures.
1833 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
1834
18352007-04-11 Paolo Bonzini <bonzini@gnu.org>
1836
1837 * Makefile.am (EXTRA_DIST): Bring up to date.
1838 * Makefile.in: Regenerate.
1839 * src/frv/eabi.S: Remove RCS keyword.
1840
18412007-04-06 Richard Henderson <rth@redhat.com>
1842
1843 * configure.ac: Tidy target case.
1844 (HAVE_LONG_DOUBLE): Allow the target to override.
1845 * configure: Regenerate.
1846 * include/ffi.h.in: Don't define ffi_type_foo if
1847 LIBFFI_HIDE_BASIC_TYPES is defined.
1848 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
1849 to ffi_type_double.
1850 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
1851 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
1852 (ffi_type_longdouble): Special case for Alpha. Don't define
1853 if long double == double.
1854
1855 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
1856 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
1857 (ffi_call, ffi_closure_osf_inner): Likewise.
1858 (ffi_closure_osf_inner): Likewise. Mark hidden.
1859 (ffi_call_osf, ffi_closure_osf): Mark hidden.
1860 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
1861 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
1862 (load_table): Handle 128-bit long double.
1863
1864 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
1865
18662007-04-06 Tom Tromey <tromey@redhat.com>
1867
1868 PR libffi/31491:
1869 * README: Fixed bug in example.
1870
18712007-04-03 Jakub Jelinek <jakub@redhat.com>
1872
1873 * src/closures.c: Include sys/statfs.h.
1874 (_GNU_SOURCE): Define on Linux.
1875 (FFI_MMAP_EXEC_SELINUX): Define.
1876 (selinux_enabled): New variable.
1877 (selinux_enabled_check): New function.
1878 (is_selinux_enabled): Define.
1879 (dlmmap): Use it.
1880
18812007-03-24 Uros Bizjak <ubizjak@gmail.com>
1882
1883 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
1884 Use 'volatile float sum' to create sum of floats to avoid false
1885 negative due to excess precision on ix86 targets.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001886 (main): Ditto.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001887
18882007-03-08 Alexandre Oliva <aoliva@redhat.com>
1889
1890 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
1891 patch.
1892 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
1893
18942007-03-07 Alexandre Oliva <aoliva@redhat.com>
1895
1896 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
1897 (ffi_prep_closure_loc): New.
1898 (ffi_prep_raw_closure_loc): New.
1899 (ffi_prep_java_raw_closure_loc): New.
1900 * src/closures.c: New file.
1901 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
1902 Replace sflags with exec_offset.
1903 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
1904 sub_segment_exec_offset): New macros.
1905 (get_segment_flags, set_segment_flags, check_segment_merge): New
1906 macros.
1907 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
1908 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
1909 destroy_mspace): Use new macros.
1910 (sys_alloc): Silence warning.
1911 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
1912 * Makefile.in: Rebuilt.
1913 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
1914 terms of ffi_prep_closure_loc.
1915 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
1916 from...
1917 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
1918 renamed version.
1919 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
1920 adjusted from...
1921 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
1922 the renamed version.
1923 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
1924 (ffi_prep_closure): ... this.
1925 * src/pa/ffi.c: Likewise.
1926 * src/cris/ffi.c: Likewise. Adjust.
1927 * src/frv/ffi.c: Likewise.
1928 * src/ia64/ffi.c: Likewise.
1929 * src/mips/ffi.c: Likewise.
1930 * src/powerpc/ffi_darwin.c: Likewise.
1931 * src/s390/ffi.c: Likewise.
1932 * src/sh/ffi.c: Likewise.
1933 * src/sh64/ffi.c: Likewise.
1934 * src/sparc/ffi.c: Likewise.
1935 * src/x86/ffi64.c: Likewise.
1936 * src/x86/ffi.c: Likewise.
1937 (FFI_INIT_TRAMPOLINE): Adjust.
1938 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
1939 (ffi_prep_raw_closure): ... this.
1940 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
1941 (ffi_prep_closure): ... this.
1942 (flush_icache): Adjust.
1943
19442007-03-07 Alexandre Oliva <aoliva@redhat.com>
1945
1946 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
1947 Lea's malloc.
1948
19492007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
1950
1951 * Makefile.am: Add dummy install-pdf target.
1952 * Makefile.in: Regenerate
1953
19542007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
1955
1956 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
1957 ffi_closure_helper_SYSV): Add long double handling.
1958
19592007-02-02 Jakub Jelinek <jakub@redhat.com>
1960
1961 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
1962 immediately after bctrl instruction.
1963
19642007-01-18 Alexandre Oliva <aoliva@redhat.com>
1965
1966 * Makefile.am (all-recursive, install-recursive,
1967 mostlyclean-recursive, clean-recursive, distclean-recursive,
1968 maintainer-clean-recursive): Add missing targets.
1969 * Makefile.in: Rebuilt.
1970
19712006-12-14 Andreas Tobler <a.tobler@schweiz.org>
1972
1973 * configure.ac: Add TARGET for x86_64-*-darwin*.
1974 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
1975 for X86_DARWIN.
1976 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
1977 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
1978 * configure: Regenerate.
1979 * Makefile.in: Regenerate.
1980 * include/Makefile.in: Regenerate.
1981 * testsuite/Makefile.in: Regenerate.
1982 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
1983 ffi_call only.
1984
19852006-12-13 Andreas Tobler <a.tobler@schweiz.org>
1986
1987 * aclocal.m4: Regenerate with aclocal -I .. as written in the
1988 Makefile.am.
1989
19902006-10-31 Geoffrey Keating <geoffk@apple.com>
1991
1992 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
1993 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
1994 Darwin.
1995 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
1996 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
1997
19982006-10-10 Paolo Bonzini <bonzini@gnu.org>
1999 Sandro Tolaini <tolaini@libero.it>
2000
Anthony Green0cfe60e2009-12-29 10:06:04 -05002001 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002002 conditional.
2003 * configure: Regenerated.
2004 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
2005 (EXTRA_DIST): Add src/x86/darwin.S.
2006 * Makefile.in: Regenerated.
2007 * include/Makefile.in: Regenerated.
2008 * testsuite/Makefile.in: Regenerated.
2009
2010 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
2011 X86_WIN32, and additionally align stack to 16 bytes.
2012 * src/x86/darwin.S: New, based on sysv.S.
2013 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
2014
20152006-09-12 David Daney <ddaney@avtrex.com>
2016
2017 PR libffi/23935
2018 * include/Makefile.am: Install both ffi.h and ffitarget.h in
2019 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
2020 * aclocal.m4: Regenerated for automake 1.9.6.
2021 * Makefile.in: Regenerated.
2022 * include/Makefile.in: Regenerated.
2023 * testsuite/Makefile.in: Regenerated.
2024
20252006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
2026
2027 * include/ffi_common.h (struct): Revert accidental commit.
2028
20292006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
2030
2031 * include/ffi_common.h: Remove lint directives.
2032 * include/ffi.h.in: Likewise.
2033
20342006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
2035
2036 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
2037 for 32-bit architectures.
2038 * testsuite/libffi.call/return_ul.c: New test case.
2039
20402006-07-19 David Daney <ddaney@avtrex.com>
2041
2042 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
2043 xfail remains for mips64.
2044
20452006-05-23 Carlos O'Donell <carlos@codesourcery.com>
2046
2047 * Makefile.am: Add install-html target. Add install-html to .PHONY
2048 * Makefile.in: Regenerate.
2049 * aclocal.m4: Regenerate.
2050 * include/Makefile.in: Regenerate.
2051 * testsuite/Makefile.in: Regenerate.
2052
20532006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2054
2055 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
2056 stack slot.
2057
20582006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
2059
2060 * README: Remove notice about 'Crazy Comments'.
2061 * src/debug.c: Remove lint directives. Cleanup white spaces.
2062 * src/java_raw_api.c: Likewise.
2063 * src/prep_cif.c: Likewise.
2064 * src/raw_api.c: Likewise.
2065 * src/ffitest.c: Delete. No longer needed, all test cases migrated
2066 to the testsuite.
2067 * src/arm/ffi.c: Remove lint directives.
2068 * src/m32r/ffi.c: Likewise.
2069 * src/pa/ffi.c: Likewise.
2070 * src/powerpc/ffi.c: Likewise.
2071 * src/powerpc/ffi_darwin.c: Likewise.
2072 * src/sh/ffi.c: Likewise.
2073 * src/sh64/ffi.c: Likewise.
2074 * src/x86/ffi.c: Likewise.
2075 * testsuite/libffi.call/float2.c: Likewise.
2076 * testsuite/libffi.call/promotion.c: Likewise.
2077 * testsuite/libffi.call/struct1.c: Likewise.
2078
20792006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
2080
2081 * src/pa/hpux32.S: Correct unwind offset calculation for
2082 ffi_closure_pa32.
2083 * src/pa/linux.S: Likewise.
2084
20852006-04-12 James E Wilson <wilson@specifix.com>
2086
2087 PR libgcj/26483
2088 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
2089 (hfa_type_load): Call stf_spill.
2090 (hfa_type_store): Call ldf_fill.
2091 (ffi_call): Adjust calls to above routines. Add local temps for
2092 macro result.
2093
20942006-04-10 Matthias Klose <doko@debian.org>
2095
2096 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
2097 directory names containing underscores.
2098
20992006-04-07 James E Wilson <wilson@specifix.com>
2100
2101 * testsuite/libffi.call/float4.c: New testcase.
2102
21032006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2104 Andreas Tobler <a.tobler@schweiz.ch>
2105
2106 * Makefile.am: Add PA_HPUX port.
2107 * Makefile.in: Regenerate.
2108 * include/Makefile.in: Likewise.
2109 * testsuite/Makefile.in: Likewise.
2110 * configure.ac: Add PA_HPUX rules.
2111 * configure: Regenerate.
2112 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
2113 Add PA_HPUX and PA64_HPUX.
2114 Rename FFI_LINUX ABI to FFI_PA32 ABI.
2115 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
2116 (FFI_TYPE_SMALL_STRUCT2): Define.
2117 (FFI_TYPE_SMALL_STRUCT4): Likewise.
2118 (FFI_TYPE_SMALL_STRUCT8): Likewise.
2119 (FFI_TYPE_SMALL_STRUCT3): Redefine.
2120 (FFI_TYPE_SMALL_STRUCT5): Likewise.
2121 (FFI_TYPE_SMALL_STRUCT6): Likewise.
2122 (FFI_TYPE_SMALL_STRUCT7): Likewise.
2123 * src/pa/ffi.c (ROUND_DOWN): Delete.
2124 (fldw, fstw, fldd, fstd): Use '__asm__'.
2125 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
2126 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
2127 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
2128 Simplify incrementing of stack slot variable. Change type of local
2129 'n' to unsigned int.
2130 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
2131 double on PA_HPUX.
2132 (ffi_prep_cif_machdep): Likewise.
2133 (ffi_call): Likewise.
2134 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
2135 return type to ffi_status. Simplify incrementing of stack slot
2136 variable. Only copy floating point argument registers when PA_LINUX
2137 is true. Reformat debug statement.
2138 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
2139 FFI_TYPE_SMALL_STRUCT8.
2140 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
2141 declaration.
2142 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
2143 Add nops to cache flush. Add trampoline for PA_HPUX.
2144 * src/pa/hpux32.S: New file.
2145 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
2146 ffi_prep_args_LINUX to ffi_prep_args_pa32.
2147 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
2148 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
2149 argument type checks so that common argument types appear first.
2150 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
2151 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
2152
21532006-03-24 Alan Modra <amodra@bigpond.net.au>
2154
2155 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
2156 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
2157 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
2158 FFI_TYPE_LONGDOUBLE.
2159 (ffi_prep_args64): Assert using IBM extended double.
2160 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
2161 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
2162 (ffi_call): Handle FFI_LINUX.
2163 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
2164 gpr3 return pointer as for struct return. Handle FFI_LINUX
2165 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
2166 unnecessarily.
2167 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
2168 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
2169 Don't use r6 as pointer to results, instead use sp offset. Don't
2170 make a special call to load lr with case table address, instead
2171 use offset from previous call.
2172 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
2173 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
2174 return.
2175
21762006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
2177
2178 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
2179 passed with FP registers correctly.
2180 (ffi_closure_helper_SYSV): Likewise.
2181 * src/sh64/sysv.S: Likewise.
2182
21832006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
2184
2185 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
2186 args and userdata unused.
2187 (closure_test_fn1): Mark cif and userdata unused.
2188 (main): Remove unused res.
2189
21902006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
2191
2192 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
2193 -O2, -O3, -Os and the warning flags -W -Wall.
2194 * testsuite/libffi.special/special.exp: Likewise.
2195 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
2196 unused parameter unused for gcc or else do nothing.
2197 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2198 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
2199 and userdata unused.
2200 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
2201 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
2202 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
2203 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
2204 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
2205 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
2206 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
2207 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
2208 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
2209 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
2210 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
2211 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
2212 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
2213 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
2214 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
2215 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
2216 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
2217 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
2218 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
2219 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
2220 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
2221 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
2222 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
2223 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
2224 Likewise.
2225 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
2226 Likewise.
2227 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
2228 Likewise.
2229 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
2230 void* to avoid compiler warning.
2231 (main): Likewise.
2232 (cls_struct_align_gn): Mark cif and userdata unused.
2233 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
2234 Likewise.
2235 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
2236 Likewise.
2237 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
2238 Likewise.
2239 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
2240 Likewise.
2241 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
2242 Likewise.
2243 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
2244 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
2245 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
2246 data unused.
2247 (main): Cast res_call to silence gcc.
2248 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
2249 data unused.
2250 (main): Cast res_call to silence gcc.
2251 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
2252 and data unused.
2253 (main): Cast res_call to silence gcc.
2254 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
2255 data unused.
2256 (main): Cast res_call to silence gcc.
2257 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
2258 data unused.
2259 (main): Cast res_call to silence gcc.
2260 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
2261 and data unused.
2262 (main): Cast res_call to silence gcc.
2263 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
2264 userdata unused.
2265 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
2266 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
2267 userdata unused.
2268 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
2269 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
2270 userdata unused.
2271 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
2272 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
2273 userdata unused.
2274 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
2275 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
2276 userdata unused.
2277 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
2278 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
2279 and userdata unused.
2280 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
2281 userdata unused.
2282 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
2283 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
2284 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
2285 Cleanup white spaces.
2286 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
2287 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
2288 cif and userdata unused.
2289 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
2290 Likewise.
2291 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
2292 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
2293 formatters to silence gcc.
2294 (B_gn): Mark cif and userdata unused.
2295 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
2296 unused.
2297 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
2298 (B_gn): Mark cif and userdata unused.
2299 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
2300 unused.
2301 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
2302 (B_gn): Mark cif and userdata unused.
2303 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
2304 unused.
2305 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
2306 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
2307 * testsuite/libffi.call/problem1.c (stub): Likewise.
2308 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
2309 gcc.
2310 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
2311 in the last commit for this test case in the test case itself.
2312 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
2313 unused.
2314 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
2315 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
2316 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
2317 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
2318 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
2319 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
2320
23212006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
2322
2323 * src/sh/sysv.S: Fix register numbers in the FDE for
2324 ffi_closure_SYSV.
2325
23262006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
2327
2328 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
2329 declaration to avoid a false negative on ix86. See PR323.
2330
23312006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
2332
2333 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
2334 and cast integer to void * if needed. Update the pointer to
2335 the FP register saved area correctly.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002336
Anthony Greenc6dddbd2009-10-04 08:11:33 -040023372006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
2338
2339 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
2340 is fixed.
2341 * testsuite/libffi.call/nested_struct4.c: Likewise.
2342
23432006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
2344
2345 * testsuite/libffi.call/return_dbl.c: New test case.
2346 * testsuite/libffi.call/return_dbl1.c: Likewise.
2347 * testsuite/libffi.call/return_dbl2.c: Likewise.
2348 * testsuite/libffi.call/return_fl.c: Likewise.
2349 * testsuite/libffi.call/return_fl1.c: Likewise.
2350 * testsuite/libffi.call/return_fl2.c: Likewise.
2351 * testsuite/libffi.call/return_fl3.c: Likewise.
2352 * testsuite/libffi.call/closure_fn6.c: Likewise.
2353
2354 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
2355 definition.
2356 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
2357 here to be used by other test cases too.
2358
2359 * testsuite/libffi.call/nested_struct10.c: New test case.
2360 * testsuite/libffi.call/nested_struct9.c: Likewise.
2361 * testsuite/libffi.call/nested_struct8.c: Likewise.
2362 * testsuite/libffi.call/nested_struct7.c: Likewise.
2363 * testsuite/libffi.call/nested_struct6.c: Likewise.
2364 * testsuite/libffi.call/nested_struct5.c: Likewise.
2365 * testsuite/libffi.call/nested_struct4.c: Likewise.
2366
23672006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
2368
2369 * configure.ac: Enable libffi for sparc64-*-freebsd*.
2370 * configure: Rebuilt.
2371
23722006-01-18 Jakub Jelinek <jakub@redhat.com>
2373
2374 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
2375 instead do the shifting inline.
2376 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
2377 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
2378 and 8 byte structs, for the remaining struct sizes don't call
2379 __lshrdi3, instead do the shifting inline.
2380
23812005-12-07 Thiemo Seufer <ths@networkno.de>
2382
2383 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
2384 missing parentheses.
2385 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
2386 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
2387 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
2388 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
2389 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
2390 FA_0_0_OFF2.
2391 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
2392 endianness bugs.
2393 (ffi_prep_closure): Improve trampoline instruction scheduling.
2394 (ffi_closure_mips_inner_O32): Fix endianness bugs.
2395
23962005-12-03 Alan Modra <amodra@bigpond.net.au>
2397
2398 * src/powerpc/ffi.c: Formatting.
2399 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
2400 (ffi_prep_args64): Likewise.
2401
24022005-09-30 Geoffrey Keating <geoffk@apple.com>
2403
2404 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
2405 darwin, use -shared-libgcc not -lgcc_s, and explain why.
2406
24072005-09-26 Tom Tromey <tromey@redhat.com>
2408
2409 * testsuite/libffi.call/float1.c (value_type): New typedef.
2410 (CANARY): New define.
2411 (main): Check for result buffer overflow.
2412 * src/powerpc/linux64.S: Handle linux64 long double returns.
2413 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
2414 (ffi_prep_cif_machdep): Handle linux64 long double returns.
2415
24162005-08-25 Alan Modra <amodra@bigpond.net.au>
2417
2418 PR target/23404
2419 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
2420 homed fp args.
2421 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
2422
24232005-08-11 Jakub Jelinek <jakub@redhat.com>
2424
2425 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
2426 (AH_BOTTOM): Add FFI_HIDDEN definition.
2427 * configure: Rebuilt.
2428 * fficonfig.h.in: Rebuilt.
2429 * src/powerpc/ffi.c (hidden): Remove.
2430 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
2431 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
2432 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
2433 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
2434 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
2435 add FFI_HIDDEN to its prototype.
2436 (ffi_closure_SYSV_inner): New.
2437 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
2438 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
2439
24402005-08-10 Alfred M. Szmidt <ams@gnu.org>
2441
2442 PR libffi/21819:
2443 * configure: Rebuilt.
2444 * configure.ac: Handle i*86-*-gnu*.
2445
24462005-08-09 Jakub Jelinek <jakub@redhat.com>
2447
2448 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
2449 DW_CFA_offset_extended_sf rather than
2450 DW_CFA_GNU_negative_offset_extended.
2451 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
2452
24532005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
2454
2455 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
2456 on sh3.
2457 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
2458 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
2459 partially on register.
2460 (ffi_closure_helper_SYSV): Likewise.
2461 (ffi_prep_cif_machdep): Don't set too many cif->flags.
2462
24632005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
2464
2465 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
2466 Remove empty line.
2467 * src/sh64/ffi.c (simple_type): Remove.
2468 (return_type): Handle small structures correctly.
2469 (ffi_prep_args): Likewise.
2470 (ffi_call): Likewise.
2471 (ffi_closure_helper_SYSV): Likewise.
2472 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
2473 Emit position independent code if PIC and remove wrong datalabel
2474 prefixes from EH data.
2475
24762005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
2477
2478 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
2479 * Makefile.in: Regenerate.
2480 * include/Makefile.in: Likewise.
2481 * testsuite/Makefile.in: Likewise.
2482 * configure.ac: Add POWERPC_FREEBSD rules.
2483 * configure: Regenerate.
2484 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
2485 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
2486 * src/powerpc/ffi.c: Add flags to handle small structure returns
2487 in ffi_call_SYSV.
2488 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
2489 Aka FFI_SYSV.
2490 (ffi_closure_helper_SYSV): Likewise.
2491 * src/powerpc/ppc_closure.S: Add return types for small structures.
2492 * src/powerpc/sysv.S: Add bits to handle small structures for
2493 final SYSV 4 ABI.
2494
24952005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
2496
2497 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
2498 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
2499 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
2500
25012005-07-05 Randolph Chung <tausq@debian.org>
2502
2503 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
2504 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
2505 structures. Kill compilation warnings.
2506 (ffi_closure_inner_LINUX): Print return values as hex in debug
2507 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
2508 Properly handle 5-7 byte structure returns.
2509 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
2510 (FFI_TYPE_SMALL_STRUCT2): Remove.
2511 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
2512 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
2513 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
2514 (checksmst1, checksmst2): Remove.
2515 (checksmst3): Optimize handling of 3-byte struct returns.
2516 (checksmst567): Properly handle 5-7 byte struct returns.
2517
25182005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2519
2520 PR libgcj/21943
2521 * src/mips/n32.S: Enforce PIC code.
2522 * src/mips/o32.S: Likewise.
2523
25242005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2525
2526 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
2527 * configure: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002528
Anthony Greenc6dddbd2009-10-04 08:11:33 -040025292005-06-01 Alan Modra <amodra@bigpond.net.au>
2530
2531 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
2532 to call ffi_closure_helper_SYSV. Append @local instead.
2533 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
2534
25352005-05-17 Kelley Cook <kcook@gcc.gnu.org>
2536
2537 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
2538 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
2539 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
2540 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
2541 include/Makefile.in, testsuite/Makefile.in: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002542
Anthony Greenc6dddbd2009-10-04 08:11:33 -040025432005-05-09 Mike Stump <mrs@apple.com>
2544
2545 * configure: Regenerate.
2546
25472005-05-08 Richard Henderson <rth@redhat.com>
2548
2549 PR libffi/21285
2550 * src/alpha/osf.S: Update unwind into to match code.
2551
25522005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
2553 Richard Henderson <rth@redhat.com>
2554
2555 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
2556 bit 11 of flags.
2557 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
2558 (ffi_prep_closure): Set carry bit if sse-used flag set.
2559 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
2560 Only load sse registers if ssecount non-zero.
2561 (ffi_closure_unix64): Only save sse registers if carry set on entry.
2562
25632005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
2564
2565 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
2566 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
2567 * configure: Regenerate.
2568
25692005-04-20 Hans-Peter Nilsson <hp@axis.com>
2570
2571 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
2572 have Tcl8.3-compatible intermediate variable.
2573
Anthony Green0cfe60e2009-12-29 10:06:04 -050025742005-04-18 Simon Posnjak <simon.posnjak@siol.net>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002575 Hans-Peter Nilsson <hp@axis.com>
2576
2577 * Makefile.am: Add CRIS support.
2578 * configure.ac: Likewise.
2579 * Makefile.in, configure, testsuite/Makefile.in,
2580 include/Makefile.in: Regenerate.
2581 * src/cris: New directory.
2582 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
2583 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
2584
2585 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
2586 \r?\n in output tests.
2587
25882005-04-12 Mike Stump <mrs@apple.com>
2589
2590 * configure: Regenerate.
2591
25922005-03-30 Hans Boehm <Hans.Boehm@hp.com>
2593
2594 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002595
Anthony Greenc6dddbd2009-10-04 08:11:33 -040025962005-03-30 Steve Ellcey <sje@cup.hp.com>
2597
2598 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
2599 (ffi_sarg) Ditto.
2600 * src/ia64/unix.S (ffi_closure_unix): Extend gp
2601 to 64 bits in ILP32 mode.
2602 Load 64 bits even for short data.
2603
26042005-03-23 Mike Stump <mrs@apple.com>
2605
2606 * src/powerpc/darwin.S: Update for -m64 multilib.
2607 * src/powerpc/darwin_closure.S: Likewise.
2608
26092005-03-21 Zack Weinberg <zack@codesourcery.com>
2610
2611 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
2612 Do not set tool_include_dir.
2613 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
2614 Regenerate.
2615 * include/Makefile.am: Set gcc_version and toollibffidir.
2616 * include/Makefile.in: Regenerate.
2617
26182005-02-22 Andrew Haley <aph@redhat.com>
2619
2620 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
2621 odd-numbered register pairs for 64-bit integer types.
2622
26232005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
2624
2625 PR libffi/20104
2626 * testsuite/libffi.call/return_ll1.c: New test case.
2627
26282005-02-11 Janis Johnson <janis187@us.ibm.com>
2629
2630 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
2631 * testsuite/libffi.call/float.c: Ditto.
2632 * testsuite/libffi.call/float2.c: Ditto.
2633 * testsuite/libffi.call/float3.c: Ditto.
2634
26352005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
2636
2637 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
2638
26392005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2640
2641 * testsuite/libffi.special/special.exp (cxx_options): Add
2642 -shared-libgcc.
2643
26442004-12-31 Richard Henderson <rth@redhat.com>
2645
2646 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
2647 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
2648 offset parameters with a type parameter; deduce size and structure
2649 alignment. Update all users.
2650
26512004-12-31 Richard Henderson <rth@redhat.com>
2652
2653 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
2654 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
2655 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
2656 into ffi_prep_closure.
2657 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
2658 from scratch.
2659
26602004-12-27 Richard Henderson <rth@redhat.com>
2661
2662 * src/x86/unix64.S: Fix typo in unwind info.
2663
26642004-12-25 Richard Henderson <rth@redhat.com>
2665
2666 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
2667 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
2668 (merge_classes): Check for it.
2669 (SSE_CLASS_P): New.
2670 (classify_argument): Pass byte_offset by value; perform all updates
2671 inside struct case.
2672 (examine_argument): Add classes argument; handle
2673 X86_64_COMPLEX_X87_CLASS.
2674 (ffi_prep_args): Merge into ...
2675 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
2676 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
2677 (ffi_fill_return_value): Remove.
2678 (ffi_prep_closure): Remove dead assert.
2679 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
2680 Rewrite to use struct register_args instead of va_list. Create
2681 flags for handling structure returns.
2682 * src/x86/unix64.S: Remove dead strings.
2683 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
2684 stack frame with ffi_call. Handle structure returns properly.
2685 (float2sse, floatfloat2sse, double2sse): Remove.
2686 (sse2float, sse2double, sse2floatfloat): Remove.
2687 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
2688 to handle structure returns properly.
2689
26902004-12-08 David Edelsohn <edelsohn@gnu.org>
2691
2692 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
2693 PICFLAG.
2694 * Makefile.in: Regenerated.
2695
26962004-12-02 Richard Sandiford <rsandifo@redhat.com>
2697
2698 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
2699 * configure, aclocal.m4, Makefile.in: Regenerate.
2700 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
2701
27022004-11-29 Kelley Cook <kcook@gcc.gnu.org>
2703
2704 * configure: Regenerate for libtool change.
2705
27062004-11-25 Kelley Cook <kcook@gcc.gnu.org>
2707
2708 * configure: Regenerate for libtool reversion.
2709
27102004-11-24 Kelley Cook <kcook@gcc.gnu.org>
2711
2712 * configure: Regenerate for libtool change.
2713
27142004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2715
2716 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
2717
27182004-11-23 Richard Sandiford <rsandifo@redhat.com>
2719
2720 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
2721 of jal. Use an absolute encoding for the frame information.
2722
27232004-11-23 Kelley Cook <kcook@gcc.gnu.org>
2724
2725 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
2726 * acinclude.m4: Delete logic for sincludes.
2727 * aclocal.m4, Makefile.in, configure: Regenerate.
2728 * include/Makefile: Likewise.
2729 * testsuite/Makefile: Likewise.
2730
27312004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
2732
2733 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
2734 on a 8-byte boundary.
2735 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
2736
27372004-10-27 Richard Earnshaw <rearnsha@arm.com>
2738
2739 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
2740 long long values. Round stack allocation to a multiple of 8 bytes
2741 for ATPCS compatibility.
2742 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
2743 names. Handle returning long long types. Add Thumb and interworking
2744 support. Improve soft-float code.
2745
27462004-10-27 Richard Earnshaw <rearnsha@arm.com>
2747
2748 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
2749 (libffi_exit): New function.
2750 (libffi_init): Build the testglue wrapper if needed.
2751
27522004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
2753
2754 PR other/18138
2755 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
2756
27572004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2758
2759 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
2760
27612004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
2762
2763 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
2764 * testsuite/libffi.call/float3.c: New test case.
2765
27662004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
2767
2768 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
2769 the function returning a structure pointed with R2.
2770 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
2771 the structure return value if T bit set. Emit position
2772 independent code and EH data if PIC.
2773
27742004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2775
2776 * Makefile.am: Add m32r support.
2777 * configure.ac: Likewise.
2778 * Makefile.in: Regenerate.
2779 * confiugre: Regenerate.
2780 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
2781 (uint64, sint64, double, longdouble)
2782 * src/m32r: New directory.
2783 * src/m32r/ffi.c: New file.
2784 * src/m32r/sysv.S: Likewise.
2785 * src/m32r/ffitarget.h: Likewise.
2786
27872004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
2788
2789 * testsuite/libffi.call/negint.c: New test case.
2790
27912004-09-14 H.J. Lu <hongjiu.lu@intel.com>
2792
2793 PR libgcj/17465
2794 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
2795 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
2796 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
2797 DYLD_LIBRARY_PATH.
2798
27992004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
2800
2801 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
2802 * testsuite/libffi.call/promotion.c: Likewise.
2803 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
2804 whitespaces.
2805 * testsuite/libffi.call/return_sc.c: Likewise.
2806 * testsuite/libffi.call/return_uc.c: Likewise.
2807
28082004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
2809
2810 * src/powerpc/darwin.S: Fix comments and identation.
2811 * src/powerpc/darwin_closure.S: Likewise.
2812
28132004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
2814
2815 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
2816 (ffi_prep_args): Handle longdouble arguments.
2817 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
2818 longdouble.
2819 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
2820 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
2821 values.
2822 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
2823 * src/types.c: Defined longdouble size and alignment for darwin.
2824
28252004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
2826
2827 * src/powerpc/aix.S: Remove whitespaces.
2828 * src/powerpc/aix_closure.S: Likewise.
2829 * src/powerpc/asm.h: Likewise.
2830 * src/powerpc/ffi.c: Likewise.
2831 * src/powerpc/ffitarget.h: Likewise.
2832 * src/powerpc/linux64.S: Likewise.
2833 * src/powerpc/linux64_closure.S: Likewise.
2834 * src/powerpc/ppc_closure.S: Likewise.
2835 * src/powerpc/sysv.S: Likewise.
2836
28372004-08-30 Anthony Green <green@redhat.com>
2838
2839 * Makefile.am: Add frv support.
2840 * Makefile.in, testsuite/Makefile.in: Rebuilt.
2841 * configure.ac: Read configure.host.
2842 * configure.in: Read configure.host.
2843 * configure.host: New file. frv-elf needs libgloss.
2844 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
2845 alignment. This is needed to frv and shouldn't harm the others.
2846 * include/ffi_common.h (ALIGN_DOWN): New macro.
2847 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
2848
28492004-08-24 David Daney <daney@avtrex.com>
2850
2851 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
2852 * testsuite/libffi.call/closure_fn1.c: Likewise.
2853 * testsuite/libffi.call/closure_fn2.c Likewise.
2854 * testsuite/libffi.call/closure_fn3.c: Likewise.
2855 * testsuite/libffi.call/closure_fn4.c: Likewise.
2856 * testsuite/libffi.call/closure_fn5.c: Likewise.
2857 * testsuite/libffi.call/cls_18byte.c: Likewise.
2858 * testsuite/libffi.call/cls_19byte.c: Likewise.
2859 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2860 * testsuite/libffi.call/cls_20byte.c: Likewise.
2861 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2862 * testsuite/libffi.call/cls_24byte.c: Likewise.
2863 * testsuite/libffi.call/cls_2byte.c: Likewise.
2864 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2865 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2866 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2867 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2868 * testsuite/libffi.call/cls_4byte.c: Likewise.
2869 * testsuite/libffi.call/cls_64byte.c: Likewise.
2870 * testsuite/libffi.call/cls_6byte.c: Likewise.
2871 * testsuite/libffi.call/cls_7byte.c: Likewise.
2872 * testsuite/libffi.call/cls_8byte.c: Likewise.
2873 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2874 * testsuite/libffi.call/cls_9byte2.c: Likewise.
2875 * testsuite/libffi.call/cls_align_double.c: Likewise.
2876 * testsuite/libffi.call/cls_align_float.c: Likewise.
2877 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
2878 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
2879 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
2880 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
2881 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
2882 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
2883 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
2884 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
2885 * testsuite/libffi.call/cls_double.c: Likewise.
2886 * testsuite/libffi.call/cls_float.c: Likewise.
2887 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
2888 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
2889 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
2890 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
2891 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
2892 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
2893 * testsuite/libffi.call/cls_schar.c: Likewise.
2894 * testsuite/libffi.call/cls_sint.c: Likewise.
2895 * testsuite/libffi.call/cls_sshort.c: Likewise.
2896 * testsuite/libffi.call/cls_uchar.c: Likewise.
2897 * testsuite/libffi.call/cls_uint.c: Likewise.
2898 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2899 * testsuite/libffi.call/cls_ushort.c: Likewise.
2900 * testsuite/libffi.call/nested_struct.c: Likewise.
2901 * testsuite/libffi.call/nested_struct1.c: Likewise.
2902 * testsuite/libffi.call/nested_struct2.c: Likewise.
2903 * testsuite/libffi.call/nested_struct3.c: Likewise.
2904 * testsuite/libffi.call/problem1.c: Likewise.
2905 * testsuite/libffi.special/unwindtest.cc: Likewise.
2906 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
2907 to zero.
2908 * testsuite/libffi.call/cls_16byte.c: Likewise.
2909 * testsuite/libffi.call/cls_5byte.c: Likewise.
2910
29112004-08-23 David Daney <daney@avtrex.com>
2912
2913 PR libgcj/13141
2914 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
2915 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
2916 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
2917 parameters and return types.
2918 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
2919 (ffi_prep_closure): Ditto.
2920 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
2921 alignment calculations.
2922 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
2923 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
2924
29252004-08-14 Casey Marshall <csm@gnu.org>
2926
2927 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
2928 contain `FFI_TYPE_UINT64' as return type for any 64-bit
2929 integer (O32 ABI only).
2930 (ffi_prep_closure): new function.
2931 (ffi_closure_mips_inner_O32): new function.
2932 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
2933 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
2934 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
2935 64 bit integers correctly.
2936 (ffi_closure_O32): new function.
2937 Added DWARF-2 unwind info for both functions.
2938
29392004-08-10 Andrew Haley <aph@redhat.com>
2940
2941 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
2942
29432004-08-01 Robert Millan <robertmh@gnu.org>
2944
2945 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
2946 * configure: Regenerate.
2947
29482004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
2949
2950 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
2951 and mmap() explicitly instead of relying on preset autoconf cache
2952 variables.
2953 * aclocal.m4: Regenerate.
2954 * configure: Regenerate.
2955
29562004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
2957
2958 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
2959 (ffi_check_float_struct): Remove unused prototype.
2960
29612004-06-30 Geoffrey Keating <geoffk@apple.com>
2962
2963 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
2964 character on Darwin, use '\n\t' instead.
2965
29662004-06-26 Matthias Klose <doko@debian.org>
2967
2968 * libtool-version: Fix typo in revision/age.
2969
29702004-06-17 Matthias Klose <doko@debian.org>
2971
2972 * libtool-version: New.
2973 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
2974 * Makefile.in: Regenerate.
2975
29762004-06-15 Paolo Bonzini <bonzini@gnu.org>
2977
2978 * Makefile.am: Remove useless multilib rules.
2979 * Makefile.in: Regenerate.
2980 * aclocal.m4: Regenerate with automake 1.8.5.
2981 * configure.ac: Remove useless multilib configury.
2982 * configure: Regenerate.
2983
29842004-06-15 Paolo Bonzini <bonzini@gnu.org>
2985
2986 * .cvsignore: New file.
2987
29882004-06-10 Jakub Jelinek <jakub@redhat.com>
2989
2990 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
2991 fp_done.
2992 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
2993 changed from 8.
2994
29952004-06-06 Sean McNeil <sean@mcneil.com>
2996
2997 * configure.ac: Add x86_64-*-freebsd* support.
2998 * configure: Regenerate.
2999
30002004-04-26 Joe Buck <jbuck@welsh-buck.org>
3001
3002 Bug 15093
3003 * configure.ac: Test for existence of mmap and sys/mman.h before
3004 checking blacklist. Fix suggested by Jim Wilson.
3005 * configure: Regenerate.
3006
30072004-04-26 Matt Austern <austern@apple.com>
3008
3009 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
3010 FDE location.
3011 * src/powerpc/darwin_closure.S: Likewise.
3012
30132004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
3014
3015 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
3016 error. Reported by Thomas Heller <theller@python.net>.
3017 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
3018 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
3019
30202004-03-20 Matthias Klose <doko@debian.org>
3021
3022 * src/pa/linux.S: Fix typo.
3023
30242004-03-19 Matthias Klose <doko@debian.org>
3025
3026 * Makefile.am: Update.
3027 * Makefile.in: Regenerate.
3028 * src/pa/ffi.h.in: Remove.
3029 * src/pa/ffitarget.h: New file.
3030
30312004-02-10 Randolph Chung <tausq@debian.org>
3032
3033 * Makefile.am: Add PA support.
3034 * Makefile.in: Regenerate.
3035 * include/Makefile.in: Regenerate.
3036 * configure.ac: Add PA target.
3037 * configure: Regenerate.
3038 * src/pa/ffi.c: New file.
3039 * src/pa/ffi.h.in: Add PA support.
3040 * src/pa/linux.S: New file.
3041 * prep_cif.c: Add PA support.
3042
30432004-03-16 Hosaka Yuji <hos@tamanegi.org>
3044
3045 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
3046 double.
3047 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
3048 with ecif->cif->flags.
3049 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
3050 with cif->flags.
3051 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
3052 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
3053 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
3054 sc_retstruct2b): Add for 1 or 2-bytes struct case.
3055
30562004-03-15 Kelley Cook <kcook@gcc.gnu.org>
3057
3058 * configure.in: Rename file to ...
3059 * configure.ac: ... this.
3060 * fficonfig.h.in: Regenerate.
3061 * Makefile.in: Regenerate.
3062 * include/Makefile.in: Regenerate.
3063 * testsuite/Makefile.in: Regenerate.
3064
30652004-03-12 Matt Austern <austern@apple.com>
3066
3067 * src/powerpc/darwin.S: Fix EH information so it corresponds to
3068 changes in EH format resulting from addition of linkonce support.
3069 * src/powerpc/darwin_closure.S: Likewise.
3070
30712004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
3072 Paolo Bonzini <bonzini@gnu.org>
3073
3074 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
3075 Remove VPATH. Remove rules for object files. Remove multilib support.
3076 (AM_CCASFLAGS): Add.
3077 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
3078 (AC_PREREQ): Bump version to 2.59.
3079 (AC_INIT): Fill with version info and bug address.
3080 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
3081 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
3082 De-precious CC so that the right flags are passed down to multilibs.
3083 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
3084 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
3085 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
3086 * configure: Rebuilt.
3087 * aclocal.m4: Likewise.
3088 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
3089 * fficonfig.h.in: Likewise.
3090
30912004-03-11 Andreas Schwab <schwab@suse.de>
3092
3093 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
3094 arguments from fp registers only for the first 8 parameter slots.
3095 Don't convert a float parameter when passed in memory.
3096
30972004-03-09 Hans-Peter Nilsson <hp@axis.com>
3098
3099 * configure: Regenerate for config/accross.m4 correction.
3100
31012004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
3102
3103 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
3104 ecif->cif->bytes to bytes.
3105 (ffi_prep_cif_machdep): Add braces around nested if statement.
3106
31072004-02-09 Alan Modra <amodra@bigpond.net.au>
3108
3109 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
3110
3111 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
3112 (ffi_closure_helper_LINUX64): Fix typo.
3113 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
3114 for powerpc64-*-*.
3115 * testsuite/libffi.call/float.c: Likewise.
3116 * testsuite/libffi.call/float2.c: Likewise.
3117
31182004-02-08 Alan Modra <amodra@bigpond.net.au>
3119
3120 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
3121 long double function return and long double arg handling.
3122 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
3123 Use "end_pfr" instead of "nf". Correct long double handling.
3124 Localise "temp".
3125 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
3126 return value.
3127 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
3128 space for long double return value. Adjust stack frame and offsets.
3129 Load f2 long double return.
3130
31312004-02-07 Alan Modra <amodra@bigpond.net.au>
3132
3133 * src/types.c: Use 16 byte long double for POWERPC64.
3134
31352004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3136
3137 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
3138 when the structure return address is passed in %o0.
3139 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
3140 (ffi_v9_layout_struct): Align the field following a nested structure
3141 on a word boundary. Use memmove instead of memcpy.
3142 (ffi_call): Update call to ffi_V9_return_struct.
3143 (ffi_prep_closure): Define 'ctx' only for V8.
3144 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
3145 and ffi_closure_sparc_inner_v9.
3146 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
3147 Always skip the structure return address. For structures and long
3148 doubles, copy the argument directly.
3149 (ffi_closure_sparc_inner_v9): Skip the structure return address only
3150 if required. Shift the maximum floating-point slot accordingly. For
3151 big structures, copy the argument directly; otherwise, left-justify the
3152 argument and call ffi_v9_layout_struct to lay out the structure on
3153 the stack.
3154 * src/sparc/v8.S: Undef STACKFRAME before defining it.
3155 (ffi_closure_v8): Pass the structure return address. Update call to
3156 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
3157 Skip the 'unimp' insn when returning long doubles and structures.
3158 * src/sparc/v9.S: Undef STACKFRAME before defining it.
3159 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
3160 FFI_TYPE_INT handling. Load structures both in integers and
3161 floating-point registers on return.
3162 * README: Update status of the SPARC port.
3163
31642004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
3165
3166 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
3167 as of type ffi_arg.
3168 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
3169
31702004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
3171
3172 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
3173 value as of type ffi_arg, not unsigned int.
3174
31752004-01-21 Michael Ritzert <ritzert@t-online.de>
3176
3177 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
3178 of the LHS.
3179
31802004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
3181
3182 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
3183 Solaris.
3184
31852004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3186
3187 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
3188 to void *.
3189
31902003-12-10 Richard Henderson <rth@redhat.com>
3191
3192 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
3193 size_t instead of int.
3194
31952003-12-04 Hosaka Yuji <hos@tamanegi.org>
3196
3197 * testsuite/libffi.call/many_win32.c: Include <float.h>.
3198 * testsuite/libffi.call/many_win32.c (main): Replace variable
3199 int i with unsigned long ul.
3200
3201 * testsuite/libffi.call/cls_align_uint64.c: New test case.
3202 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3203 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3204 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3205 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3206 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3207 * testsuite/libffi.call/cls_align_float.c: Likewise.
3208 * testsuite/libffi.call/cls_align_double.c: Likewise.
3209 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3210 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3211
32122003-12-02 Hosaka Yuji <hos@tamanegi.org>
3213
3214 PR other/13221
3215 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
3216 Align arguments to 32 bits.
3217
32182003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
3219
3220 PR other/13221
3221 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
3222 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3223 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3224 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3225 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3226 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3227
3228 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
3229
32302003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3231
3232 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
3233 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3234
32352003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
3236
3237 * Makefile.in: Rebuilt.
3238 * configure: Likewise.
3239 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
3240 the right type.
3241
32422003-11-21 Andreas Jaeger <aj@suse.de>
3243 Andreas Tobler <a.tobler@schweiz.ch>
3244
3245 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
3246 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
3247 * Makefile.in: Rebuilt.
3248 * aclocal.m4: Likewise.
3249 * configure: Likewise.
3250 * fficonfig.h.in: Likewise.
3251 * testsuite/lib/libffi-dg.exp: Add include dir.
3252 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
3253 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3254 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
3255 for ffi_closure if available.
3256 * testsuite/libffi.call/closure_fn1.c: Likewise.
3257 * testsuite/libffi.call/closure_fn2.c: Likewise.
3258 * testsuite/libffi.call/closure_fn3.c: Likewise.
3259 * testsuite/libffi.call/closure_fn4.c: Likewise.
3260 * testsuite/libffi.call/closure_fn5.c: Likewise.
3261 * testsuite/libffi.call/cls_12byte.c: Likewise.
3262 * testsuite/libffi.call/cls_16byte.c: Likewise.
3263 * testsuite/libffi.call/cls_18byte.c: Likewise.
3264 * testsuite/libffi.call/cls_19byte.c: Likewise.
3265 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3266 * testsuite/libffi.call/cls_20byte.c: Likewise.
3267 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3268 * testsuite/libffi.call/cls_24byte.c: Likewise.
3269 * testsuite/libffi.call/cls_2byte.c: Likewise.
3270 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3271 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3272 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3273 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3274 * testsuite/libffi.call/cls_4byte.c: Likewise.
3275 * testsuite/libffi.call/cls_5byte.c: Likewise.
3276 * testsuite/libffi.call/cls_64byte.c: Likewise.
3277 * testsuite/libffi.call/cls_6byte.c: Likewise.
3278 * testsuite/libffi.call/cls_7byte.c: Likewise.
3279 * testsuite/libffi.call/cls_8byte.c: Likewise.
3280 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3281 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3282 * testsuite/libffi.call/cls_double.c: Likewise.
3283 * testsuite/libffi.call/cls_float.c: Likewise.
3284 * testsuite/libffi.call/cls_schar.c: Likewise.
3285 * testsuite/libffi.call/cls_sint.c: Likewise.
3286 * testsuite/libffi.call/cls_sshort.c: Likewise.
3287 * testsuite/libffi.call/cls_uchar.c: Likewise.
3288 * testsuite/libffi.call/cls_uint.c: Likewise.
3289 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3290 * testsuite/libffi.call/cls_ushort.c: Likewise.
3291 * testsuite/libffi.call/nested_struct.c: Likewise.
3292 * testsuite/libffi.call/nested_struct1.c: Likewise.
3293 * testsuite/libffi.call/nested_struct2.c: Likewise.
3294 * testsuite/libffi.call/nested_struct3.c: Likewise.
3295 * testsuite/libffi.call/problem1.c: Likewise.
3296 * testsuite/libffi.special/unwindtest.cc: Likewise.
3297
32982003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
3299
3300 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
3301
33022003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
3303
3304 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
3305 Add -lgcc_s to additional flags.
3306
33072003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
3308
3309 * configure.in, include/Makefile.am: PR libgcj/11147, install
3310 the ffitarget.h header file in a gcc versioned and target
3311 dependent place.
3312 * configure: Regenerated.
3313 * Makefile.in, include/Makefile.in: Likewise.
3314 * testsuite/Makefile.in: Likewise.
3315
33162003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
3317
3318 * testsuite/libffi.call/closure_fn0.c: Print result and check
3319 with dg-output to make debugging easier.
3320 * testsuite/libffi.call/closure_fn1.c: Likewise.
3321 * testsuite/libffi.call/closure_fn2.c: Likewise.
3322 * testsuite/libffi.call/closure_fn3.c: Likewise.
3323 * testsuite/libffi.call/closure_fn4.c: Likewise.
3324 * testsuite/libffi.call/closure_fn5.c: Likewise.
3325 * testsuite/libffi.call/cls_12byte.c: Likewise.
3326 * testsuite/libffi.call/cls_16byte.c: Likewise.
3327 * testsuite/libffi.call/cls_18byte.c: Likewise.
3328 * testsuite/libffi.call/cls_19byte.c: Likewise.
3329 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3330 * testsuite/libffi.call/cls_20byte.c: Likewise.
3331 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3332 * testsuite/libffi.call/cls_24byte.c: Likewise.
3333 * testsuite/libffi.call/cls_2byte.c: Likewise.
3334 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3335 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3336 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3337 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3338 * testsuite/libffi.call/cls_4byte.c: Likewise.
3339 * testsuite/libffi.call/cls_5byte.c: Likewise.
3340 * testsuite/libffi.call/cls_64byte.c: Likewise.
3341 * testsuite/libffi.call/cls_6byte.c: Likewise.
3342 * testsuite/libffi.call/cls_7byte.c: Likewise.
3343 * testsuite/libffi.call/cls_8byte.c: Likewise.
3344 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3345 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3346 * testsuite/libffi.call/cls_double.c: Likewise.
3347 * testsuite/libffi.call/cls_float.c: Likewise.
3348 * testsuite/libffi.call/cls_schar.c: Likewise.
3349 * testsuite/libffi.call/cls_sint.c: Likewise.
3350 * testsuite/libffi.call/cls_sshort.c: Likewise.
3351 * testsuite/libffi.call/cls_uchar.c: Likewise.
3352 * testsuite/libffi.call/cls_uint.c: Likewise.
3353 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3354 * testsuite/libffi.call/cls_ushort.c: Likewise.
3355 * testsuite/libffi.call/problem1.c: Likewise.
3356
3357 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
3358 static.
3359
33602003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
3361
3362 * testsuite/libffi.call/cls_9byte2.c: New test case.
3363 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3364 * testsuite/libffi.call/cls_64byte.c: Likewise.
3365 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3366 * testsuite/libffi.call/cls_19byte.c: Likewise.
3367 * testsuite/libffi.call/cls_18byte.c: Likewise.
3368 * testsuite/libffi.call/closure_fn4.c: Likewise.
3369 * testsuite/libffi.call/closure_fn5.c: Likewise.
3370 * testsuite/libffi.call/cls_schar.c: Likewise.
3371 * testsuite/libffi.call/cls_sint.c: Likewise.
3372 * testsuite/libffi.call/cls_sshort.c: Likewise.
3373 * testsuite/libffi.call/nested_struct2.c: Likewise.
3374 * testsuite/libffi.call/nested_struct3.c: Likewise.
3375
33762003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
3377
3378 * testsuite/libffi.call/cls_double.c: Do a check on the result.
3379 * testsuite/libffi.call/cls_uchar.c: Likewise.
3380 * testsuite/libffi.call/cls_uint.c: Likewise.
3381 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3382 * testsuite/libffi.call/cls_ushort.c: Likewise.
3383 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
3384
33852003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
3386
3387 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
3388 the initialization.
3389
33902003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
3391
3392 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
3393 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
3394
33952003-10-22 David Daney <ddaney@avtrex.com>
3396
3397 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
3398 __attribute__((__mode__(__SI__))) and friends.
3399
34002003-10-22 Andreas Schwab <schwab@suse.de>
3401
3402 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
3403
34042003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
3405
3406 * configure.in: AC_LINK_FILES(ffitarget.h).
3407 * configure: Regenerate.
3408 * Makefile.in: Likewise.
3409 * include/Makefile.in: Likewise.
3410 * testsuite/Makefile.in: Likewise.
3411 * fficonfig.h.in: Likewise.
3412
34132003-10-21 Paolo Bonzini <bonzini@gnu.org>
3414 Richard Henderson <rth@redhat.com>
3415
3416 Avoid that ffi.h includes fficonfig.h.
3417
3418 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
3419 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
3420 (TARGET_SRC_MIPS_SGI): Removed.
3421 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
3422 (MIPS_SGI): Removed.
3423 (CLEANFILES): Removed.
3424 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
3425 targets.
3426 * acconfig.h: Removed.
3427 * configure.in: Compute sizeofs only for double and long double.
3428 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
3429 into AC_DEFINE instead of using acconfig.h. Create
3430 include/ffitarget.h instead of include/fficonfig.h. Rename
3431 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
3432 AC_DEFINE EH_FRAME_FLAGS.
3433 * include/Makefile.am (DISTCLEANFILES): New automake macro.
3434 (hack_DATA): Add ffitarget.h.
3435 * include/ffi.h.in: Remove all system specific definitions.
3436 Declare raw API even if it is not installed, why bother?
3437 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
3438 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
3439 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
3440 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
3441 * include/ffi_common.h (bool): Do not define.
3442 (ffi_assert): Accept failed assertion.
3443 (ffi_type_test): Return void and accept file/line.
3444 (FFI_ASSERT): Pass stringized failed assertion.
3445 (FFI_ASSERT_AT): New macro.
3446 (FFI_ASSERT_VALID_TYPE): New macro.
3447 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
3448 UINT64, SINT64): Define here with gcc's __attribute__ macro
3449 instead of in ffi.h
3450 (FLOAT32, ALIGN): Define here instead of in ffi.h
3451 * include/ffi-mips.h: Removed. Its content moved to
3452 src/mips/ffitarget.h after separating assembly and C sections.
3453 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
3454 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
3455 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
3456 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
3457 SIZEOF_ARG -> FFI_SIZEOF_ARG.
3458 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
3459 * src/debug.c (ffi_assert): Accept stringized failed assertion.
3460 (ffi_type_test): Rewritten.
3461 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
3462 FFI_ASSERT_VALID_TYPE.
3463 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
3464 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
3465 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
3466 src/s390/ffitarget.h, src/sh/ffitarget.h,
3467 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
3468 src/x86/ffitarget.h: New files.
3469 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
3470 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
3471 src/powerpc/aix.S, src/powerpc/darwin.S,
3472 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
3473 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
3474 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
3475 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
3476 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
3477 include fficonfig.h
3478
34792003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3480
3481 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
3482 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
3483
34842003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
3485
3486 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
3487 Used when FFI_DEBUG = 1.
3488
34892003-10-14 Alan Modra <amodra@bigpond.net.au>
3490
3491 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
3492 and align.
3493
34942003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3495
3496 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
3497 FFI_MIPS_O32 for O32 ABI.
3498
34992003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
3500
3501 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
3502 SPARC64. Cleanup whitespaces.
3503
35042003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
3505
3506 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
3507 strongarm, xscale. Cleanup whitespaces.
3508 * testsuite/libffi.call/closure_fn1.c: Likewise.
3509 * testsuite/libffi.call/closure_fn2.c: Likewise.
3510 * testsuite/libffi.call/closure_fn3.c: Likewise.
3511 * testsuite/libffi.call/cls_12byte.c: Likewise.
3512 * testsuite/libffi.call/cls_16byte.c: Likewise.
3513 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3514 * testsuite/libffi.call/cls_20byte.c: Likewise.
3515 * testsuite/libffi.call/cls_24byte.c: Likewise.
3516 * testsuite/libffi.call/cls_2byte.c: Likewise.
3517 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3518 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3519 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3520 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3521 * testsuite/libffi.call/cls_4byte.c: Likewise.
3522 * testsuite/libffi.call/cls_5byte.c: Likewise.
3523 * testsuite/libffi.call/cls_6byte.c: Likewise.
3524 * testsuite/libffi.call/cls_7byte.c: Likewise.
3525 * testsuite/libffi.call/cls_8byte.c: Likewise.
3526 * testsuite/libffi.call/cls_double.c: Likewise.
3527 * testsuite/libffi.call/cls_float.c: Likewise.
3528 * testsuite/libffi.call/cls_uchar.c: Likewise.
3529 * testsuite/libffi.call/cls_uint.c: Likewise.
3530 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3531 * testsuite/libffi.call/cls_ushort.c: Likewise.
3532 * testsuite/libffi.call/nested_struct.c: Likewise.
3533 * testsuite/libffi.call/nested_struct1.c: Likewise.
3534 * testsuite/libffi.call/problem1.c: Likewise.
3535 * testsuite/libffi.special/unwindtest.cc: Likewise.
3536 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
3537
35382003-09-18 David Edelsohn <edelsohn@gnu.org>
3539
3540 * src/powerpc/aix.S: Cleanup whitespaces.
3541 * src/powerpc/aix_closure.S: Likewise.
3542
35432003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
3544
3545 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
3546 * src/powerpc/darwin_closure.S: Likewise.
3547 * src/powerpc/ffi_darwin.c: Likewise.
3548
35492003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
3550 David Edelsohn <edelsohn@gnu.org>
3551
3552 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
3553 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
3554 parameter stack.
3555 * src/powerpc/darwin_closure.S: Likewise.
3556 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
3557 according to the Darwin/AIX ABI.
3558 (ffi_prep_cif_machdep): Likewise.
3559 (ffi_closure_helper_DARWIN): Likewise.
3560 Remove the outgoing parameter stack logic. Simplify the evaluation
3561 of the different CASE types.
3562 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
3563 statement in the trampoline code.
3564
35652003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
3566
3567 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
3568 for the register size.
3569 (ffi_closure_helper_SYSV): Handle the structure return value
3570 address correctly.
3571 (ffi_closure_helper_SYSV): Return the appropriate type when
3572 the registers are used for the structure return value.
3573 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
3574 the 64-bit return value. Update copyright years.
3575
35762003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3577
3578 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
3579 srcdir for ffi_mips.h.
3580
35812003-09-12 Alan Modra <amodra@bigpond.net.au>
3582
3583 * src/prep_cif.c (initialize_aggregate): Include tail padding in
3584 structure size.
3585 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
3586 placement of float result.
3587 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
3588 cast of "resp" for big-endian 64 bit machines.
3589
35902003-09-11 Alan Modra <amodra@bigpond.net.au>
3591
3592 * src/types.c (double, longdouble): Merge identical SH and ARM
3593 typedefs, and add POWERPC64.
3594 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
3595 struct split over gpr and rest.
3596 (ffi_prep_cif_machdep): Correct intarg_count for structures.
3597 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
3598
35992003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
3600
3601 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
3602 passing correctly.
3603
36042003-09-09 Alan Modra <amodra@bigpond.net.au>
3605
3606 * configure: Regenerate.
3607
36082003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
3609
3610 * Makefile.am: Remove build rules for ffitest.
3611 * Makefile.in: Rebuilt.
3612
36132003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
3614
3615 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
3616 about implicit declaration of abort().
3617
36182003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
3619
3620 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
3621 * Makefile.in: Rebuilt.
3622 * configure.in: Add dejagnu test framework.
3623 * configure: Rebuilt.
3624
3625 * testsuite/Makefile.am: New file.
3626 * testsuite/Makefile.in: Built
3627 * testsuite/lib/libffi-dg.exp: New file.
3628 * testsuite/config/default.exp: Likewise.
3629 * testsuite/libffi.call/call.exp: Likewise.
3630 * testsuite/libffi.call/ffitest.h: Likewise.
3631 * testsuite/libffi.call/closure_fn0.c: Likewise.
3632 * testsuite/libffi.call/closure_fn1.c: Likewise.
3633 * testsuite/libffi.call/closure_fn2.c: Likewise.
3634 * testsuite/libffi.call/closure_fn3.c: Likewise.
3635 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3636 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3637 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3638 * testsuite/libffi.call/cls_2byte.c: Likewise.
3639 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3640 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3641 * testsuite/libffi.call/cls_4byte.c: Likewise.
3642 * testsuite/libffi.call/cls_5byte.c: Likewise.
3643 * testsuite/libffi.call/cls_6byte.c: Likewise.
3644 * testsuite/libffi.call/cls_7byte.c: Likewise.
3645 * testsuite/libffi.call/cls_8byte.c: Likewise.
3646 * testsuite/libffi.call/cls_12byte.c: Likewise.
3647 * testsuite/libffi.call/cls_16byte.c: Likewise.
3648 * testsuite/libffi.call/cls_20byte.c: Likewise.
3649 * testsuite/libffi.call/cls_24byte.c: Likewise.
3650 * testsuite/libffi.call/cls_double.c: Likewise.
3651 * testsuite/libffi.call/cls_float.c: Likewise.
3652 * testsuite/libffi.call/cls_uchar.c: Likewise.
3653 * testsuite/libffi.call/cls_uint.c: Likewise.
3654 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3655 * testsuite/libffi.call/cls_ushort.c: Likewise.
3656 * testsuite/libffi.call/float.c: Likewise.
3657 * testsuite/libffi.call/float1.c: Likewise.
3658 * testsuite/libffi.call/float2.c: Likewise.
3659 * testsuite/libffi.call/many.c: Likewise.
3660 * testsuite/libffi.call/many_win32.c: Likewise.
3661 * testsuite/libffi.call/nested_struct.c: Likewise.
3662 * testsuite/libffi.call/nested_struct1.c: Likewise.
3663 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
3664 * testsuite/libffi.call/problem1.c: Likewise.
3665 * testsuite/libffi.call/promotion.c: Likewise.
3666 * testsuite/libffi.call/return_ll.c: Likewise.
3667 * testsuite/libffi.call/return_sc.c: Likewise.
3668 * testsuite/libffi.call/return_uc.c: Likewise.
3669 * testsuite/libffi.call/strlen.c: Likewise.
3670 * testsuite/libffi.call/strlen_win32.c: Likewise.
3671 * testsuite/libffi.call/struct1.c: Likewise.
3672 * testsuite/libffi.call/struct2.c: Likewise.
3673 * testsuite/libffi.call/struct3.c: Likewise.
3674 * testsuite/libffi.call/struct4.c: Likewise.
3675 * testsuite/libffi.call/struct5.c: Likewise.
3676 * testsuite/libffi.call/struct6.c: Likewise.
3677 * testsuite/libffi.call/struct7.c: Likewise.
3678 * testsuite/libffi.call/struct8.c: Likewise.
3679 * testsuite/libffi.call/struct9.c: Likewise.
3680 * testsuite/libffi.special/special.exp: New file.
3681 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3682 * testsuite/libffi.special/unwindtest.cc: Likewise.
3683
3684
36852003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
3686
3687 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
3688 copyright years.
3689
36902003-08-02 Alan Modra <amodra@bigpond.net.au>
3691
3692 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
3693 structure passing.
3694 (ffi_closure_helper_LINUX64): Likewise.
3695 * src/powerpc/linux64.S: Remove code writing to parm save area.
3696 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
3697 address in lr from ffi_closure_helper_LINUX64 call to calculate
3698 table address. Optimize function tail.
3699
37002003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
3701
3702 * src/sparc/ffi.c: Handle all floating point registers.
3703 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
3704
37052003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
3706
3707 * README: Note that libffi is not part of GCC. Update the project
3708 URL and status.
3709
37102003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3711
3712 * src/powerpc/ppc_closure.S: Include ffi.h.
3713
37142003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3715
3716 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
3717 Use C style comments.
3718
37192003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3720
3721 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
3722 * Makefile.in: Regenerate.
3723 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
3724 * configure: Regenerate.
3725 * include/ffi.h.in: Add SHmedia support.
3726 * src/sh64/ffi.c: New file.
3727 * src/sh64/sysv.S: New file.
3728
37292003-05-16 Jakub Jelinek <jakub@redhat.com>
3730
3731 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
3732 should be read-only.
3733 * configure: Rebuilt.
3734 * fficonfig.h.in: Rebuilt.
3735 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
3736 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
3737 * src/powerpc/linux64.S: Likewise.
3738 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
3739 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
3740 if -fpic/-fPIC/-mrelocatable.
3741 * src/powerpc/powerpc_closure.S: Likewise.
3742 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
3743 #write in .eh_frame flags.
3744 * src/sparc/v9.S: Likewise.
3745 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
3746 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
3747 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
3748
37492003-05-07 Jeff Sturm <jsturm@one-point.com>
3750
3751 Fixes PR bootstrap/10656
3752 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
3753 support for .register pseudo-op.
3754 * src/sparc/v8.S: Use it.
3755 * fficonfig.h.in: Rebuilt.
3756 * configure: Rebuilt.
3757
37582003-04-18 Jakub Jelinek <jakub@redhat.com>
3759
3760 * include/ffi.h.in (POWERPC64): Define if 64-bit.
3761 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
3762 Make it the default on POWERPC64.
3763 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
3764 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
3765 * configure: Rebuilt.
3766 * src/powerpc/ffi.c (hidden): Define.
3767 (ffi_prep_args_SYSV): Renamed from
3768 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
3769 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
3770 ASM_NEEDS_REGISTERS64): New.
3771 (ffi_prep_args64): New function.
3772 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
3773 (ffi_call): Likewise.
3774 (ffi_prep_closure): Likewise.
3775 (flush_icache): Surround by #ifndef POWERPC64.
3776 (ffi_dblfl): New union type.
3777 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
3778 (ffi_closure_helper_LINUX64): New function.
3779 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
3780 __powerpc64__.
3781 * src/powerpc/sysv.S: Likewise.
3782 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
3783 * src/powerpc/linux64.S: New file.
3784 * src/powerpc/linux64_closure.S: New file.
3785 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
3786 src/powerpc/linux64_closure.S.
3787 (TARGET_SRC_POWERPC): Likewise.
3788
3789 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
3790 closure_test_fn3): Fix result printing on big-endian 64-bit
3791 machines.
3792 (main): Print tst2_arg instead of uninitialized tst2_result.
3793
3794 * src/ffitest.c (main): Hide what closure pointer really points to
3795 from the compiler.
3796
37972003-04-16 Richard Earnshaw <rearnsha@arm.com>
3798
3799 * configure.in (arm-*-netbsdelf*): Add configuration.
3800 (configure): Regenerated.
3801
38022003-04-04 Loren J. Rittle <ljrittle@acm.org>
3803
3804 * include/Makefile.in: Regenerate.
3805
38062003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3807
3808 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
3809 bit mode.
3810 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
3811 Receive closure pointer through parameter, read args using
3812 __builtin_dwarf_cfa.
3813 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
3814
38152003-03-12 Andreas Schwab <schwab@suse.de>
3816
3817 * configure.in: Avoid trailing /. in toolexeclibdir.
3818 * configure: Rebuilt.
3819
38202003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
3821
3822 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
3823
38242003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
3825
3826 * libffi/src/powerpc/darwin_closure.S:
3827 Fix alignement bug, allocate 8 bytes for the result.
3828 * libffi/src/powerpc/aix_closure.S:
3829 Likewise.
3830 * libffi/src/powerpc/ffi_darwin.c:
3831 Update stackframe description for aix/darwin_closure.S.
3832
38332003-02-06 Jakub Jelinek <jakub@redhat.com>
3834
3835 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
3836 attribute.
3837
38382003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
3839 Andreas Schwab <schwab@suse.de>
3840
3841 * configure.in: Adjust command to source config-ml.in to account
3842 for changes to the libffi_basedir definition.
3843 (libffi_basedir): Remove ${srcdir} from value and include trailing
3844 slash if nonempty.
3845
3846 * configure: Regenerate.
3847
38482003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3849
3850 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
3851
38522003-01-28 Andrew Haley <aph@redhat.com>
3853
3854 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
3855 * src/x86/ffi64.c (ffi_prep_closure): New.
3856 (ffi_closure_UNIX64_inner): New.
3857 * src/x86/unix64.S (ffi_closure_UNIX64): New.
3858
38592003-01-27 Alexandre Oliva <aoliva@redhat.com>
3860
3861 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
3862 Remove USE_LIBDIR conditional.
3863 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
3864 * Makefile.in, configure: Rebuilt.
3865
38662003-01027 David Edelsohn <edelsohn@gnu.org>
3867
3868 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
3869 * Makefile.in: Regenerate.
3870
38712003-01-22 Andrew Haley <aph@redhat.com>
3872
3873 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
3874 unwind info.
3875
38762003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3877
3878 * src/powerpc/darwin.S: Add unwind info.
3879 * src/powerpc/darwin_closure.S: Likewise.
3880
38812003-01-14 Andrew Haley <aph@redhat.com>
3882
3883 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
3884 (ffi_prep_cif_machdep): Likewise.
3885 * src/x86/unix64.S: Add unwind info.
3886
38872003-01-14 Andreas Jaeger <aj@suse.de>
3888
3889 * src/ffitest.c (main): Only use ffi_closures if those are
3890 supported.
3891
38922003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
3893
3894 * libffi/src/ffitest.c
3895 add closure testcases
3896
38972003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
3898
3899 * libffi/src/powerpc/ffi.c
3900 fix alignment bug for float (4 byte aligned iso 8 byte)
3901
39022003-01-09 Geoffrey Keating <geoffk@apple.com>
3903
3904 * src/powerpc/ffi_darwin.c: Remove RCS version string.
3905 * src/powerpc/darwin.S: Remove RCS version string.
3906
39072003-01-03 Jeff Sturm <jsturm@one-point.com>
3908
3909 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
3910 * src/ffitest.c (main): Use static storage for closure.
3911 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
3912 * src/sparc/v8.S (ffi_closure_v8): New.
3913 * src/sparc/v9.S (ffi_closure_v9): New.
3914
39152002-11-10 Ranjit Mathew <rmathew@hotmail.com>
3916
3917 * include/ffi.h.in: Added FFI_STDCALL ffi_type
3918 enumeration for X86_WIN32.
3919 * src/x86/win32.S: Added ffi_call_STDCALL function
3920 definition.
3921 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
3922 switch cases for recognising FFI_STDCALL and
3923 calling ffi_call_STDCALL if target is X86_WIN32.
3924 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
3925 stdcall versions of the "my_strlen" and "many"
3926 test functions (for X86_WIN32).
3927 Added test cases to test stdcall invocation using
3928 these functions.
3929
39302002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
3931
3932 * src/sh/sysv.S: Add DWARF2 unwind info.
3933
39342002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
3935
3936 * src/s390/sysv.S (.eh_frame section): Make section read-only.
3937
39382002-11-26 Jim Wilson <wilson@redhat.com>
3939
3940 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
3941
39422002-11-23 H.J. Lu <hjl@gnu.org>
3943
3944 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
3945 Include ../config/accross.m4.
3946 * aclocal.m4; Rebuild.
3947 * configure: Likewise.
3948
39492002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
3950
3951 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
3952
39532002-11-11 DJ Delorie <dj@redhat.com>
3954
3955 * configure.in: Look for common files in the right place.
3956
39572002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
3958
3959 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
3960 raw data as _Jv_word values, not ffi_raw.
3961 (ffi_java_ptrarray_to_raw): Likewise.
3962 (ffi_java_rvalue_to_raw): New function.
3963 (ffi_java_raw_call): Call it.
3964 (ffi_java_raw_to_rvalue): New function.
3965 (ffi_java_translate_args): Call it.
3966 * src/ffitest.c (closure_test_fn): Interpret return value
3967 as ffi_arg, not int.
3968 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
3969 FFI_TYPE_POINTER case.
3970 (ffi_closure_helper_SYSV): Likewise. Also, assume return
3971 values extended to word size.
3972
39732002-10-02 Andreas Jaeger <aj@suse.de>
3974
3975 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
3976
39772002-10-01 Bo Thorsen <bo@smetana.suse.de>
3978
3979 * include/ffi.h.in: Fix i386 win32 compilation.
3980
39812002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
3982
3983 * configure.in: Add s390x-*-linux-* target.
3984 * configure: Regenerate.
3985 * include/ffi.h.in: Define S390X for s390x targets.
3986 (FFI_CLOSURES): Define for s390/s390x.
3987 (FFI_TRAMPOLINE_SIZE): Likewise.
3988 (FFI_NATIVE_RAW_API): Likewise.
3989 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
3990 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
3991 * src/s390/ffi.c: Major rework of existing code. Add support for
3992 s390x targets. Add closure support.
3993 * src/s390/sysv.S: Likewise.
3994
39952002-09-29 Richard Earnshaw <rearnsha@arm.com>
3996
3997 * src/arm/sysv.S: Fix typo.
3998
39992002-09-28 Richard Earnshaw <rearnsha@arm.com>
4000
4001 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
4002 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
4003 (ffi_call_SYSV): Handle soft-float.
4004
40052002-09-27 Bo Thorsen <bo@suse.de>
4006
4007 * include/ffi.h.in: Fix multilib x86-64 support.
4008
40092002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4010
4011 * Makefile.am (all-multi): Fix multilib parallel build.
4012
40132002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
4014
4015 * configure.in (sh[34]*-*-linux*): Add brackets.
4016 * configure: Regenerate.
4017
40182002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
4019
4020 * Makefile.am: Add SH support.
4021 * Makefile.in: Regenerate.
4022 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
4023 * configure: Regenerate.
4024 * include/ffi.h.in: Add SH support.
4025 * src/sh/ffi.c: New file.
4026 * src/sh/sysv.S: New file.
4027 * src/types.c: Add SH support.
4028
40292002-07-16 Bo Thorsen <bo@suse.de>
4030
4031 * src/x86/ffi64.c: New file that adds x86-64 support.
4032 * src/x86/unix64.S: New file that handles argument setup for
4033 x86-64.
4034 * src/x86/sysv.S: Don't use this on x86-64.
4035 * src/x86/ffi.c: Don't use this on x86-64.
4036 Remove unused vars.
4037 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
4038 for x86-64.
4039 * src/ffitest.c (struct6): New test that tests a special case in
4040 the x86-64 ABI.
4041 (struct7): Likewise.
4042 (struct8): Likewise.
4043 (struct9): Likewise.
4044 (closure_test_fn): Silence warning about this when it's not used.
4045 (main): Add the new tests.
4046 (main): Fix a couple of wrong casts and silence some compiler warnings.
4047 * include/ffi.h.in: Add x86-64 ABI definition.
4048 * fficonfig.h.in: Regenerate.
4049 * Makefile.am: Add x86-64 support.
4050 * configure.in: Likewise.
4051 * Makefile.in: Regenerate.
4052 * configure: Likewise.
4053
40542002-06-24 Bo Thorsen <bo@suse.de>
4055
4056 * src/types.c: Merge settings for similar architectures.
4057 Add x86-64 sizes and alignments.
4058
40592002-06-23 Bo Thorsen <bo@suse.de>
4060
4061 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
4062 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
4063 * src/mips/ffi.c (ffi_prep_args): Likewise.
4064 * src/m68k/ffi.c (ffi_prep_args): Likewise.
4065
40662002-07-18 H.J. Lu (hjl@gnu.org)
4067
4068 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
4069 (libffi_la_SOURCES): Support MIPS_LINUX.
4070 (libffi_convenience_la_SOURCES): Likewise.
4071 * Makefile.in: Regenerated.
4072
4073 * configure.in (mips64*-*): Skip.
4074 (mips*-*-linux*): New.
4075 * configure: Regenerated.
4076
4077 * src/mips/ffi.c: Include <sgidefs.h>.
4078
40792002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
4080
4081 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
4082
40832002-05-27 Roger Sayle <roger@eyesopen.com>
4084
4085 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
4086
40872002-05-27 Bo Thorsen <bo@suse.de>
4088
4089 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
4090 fix formatting.
4091
40922002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
4093
4094 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
4095 beginning of function (for older apple cc).
4096
40972002-05-08 Alexandre Oliva <aoliva@redhat.com>
4098
4099 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
4100 script entry, and set LD to it when configuring multilibs.
4101 * configure: Rebuilt.
4102
41032002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
4104
4105 * configure.in (sparc64-*-netbsd*): Add target.
4106 (sparc-*-netbsdelf*): Likewise.
4107 * configure: Regenerate.
4108
41092002-04-28 David S. Miller <davem@redhat.com>
4110
4111 * configure.in, configure: Fix SPARC test in previous change.
4112
41132002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
4114
4115 * Makefile.am: Add Linux for S/390 support.
4116 * Makefile.in: Regenerate.
4117 * configure.in: Add Linux for S/390 support.
4118 * configure: Regenerate.
4119 * include/ffi.h.in: Add Linux for S/390 support.
4120 * src/s390/ffi.c: New file from libffi CVS tree.
4121 * src/s390/sysv.S: New file from libffi CVS tree.
4122
41232002-04-28 Jakub Jelinek <jakub@redhat.com>
4124
4125 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
4126 %r_disp32().
4127 * src/sparc/v8.S: Use it.
4128 * src/sparc/v9.S: Likewise.
4129 * fficonfig.h.in: Rebuilt.
4130 * configure: Rebuilt.
4131
41322002-04-08 Hans Boehm <Hans_Boehm@hp.com>
4133
4134 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
4135 correctly.
4136 * src/ia64/unix.S: Add unwind information. Fix comments.
4137 Save sp in a way that's compatible with unwind info.
4138 (ffi_call_unix): Correctly restore sp in all cases.
4139 * src/ia64/ffi.c: Add, fix comments.
4140
41412002-04-08 Jakub Jelinek <jakub@redhat.com>
4142
4143 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
4144
41452002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
4146
4147 * configure.in (alpha*-*-netbsd*): Add target.
4148 * configure: Regenerate.
4149
41502002-04-04 Jeff Sturm <jsturm@one-point.com>
4151
4152 * src/sparc/v8.S: Add unwind info.
4153 * src/sparc/v9.S: Likewise.
4154
41552002-03-30 Krister Walfridsson <cato@df.lth.se>
4156
4157 * configure.in: Enable i*86-*-netbsdelf*.
4158 * configure: Rebuilt.
4159
41602002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
4161
4162 PR other/2620
4163 * src/mips/n32.s: Delete
4164 * src/mips/o32.s: Delete
4165
41662002-03-21 Loren J. Rittle <ljrittle@acm.org>
4167
4168 * configure.in: Enable alpha*-*-freebsd*.
4169 * configure: Rebuilt.
4170
41712002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4172
4173 * Makefile.am: libfficonvenience -> libffi_convenience.
4174 * Makefile.in: Rebuilt.
4175
4176 * Makefile.am: Define ffitest_OBJECTS.
4177 * Makefile.in: Rebuilt.
4178
41792002-03-07 Andreas Tobler <toa@pop.agri.ch>
4180 David Edelsohn <edelsohn@gnu.org>
4181
4182 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
4183 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
4184 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
4185 * Makefile.in: Regenerate.
4186 * include/ffi.h.in: Add AIX and Darwin closure definitions.
4187 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
4188 (flush_icache, flush_range): New functions.
4189 (ffi_closure_helper_DARWIN): New function.
4190 * src/powerpc/aix_closure.S: New file.
4191 * src/powerpc/darwin_closure.S: New file.
4192
41932002-02-24 Jeff Sturm <jsturm@one-point.com>
4194
4195 * include/ffi.h.in: Add typedef for ffi_arg.
4196 * src/ffitest.c (main): Declare rint with ffi_arg.
4197
41982002-02-21 Andreas Tobler <toa@pop.agri.ch>
4199
4200 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
4201 number of GPRs for floating-point arguments.
4202
42032002-01-31 Anthony Green <green@redhat.com>
4204
4205 * configure: Rebuilt.
4206 * configure.in: Replace CHECK_SIZEOF and endian tests with
4207 cross-compiler friendly macros.
4208 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
4209 macros.
4210
42112002-01-18 David Edelsohn <edelsohn@gnu.org>
4212
4213 * src/powerpc/darwin.S (_ffi_call_AIX): New.
4214 * src/powerpc/aix.S (ffi_call_DARWIN): New.
4215
42162002-01-17 David Edelsohn <edelsohn@gnu.org>
4217
4218 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
4219 (TARGET_SRC_POWERPC_AIX): New.
4220 (POWERPC_AIX): New stanza.
4221 * Makefile.in: Regenerate.
4222 * configure.in: Add AIX case.
4223 * configure: Regenerate.
4224 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
4225 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
4226 size. Fix "long double" support.
4227 (ffi_call): Add FFI_AIX case.
4228 * src/powerpc/aix.S: New.
4229
42302001-10-09 John Hornkvist <john@toastedmarshmallow.com>
4231
4232 Implement Darwin PowerPC ABI.
4233 * configure.in: Handle powerpc-*-darwin*.
4234 * Makefile.am: Set source files for POWERPC_DARWIN.
4235 * configure: Rebuilt.
4236 * Makefile.in: Rebuilt.
4237 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
4238 POWERPC_DARWIN.
4239 * src/powerpc/darwin.S: New file.
4240 * src/powerpc/ffi_darwin.c: New file.
4241
42422001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
4243
4244 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
4245
42462001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4247
4248 * src/x86/sysv.S: Avoid gas-only .balign directive.
4249 Use C style comments.
4250
42512001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4252
4253 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
4254 Fixes PR bootstrap/3563.
4255
42562001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4257
4258 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
4259
42602001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4261
4262 * configure.in: Recognize sparc*-sun-* host.
4263 * configure: Regenerate.
4264
42652001-06-06 Andrew Haley <aph@redhat.com>
4266
4267 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
4268
42692001-06-03 Andrew Haley <aph@redhat.com>
4270
4271 * src/alpha/osf.S: Add unwind info.
4272 * src/powerpc/sysv.S: Add unwind info.
4273 * src/powerpc/ppc_closure.S: Likewise.
4274
42752000-05-31 Jeff Sturm <jsturm@one-point.com>
4276
4277 * configure.in: Fix AC_ARG_ENABLE usage.
4278 * configure: Rebuilt.
4279
42802001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4281
4282 * configure.in: Remove warning about beta code.
4283 * configure: Rebuilt.
4284
42852001-04-25 Hans Boehm <Hans_Boehm@hp.com>
4286
4287 * src/ia64/unix.S: Restore stack pointer when returning from
4288 ffi_closure_UNIX.
4289 * src/ia64/ffi.c: Fix typo in comment.
4290
42912001-04-18 Jim Wilson <wilson@redhat.com>
4292
4293 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
4294 to eliminate RAW DV.
4295
42962001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
4297
4298 * Makefile.am: Make a libtool convenience library.
4299 * Makefile.in: Rebuilt.
4300
43012001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
4302
4303 * configure.in: Use different syntax for subdirectory creation.
4304 * configure: Rebuilt.
4305
43062001-03-27 Jon Beniston <jon@beniston.com>
4307
4308 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
4309 * configure: Rebuilt.
4310 * Makefile.am: Added X86_WIN32 target support.
4311 * Makefile.in: Rebuilt.
4312
4313 * include/ffi.h.in: Added X86_WIN32 target support.
4314
4315 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
4316 * src/types.c: Added X86_WIN32 target support.
4317
4318 * src/x86/win32.S: New file. Based on sysv.S, but with EH
4319 stuff removed and made to work with CygWin's gas.
4320
43212001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
4322
4323 * configure.in: Make target subdirectory in build dir.
4324 * Makefile.am: Override suffix based rules to specify correct output
4325 subdirectory.
4326 * Makefile.in: Rebuilt.
4327 * configure: Rebuilt.
4328
43292001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
4330
4331 * src/powerpc/ppc_closure.S: New file.
4332 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
4333 involving long long and register pairs.
4334 (ffi_prep_closure): New function.
4335 (flush_icache): Likewise.
4336 (ffi_closure_helper_SYSV): Likewise.
4337 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
4338 (FFI_TRAMPOLINE_SIZE): Likewise.
4339 (FFI_NATIVE_RAW_API): Likewise.
4340 * Makefile.in: Rebuilt.
4341 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
4342 (TARGET_SRC_POWERPC): Likewise.
4343
43442001-03-19 Tom Tromey <tromey@redhat.com>
4345
4346 * Makefile.in: Rebuilt.
4347 * Makefile.am (ffitest_LDFLAGS): New macro.
4348
43492001-03-02 Nick Clifton <nickc@redhat.com>
4350
4351 * include/ffi.h.in: Remove RCS ident string.
4352 * include/ffi_mips.h: Remove RCS ident string.
4353 * src/debug.c: Remove RCS ident string.
4354 * src/ffitest.c: Remove RCS ident string.
4355 * src/prep_cif.c: Remove RCS ident string.
4356 * src/types.c: Remove RCS ident string.
4357 * src/alpha/ffi.c: Remove RCS ident string.
4358 * src/alpha/osf.S: Remove RCS ident string.
4359 * src/arm/ffi.c: Remove RCS ident string.
4360 * src/arm/sysv.S: Remove RCS ident string.
4361 * src/mips/ffi.c: Remove RCS ident string.
4362 * src/mips/n32.S: Remove RCS ident string.
4363 * src/mips/o32.S: Remove RCS ident string.
4364 * src/sparc/ffi.c: Remove RCS ident string.
4365 * src/sparc/v8.S: Remove RCS ident string.
4366 * src/sparc/v9.S: Remove RCS ident string.
4367 * src/x86/ffi.c: Remove RCS ident string.
4368 * src/x86/sysv.S: Remove RCS ident string.
4369
43702001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
4371
4372 * include/ffi.h.in: Change sourceware.cygnus.com references to
4373 gcc.gnu.org.
4374
43752000-12-09 Richard Henderson <rth@redhat.com>
4376
4377 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
4378 (ffi_closure_osf_inner): Index rather than increment avalue
4379 and arg_types. Give ffi_closure_osf the raw return value type.
4380 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
4381 promotion.
4382
43832000-12-07 Richard Henderson <rth@redhat.com>
4384
4385 * src/raw_api.c (ffi_translate_args): Fix typo.
4386 (ffi_prep_closure): Likewise.
4387
4388 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
4389 FFI_TRAMPOLINE_SIZE.
4390 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
4391 cif->bytes for new ffi_call_osf implementation.
4392 (ffi_prep_args): Absorb into ...
4393 (ffi_call): ... here. Do all stack allocation here and
4394 avoid a callback function.
4395 (ffi_prep_closure, ffi_closure_osf_inner): New.
4396 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
4397 (ffi_closure_osf): New.
4398
43992000-09-10 Alexandre Oliva <aoliva@redhat.com>
4400
4401 * config.guess, config.sub, install-sh: Removed.
4402 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
4403 * Makefile.in: Rebuilt.
4404
4405 * acinclude.m4: Include libtool macros from the top level.
4406 * aclocal.m4, configure: Rebuilt.
4407
44082000-08-22 Alexandre Oliva <aoliva@redhat.com>
4409
4410 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
4411 * configure: Rebuilt.
4412
44132000-05-11 Scott Bambrough <scottb@netwinder.org>
4414
4415 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
4416 memory correctly. Use conditional instructions, not branches where
4417 possible.
4418
44192000-05-04 Tom Tromey <tromey@cygnus.com>
4420
4421 * configure: Rebuilt.
4422 * configure.in: Match `arm*-*-linux-*'.
4423 From Chris Dornan <cdornan@arm.com>.
4424
44252000-04-28 Jakub Jelinek <jakub@redhat.com>
4426
4427 * Makefile.am (SUBDIRS): Define.
4428 (AM_MAKEFLAGS): Likewise.
4429 (Multilib support.): Add section.
4430 * Makefile.in: Rebuilt.
4431 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
4432 New variables. Set for gcc using -print-multi-lib. Export them
4433 to libtool.
4434 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
4435 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
4436 for -shared links.
4437 (extra_compiler_flags_value, extra_compiler_flags): Check these
4438 for extra compiler options which need to be passed down in
4439 compiler_flags.
4440
44412000-04-16 Anthony Green <green@redhat.com>
4442
4443 * configure: Rebuilt.
4444 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
4445
44462000-04-14 Jakub Jelinek <jakub@redhat.com>
4447
4448 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
4449 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
4450 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
4451 Replace all void * sizeofs with sizeof(int).
4452 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
4453 different than DOUBLE.
4454 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
4455 (ffi_prep_args_v9): New function.
4456 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
4457 (ffi_V9_return_struct): New function.
4458 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
4459 32bit code (not yet cross-arch calls).
4460 * src/sparc/v8.S: Add struct return delay nop.
4461 Handle long long.
4462 * src/sparc/v9.S: New file.
4463 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
4464 is used on sparc64 only for structures larger than 32 bytes.
4465 Pass by reference for structures is done for structure arguments
4466 larger than 16 bytes.
4467 * src/ffitest.c (main): Use 64bit rint on sparc64.
4468 Run long long tests on sparc.
4469 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
4470 sparc64.
4471 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
4472 on sparc64.
4473 * configure.in (sparc-*-linux*): New supported target.
4474 (sparc64-*-linux*): Likewise.
4475 * configure: Rebuilt.
4476 * Makefile.am: Add v9.S to SPARC files.
4477 * Makefile.in: Likewise.
4478 (LINK): Surround $(CCLD) into double quotes, so that multilib
4479 compiles work correctly.
4480
44812000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
4482
4483 * configure: Rebuilt.
4484 * configure.in: (i*86-*-solaris*): New libffi target. Patch
4485 proposed by Bryce McKinlay.
4486
44872000-03-20 Tom Tromey <tromey@cygnus.com>
4488
4489 * Makefile.in: Hand edit for java_raw_api.lo.
4490
44912000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
4492
4493 * config.guess, config.sub: Update from the gcc tree.
4494 Fix for PR libgcj/168.
4495
44962000-03-03 Tom Tromey <tromey@cygnus.com>
4497
4498 * Makefile.in: Fixed ia64 by hand.
4499
4500 * configure: Rebuilt.
4501 * configure.in (--enable-multilib): New option.
4502 (libffi_basedir): New subst.
4503 (AC_OUTPUT): Added multilib code.
4504
45052000-03-02 Tom Tromey <tromey@cygnus.com>
4506
4507 * Makefile.in: Rebuilt.
4508 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
4509 directory name.
4510
45112000-02-25 Hans Boehm <boehm@acm.org>
4512
4513 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
4514 files.
4515 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
4516 list.
4517 (ffi_prep_raw_closure): Use ffi_translate_args, not
4518 ffi_closure_translate.
4519 * src/java_raw_api.c: New file.
4520 * src/ffitest.c (closure_test_fn): New function.
4521 (main): Define `rint' as long long on IA64. Added new test when
4522 FFI_CLOSURES is defined.
4523 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
4524 (ffi_abi): Recognize IA64.
4525 (ffi_raw): Added `flt' field.
4526 Added "Java raw API" code.
4527 * configure.in: Recognize ia64.
4528 * Makefile.am (TARGET_SRC_IA64): New macro.
4529 (libffi_la_common_SOURCES): Added java_raw_api.c.
4530 (libffi_la_SOURCES): Define in IA64 case.
4531
45322000-01-04 Tom Tromey <tromey@cygnus.com>
4533
4534 * Makefile.in: Rebuilt with newer automake.
4535
45361999-12-31 Tom Tromey <tromey@cygnus.com>
4537
4538 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
4539
45401999-09-01 Tom Tromey <tromey@cygnus.com>
4541
4542 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
4543 undefs.
4544 * fficonfig.h.in: Rebuilt.
4545 * configure: Rebuilt.
4546 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
4547 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
4548 * acconfig.h: Don't #undef PACKAGE or VERSION.
4549
45501999-08-09 Anthony Green <green@cygnus.com>
4551
4552 * include/ffi.h.in: Try to work around messy header problem
4553 with PACKAGE and VERSION.
4554
4555 * configure: Rebuilt.
4556 * configure.in: Change version to 2.00-beta.
4557
4558 * fficonfig.h.in: Rebuilt.
4559 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
4560
4561 * src/x86/ffi.c (ffi_raw_call): Rename.
4562
45631999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
4564
4565 * src/x86/ffi.c (ffi_closure_SYSV): New function.
4566 (ffi_prep_incoming_args_SYSV): Ditto.
4567 (ffi_prep_closure): Ditto.
4568 (ffi_closure_raw_SYSV): Ditto.
4569 (ffi_prep_raw_closure): More ditto.
4570 (ffi_call_raw): Final ditto.
4571
4572 * include/ffi.h.in: Add definitions for closure and raw API.
4573
4574 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
4575 FFI_TYPE_UINT64.
4576
4577 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
4578
4579 * src/raw_api.c: New file.
4580
4581 * include/ffi.h.in (ffi_raw): New type.
4582 (UINT_ARG, SINT_ARG): New defines.
4583 (ffi_closure, ffi_raw_closure): New types.
4584 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
4585
4586 * configure.in: Add check for endianness and sizeof void*.
4587
4588 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
4589 instead of directly.
4590
4591 * configure: Rebuilt.
4592
4593Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
4594
4595 * configure.in: Add x86 and powerpc BeOS configurations.
4596 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
4597
45981999-05-09 Anthony Green <green@cygnus.com>
4599
4600 * configure.in: Add warning about this being beta code.
4601 Remove src/Makefile.am from the picture.
4602 * configure: Rebuilt.
4603
4604 * Makefile.am: Move logic from src/Makefile.am. Add changes
4605 to support libffi as a target library.
4606 * Makefile.in: Rebuilt.
4607
4608 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
4609 Upgraded to new autoconf, automake, libtool.
4610
4611 * README: Tweaks.
4612
4613 * LICENSE: Update copyright date.
4614
4615 * src/Makefile.am, src/Makefile.in: Removed.
4616
46171998-11-29 Anthony Green <green@cygnus.com>
4618
4619 * include/ChangeLog: Removed.
4620 * src/ChangeLog: Removed.
4621 * src/mips/ChangeLog: Removed.
4622 * src/sparc/ChangeLog: Remboved.
4623 * src/x86/ChangeLog: Removed.
4624
4625 * ChangeLog.v1: Created.