blob: 148af6d544830eacfe7c07ec79ad867fb76cdb8a [file] [log] [blame]
Anthony Greenaf18df22011-11-12 15:52:08 -050012011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com>
2 Anthony Green <green@moxielogic.com>
3
4 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string
5 instructions (not available on some cores, like the PPC440).
6
Anthony Greenc411f142011-11-12 07:32:36 -050072011-11-12 Kimura Wataru <kimuraw@i.nifty.jp>
Anthony Green8c019542011-09-06 14:26:32 -04008
Anthony Greenc411f142011-11-12 07:32:36 -05009 * m4/ax_enable_builddir: Change from string comparison to numeric
10 comparison for wc output.
Anthony Green236c9392011-11-12 07:37:40 -050011 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS
12 X 10.7.
13 * configure: Rebuilt.
Anthony Greenee6696f2011-08-23 12:30:29 -040014
Anthony Green3d561062011-11-12 07:20:24 -0500152011-11-10 Richard Henderson <rth@redhat.com>
Anthony Green049d8382011-08-22 14:50:10 -040016
Anthony Green3d561062011-11-12 07:20:24 -050017 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
18 * configure, aclocal.m4: Rebuild.
19
202011-09-04 Iain Sandoe <iains@gcc.gnu.org>
21
22 PR libffi/49594
23 * src/powerpc/darwin_closure.S (stubs): Make the stub binding
24 helper reference track the architecture pointer size.
25
262011-08-25 Andrew Haley <aph@redhat.com>
27
28 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly
29 instructions.
30 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead.
Anthony Green049d8382011-08-22 14:50:10 -040031
Anthony Greend992ac52011-07-29 17:32:53 -0400322011-07-11 Andrew Haley <aph@redhat.com>
33
34 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
35
362011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
37
38 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
39 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
40
412011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
42
43 PR libffi/46660
44 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on
45 mips-sgi-irix6*.
46 * testsuite/libffi.call/cls_longdouble_va.c: Likewise.
47
482011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
49
50 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
51 PRId8 instead of %hhu, %hhd.
52 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
53 PRIu8): Define.
54 [__sgi__] (PRId8, PRIu8): Define.
55
562011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
57
58 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE):
59 Define.
60 Use them to handle ELF vs. ECOFF differences.
61 [__osf__] (_GLOBAL__F_ffi_call_osf): Define.
62
Anthony Green2d3fb362011-03-30 16:54:42 -0400632011-03-30 Timothy Wall <twall@users.sf.net>
64
65 * src/powerpc/darwin.S: Fix unknown FDE encoding.
66 * src/powerpc/darwin_closure.S: ditto.
67
Anthony Green25416792011-02-25 15:09:13 -0500682011-02-25 Anthony Green <green@moxielogic.com>
69
Anthony Green74ee6ea2011-02-25 15:52:14 -050070 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
71 32-bit ABIs.
Anthony Green25416792011-02-25 15:09:13 -050072
Anthony Green8cf88782011-02-15 15:19:49 -0500732011-02-15 Anthony Green <green@moxielogic.com>
74
75 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
76 * configure: Rebuilt.
77
Anthony Greend992ac52011-07-29 17:32:53 -0400782011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
79
80 * configure: Regenerate.
81
Anthony Green1fbf9dc2011-02-13 08:06:39 -0500822011-02-13 Anthony Green <green@moxielogic.com>
83
84 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
85 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
86 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
87
88 * src/prep_cif.c (initialize_aggregate): Convert assertion into
89 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
90
91 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
92 just return FFI_BAD_ABI when things are wrong.
93 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
94 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
95 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
96 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
97 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
98
Anthony Green1833aa02011-02-11 07:11:04 -0500992011-02-11 Anthony Green <green@moxielogic.com>
100
101 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
102 just return FFI_BAD_ABI when things are wrong.
103
Anthony Green42695e72011-02-09 15:12:35 -05001042011-02-09 Stuart Shelton <srcshelton@gmail.com>
105
106 http://bugs.gentoo.org/show_bug.cgi?id=286911
107 * src/mips/ffitarget.h: Clean up error messages.
108 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
109 ffi_raw*.
110 * include/ffi.h.in: Add pragma for SGI compiler.
111
Anthony Greena6e56b92011-02-09 15:00:42 -05001122011-02-09 Anthony Green <green@moxielogic.com>
113
114 * configure.ac: Add powerpc64-*-darwin* support.
115
Anthony Green0cad4382011-02-09 06:11:46 -05001162011-02-09 Anthony Green <green@moxielogic.com>
Anthony Green11062292011-02-08 19:20:09 -0500117
Anthony Green747d6c32011-02-09 14:56:23 -0500118 * README: Mention Interix.
119
1202011-02-09 Jonathan Callen <abcd@gentoo.org>
121
122 * configure.ac: Add Interix to win32/cygwin/mingw case.
123 * configure: Ditto.
124 * src/closures.c: Treat Interix like Cygwin, instead of as a
125 generic win32.
126
1272011-02-09 Anthony Green <green@moxielogic.com>
128
Anthony Green69dbe842011-02-09 07:38:43 -0500129 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
130 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
131 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
132 (ffi_prep_closure_loc): Check for bad ABI.
133 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
134 (initialize_aggregate): Check for bad types.
Anthony Green0cad4382011-02-09 06:11:46 -0500135
Anthony Green90af15e2011-02-12 12:29:36 -05001362011-02-09 Landon Fuller <landonf@plausible.coop>
Anthony Green0cad4382011-02-09 06:11:46 -0500137
138 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
139 src/arm/trampoline.S.
140 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
141 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
142 * src/arm/ffi.c (ffi_trampoline_table)
143 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
144 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
145 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
146 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
147 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
148 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
149 separately.
150 * src/arm/sysv.S: Handle Apple iOS host.
151 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
Anthony Greenf4983182011-02-09 06:26:46 -0500152 * build-ios.sh: New file.
Anthony Green0cad4382011-02-09 06:11:46 -0500153 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
Anthony Green69dbe842011-02-09 07:38:43 -0500154 * README: Mention ARM iOS.
Anthony Green11062292011-02-08 19:20:09 -0500155
Anthony Greendc411e82011-02-08 10:49:29 -05001562011-02-08 Oren Held <orenhe@il.ibm.com>
157
158 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
159 redefinition of mallinfo on HP-UX.
160
Anthony Green404585d2011-02-08 10:44:36 -05001612011-02-08 Ginn Chen <ginn.chen@oracle.com>
162
163 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
Anthony Green049d8382011-08-22 14:50:10 -0400164 aggregate return ABI. Flush cache.
165 (ffi_prep_closure_loc): Flush cache.
Anthony Green404585d2011-02-08 10:44:36 -0500166
Anthony Green6972a4f2011-02-11 07:32:51 -05001672011-02-11 Anthony Green <green@moxielogic.com>
168
169 From Tom Honermann <tom.honermann@oracle.com>:
170 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
171 AIX. Declare .ffi_prep_args. Insert nops after branch
172 instructions so that the AIX linker can insert TOC reload
173 instructions.
174 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
175
Anthony Greend992ac52011-07-29 17:32:53 -04001762011-02-08 Ed <ed@kdtc.net>
177
178 * src/powerpc/asm.h: Fix grammar nit in comment.
179
Anthony Green89284fe2011-02-08 10:19:19 -05001802011-02-08 Uli Link <ul.mcamafia@linkitup.de>
181
182 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
183
Anthony Greend992ac52011-07-29 17:32:53 -04001842011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
185
186 PR libffi/46661
187 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to
188 uintptr_t first.
189 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.
190
Anthony Greened2c5182011-02-08 10:10:07 -05001912011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
192
193 * configure.ac: Fix x86 test for pc related relocs.
Anthony Green09f8f312011-02-28 15:36:07 -0500194 * configure: Rebuilt.
Anthony Greened2c5182011-02-08 10:10:07 -0500195
Anthony Green3b836242011-02-08 14:28:59 -05001962011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
197
198 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
199 Handle case when CPU variant does not have long double support.
200 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
201 and cores with soft floating point.
202
2032011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
204
205 * configure.ac: Add mips*-*-rtems* support.
206 * configure: Regenerate.
207 * src/mips/ffitarget.h: Ensure needed constants are available
208 for targets which do not have sgidefs.h.
209
Anthony Green0e584392011-02-08 07:52:40 -05002102011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
211
212 PR target/40125
213 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
214 * configure: Regenerate.
215
2162010-12-18 Iain Sandoe <iains@gcc.gnu.org>
217
218 PR libffi/29152
219 PR libffi/42378
220 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
221 update comments.
222 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
223 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
224 * src/powerpc/darwin.S: Provide Darwin64 implementation,
225 update comments.
226 * src/powerpc/ffi_darwin.c: Likewise.
227
2282010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
229
230 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
231 backslashes.
232 (libffi_cv_as_string_pseudo_op): Likewise.
233 * configure: Regenerate.
234
2352010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
236
237 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
238 (ffi_closure_VFP): Same.
239 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
240 directive.
241
2422010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
243
244 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
245 (PRIuPTR): Define.
246
2472010-11-29 Richard Henderson <rth@redhat.com>
248 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
249
250 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
251 (.eh_frame): Use FDE_ENCODING.
252 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
253
Anthony Green5b9cd522010-11-22 15:19:57 -05002542010-11-22 Jacek Caban <jacek@codeweavers.com>
255
256 * configure.ac: Check for symbol underscores on mingw-w64.
257 * configure: Rebuilt.
258 * src/x86/win64.S: Correctly access extern symbols in respect to
259 underscores.
260
Anthony Green2db72612010-11-21 10:50:56 -05002612010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
262
263 * testsuite/lib/libffi-dg.exp: Rename ...
264 * testsuite/lib/libffi.exp: ... to this.
265 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
266 * libffi/testsuite/libffi.special/special.exp: Likewise.
267
2682010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
269
270 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
271 code, new parameter, and return value. Update comments.
272 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
273 call to layout_vfp_args().
274 (ffi_call_SYSV): Update declaration.
275 (ffi_call_VFP): New declaration.
276 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
277 when ABI is FFI_VFP.
278 (ffi_closure_VFP): New declaration.
279 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
280 ffi_prep_incoming_args_SYSV().
281 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
282 case handling.
283 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
284 construction under VFP hard-float.
285 (rec_vfp_type_p): New function.
286 (vfp_type_p): Same.
287 (place_vfp_arg): Same.
288 (layout_vfp_args): Same.
289 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
290 based on __ARM_PCS_VFP.
291 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
292 fields.
293 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
294 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
295 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
296 direct call. Move function pointer load upwards.
297 (ffi_call_VFP): New function.
298 (ffi_closure_VFP): Same.
299
300 * testsuite/lib/libffi-dg.exp (check-flags): New function.
301 (dg-skip-if): New function.
302 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
303 and compiler options include -mfloat-abi=hard.
304 * testsuite/libffi.call/cls_longdouble_va.c: Same.
305
3062010-10-01 Jakub Jelinek <jakub@redhat.com>
307
308 PR libffi/45677
309 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
310 a multiple of 8.
311 * testsuite/libffi.call/many2.c: New test.
312
3132010-08-20 Mark Wielaard <mjw@redhat.com>
314
315 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
316 returns NULL.
317
3182010-08-09 Andreas Tobler <andreast@fgznet.ch>
319
320 * configure.ac: Add target powerpc64-*-freebsd*.
321 * configure: Regenerate.
322 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
323 -mlong-double-128 only to linux targets.
324 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
325 * testsuite/libffi.call/cls_longdouble.c: Likewise.
326 * testsuite/libffi.call/huge_struct.c: Likewise.
327
Anthony Green00d0b592010-08-05 14:56:53 -04003282010-08-05 Dan Witte <dwitte@mozilla.com>
329
330 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
331 debug CRT when --enable-debug is given.
332 * configure.ac: Define it.
333 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
334
Anthony Greenc1d28ba2010-08-05 08:48:16 -04003352010-08-04 Dan Witte <dwitte@mozilla.com>
336
337 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
338 platforms.
339 * src/x86/ffi.c: Remove redundant ifdef checks.
340 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
341 for X86_ANY so return value space doesn't get added twice.
342
Anthony Greenbda487e2010-08-05 09:02:41 -04003432010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
344
345 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
346
Anthony Greend14178b2010-07-23 09:14:00 -04003472010-07-22 Dan Witte <dwitte@mozilla.com>
348
349 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
350 * src/prep_cif.c: Fix ABI assertion.
351 * src/cris/ffi.c: Ditto.
352
Anthony Greeneaf444e2010-07-10 08:59:09 -04003532010-07-10 Evan Phoenix <evan@fallingsnow.net>
354
355 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
356
Anthony Green5feacad2010-08-05 08:30:04 -04003572010-07-07 Dan Horák <dan@danny.cz>
358
359 * include/ffi.h.in: Protect #define with #ifndef.
360 * src/powerpc/ffitarget.h: Ditto.
361 * src/s390/ffitarget.h: Ditto.
362 * src/sparc/ffitarget.h: Ditto.
363
Anthony Green2db72612010-11-21 10:50:56 -05003642010-07-07 Neil Roberts <neil@linux.intel.com>
365
366 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
367 16-bytes.
368
3692010-07-02 Jakub Jelinek <jakub@redhat.com>
370
371 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
372 * Makefile.in: Regenerated.
373
3742010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
375
376 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
377 output, too.
378 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
379 (libffi_cv_as_string_pseudo_op): Check for .string.
380 * configure: Regenerate.
381 * fficonfig.h.in: Regenerate.
382 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
383
Anthony Green10ea8482010-08-05 08:24:27 -04003842010-05-11 Dan Witte <dwitte@mozilla.com>
385
386 * doc/libffi.tex: Document previous change.
387
3882010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
389
390 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
391
Anthony Green63097412010-05-05 20:14:56 -04003922010-05-05 Michael Kohler <michaelkohler@live.com>
393
394 * src/dlmalloc.c (dlfree): Fix spelling.
395 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
396 * configure.ac: Ditto.
397 * configure: Rebuilt.
398
Anthony Greenf2c2a4f2010-04-13 10:19:28 -04003992010-04-13 Dan Witte <dwitte@mozilla.com>
400
401 * msvcc.sh: Build with -W3 instead of -Wall.
402 * src/powerpc/ffi_darwin.c: Remove build warnings.
403 * src/x86/ffi.c: Ditto.
404 * src/x86/ffitarget.h: Ditto.
405
Anthony Green2db72612010-11-21 10:50:56 -05004062010-04-12 Dan Witte <dwitte@mozilla.com>
407 Walter Meinl <wuno@lsvw.de>
Anthony Greenc0b69e52010-03-30 08:30:22 -0400408
Anthony Green2db72612010-11-21 10:50:56 -0500409 * configure.ac: Add OS/2 support.
410 * configure: Rebuilt.
411 * src/closures.c: Ditto.
412 * src/dlmalloc.c: Ditto.
413 * src/x86/win32.S: Ditto.
Anthony Green3f5b1372010-07-12 14:39:18 -0400414
4152010-04-07 Jakub Jelinek <jakub@redhat.com>
416
Anthony Green2db72612010-11-21 10:50:56 -0500417 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
Anthony Green3f5b1372010-07-12 14:39:18 -0400418
4192010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
420
421 * Makefile.in: Regenerate.
422 * aclocal.m4: Regenerate.
423 * include/Makefile.in: Regenerate.
424 * man/Makefile.in: Regenerate.
425 * testsuite/Makefile.in: Regenerate.
426
Anthony Green2db72612010-11-21 10:50:56 -05004272010-03-30 Dan Witte <dwitte@mozilla.com>
428
429 * msvcc.sh: Disable build warnings.
430 * README (tested): Clarify windows build procedure.
431
Anthony Green3f5b1372010-07-12 14:39:18 -04004322010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
433
434 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
435 * configure: Regenerate.
436 * fficonfig.h.in: Regenerate.
437 * libffi/src/x86/unix64.S (.eh_frame)
438 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
439
Anthony Green2db72612010-11-21 10:50:56 -05004402010-03-14 Matthias Klose <doko@ubuntu.com>
441
442 * src/x86/ffi64.c: Fix typo in comment.
443 * src/x86/ffi.c: Use /* ... */ comment style.
444
Anthony Green9dc9a292010-04-13 10:33:52 -04004452010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
446
447 * doc/libffi.texi (The Closure API): Fix typo.
448 * doc/libffi.info: Remove.
449
4502010-02-15 Matthias Klose <doko@ubuntu.com>
451
452 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
453 __ARM_ARCH_7EM__.
454
Anthony Green2db72612010-11-21 10:50:56 -05004552010-01-15 Anthony Green <green@redhat.com>
456
457 * README: Add notes on building with Microsoft Visual C++.
458
4592010-01-15 Daniel Witte <dwitte@mozilla.com>
460
461 * msvcc.sh: New file.
462
463 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
464 * src/x86/ffi.c: Tweak function declaration and remove excess
465 parens.
466 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
467 ffi_closure.
468
469 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
470 function ffi_call_win32 on X86_WIN32.
471 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
472 (ffi_call_STDCALL): Remove.
473
474 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
475 to ffi_prep_cif_machdep for x86.
476 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
477
4782010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
479
480 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
Anthony Green0e584392011-02-08 07:52:40 -0500481 Sun Studio compiler compatibility.
Anthony Green2db72612010-11-21 10:50:56 -0500482
4832010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
484
485 * doc/libffi.texi: Add closure example.
486
Anthony Green7b7a42f2010-01-12 09:14:14 -05004872010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
488
489 PR libffi/40701
490 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
491 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
492 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
493 alpha*-dec-osf*.
494 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
495 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
496 * testsuite/libffi.call/return_ll1.c: Likewise.
497 * testsuite/libffi.call/stret_medium2.c: Likewise.
498 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
499 MAP_FAILED to char *.
500
5012010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
502
503 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
504
Anthony Greenc3042af2010-01-01 08:08:02 -05005052009-12-31 Anthony Green <green@redhat.com>
506
507 * README: Update for libffi 3.0.9.
508
5092009-12-27 Matthias Klose <doko@ubuntu.com>
510
511 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
512 appropriate.
513 * configure: Rebuilt.
514
5152009-12-26 Anthony Green <green@redhat.com>
516
517 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
518 avr32*-*-*.
519 * testsuite/libffi.call/cls_double_va.c: Ditto.
520
5212009-12-26 Andreas Tobler <a.tobler@schweiz.org>
522
523 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
524 and inttypes.h.
525 * testsuite/libffi.special/unwindtest.cc: Ditto.
526
5272009-12-26 Andreas Tobler <a.tobler@schweiz.org>
528
529 * configure.ac: Add amd64-*-openbsd*.
530 * configure: Rebuilt.
531 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
532 openbsd programs with -lpthread.
533
5342009-12-26 Anthony Green <green@redhat.com>
535
536 * testsuite/libffi.call/cls_double_va.c,
537 testsuite/libffi.call/cls_longdouble.c,
538 testsuite/libffi.call/cls_longdouble_va.c,
539 testsuite/libffi.call/cls_pointer.c,
540 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
541 mips*-*-* and arm*-*-*.
542 * testsuite/libffi.call/cls_align_longdouble_split.c,
543 testsuite/libffi.call/cls_align_longdouble_split2.c,
544 testsuite/libffi.call/stret_medium2.c,
545 testsuite/libffi.call/stret_medium.c,
546 testsuite/libffi.call/stret_large.c,
547 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
548
5492009-12-31 Kay Tietz <ktietz70@googlemail.com>
550
551 * testsuite/libffi.call/ffitest.h,
552 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
553 definitions.
554
5552009-12-31 Carlo Bramini <carlo.bramix@libero.it>
556
557 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
558 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
559 * configure: Rebuilt.
560 * Makefile.in: Rebuilt.
561
5622009-12-31 Anthony Green <green@redhat.com>
563 Blake Chaffin.
564
565 * testsuite/libffi.call/huge_struct.c: New test case from Blake
566 Chaffin @ Apple.
567
Anthony Green0cfe60e2009-12-29 10:06:04 -05005682009-12-28 David Edelsohn <edelsohn@gnu.org>
569
570 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
571 local variables.
572 (aix_adjust_aggregate_sizes): New function.
573 (ffi_prep_cif_machdep): Call it.
574
5752009-12-26 Andreas Tobler <a.tobler@schweiz.org>
576
577 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
578 * configure: Regenerate.
579 * fficonfig.h.in: Likewise.
580 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
581 Solaris/x86.
582
5832009-12-26 Andreas Schwab <schwab@linux-m68k.org>
584
585 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
586 when a float arguments is passed in memory.
587 (ffi_closure_helper_SYSV): Mark general registers as used up when
588 a 64bit or soft-float long double argument is passed in memory.
589
Anthony Green9458d882009-12-26 07:02:27 -05005902009-12-25 Matthias Klose <doko@ubuntu.com>
591
592 * man/ffi_call.3: Fix #include in examples.
593 * doc/libffi.texi: Add dircategory.
594
5952009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
596
597 * include/ffi.h.in: Placed '__GNUC__' ifdef around
598 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
599 IRIX MIPSPro c99.
600 * include/ffi_common.h: Added '__sgi' define to non
601 '__attribute__((__mode__()))' integer typedefs.
Anthony Green0cfe60e2009-12-29 10:06:04 -0500602 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
Anthony Green9458d882009-12-26 07:02:27 -0500603 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
604 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
605 FFI_LONGDOUBLE support and alignment(N32 only).
606 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
607 fixed non '__attribute__((__mode__()))' integer typedefs.
608 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
609 since they are Linux/GNU Assembler specific.
610
6112009-12-25 Bradley Smith <brad@brad-smith.co.uk>
612
613 * configure.ac, Makefile.am, src/avr32/ffi.c,
614 src/avr32/ffitarget.h,
615 src/avr32/sysv.S: Add AVR32 port.
616 * configure, Makefile.in: Rebuilt.
617
Anthony Green115ab362009-12-24 00:22:00 -05006182009-12-21 Andreas Tobler <a.tobler@schweiz.org>
619
620 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
621 * configure: Regenerate.
622
6232009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
624
625 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
626
6272009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
628
629 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
630 type on HP-UX.
631
6322009-12-11 Eric Botcazou <ebotcazou@adacore.com>
633
634 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
635 double' arguments.
636
6372009-12-11 Eric Botcazou <ebotcazou@adacore.com>
638
639 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
640
6412009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
642
643 PR libffi/40700
644 * src/closures.c [X86_64 && __sun__ && __svr4__]
645 (FFI_MMAP_EXEC_WRIT): Define.
646
6472009-12-08 David Daney <ddaney@caviumnetworks.com>
648
649 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
650 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
651 * testsuite/libffi.call/stret_large.c: Same.
652 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
653 * testsuite/libffi.call/stret_large2.c: Same.
654 * testsuite/libffi.call/stret_medium2.c: Same.
655
6562009-12-07 David Edelsohn <edelsohn@gnu.org>
657
658 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
659 typo.
660
6612009-12-05 David Edelsohn <edelsohn@gnu.org>
662
663 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
664 code.
665 * src/powerpc/aix_closure.S: Same.
666
6672009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
668
669 * Makefile.in: Regenerate.
670 * configure: Regenerate.
671 * include/Makefile.in: Regenerate.
672 * man/Makefile.in: Regenerate.
673 * testsuite/Makefile.in: Regenerate.
674
6752009-12-04 David Edelsohn <edelsohn@gnu.org>
676
677 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
Anthony Green0cfe60e2009-12-29 10:06:04 -0500678 linux64_closure.S.
Anthony Green115ab362009-12-24 00:22:00 -0500679
6802009-12-04 Uros Bizjak <ubizjak@gmail.com>
681
682 PR libffi/41908
683 * src/x86/ffi64.c (classify_argument): Update from
684 gcc/config/i386/i386.c.
685 (ffi_closure_unix64_inner): Do not use the address of two consecutive
686 SSE registers directly.
687 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
688 for x86_64 linux targets.
689
6902009-12-04 David Edelsohn <edelsohn@gnu.org>
691
692 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
693 pfr for long double split between fpr13 and stack.
694
6952009-12-03 David Edelsohn <edelsohn@gnu.org>
696
697 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
698 fparg_count twice for long double.
699
7002009-12-03 David Edelsohn <edelsohn@gnu.org>
701
702 PR libffi/42243
703 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
704
7052009-12-03 Uros Bizjak <ubizjak@gmail.com>
706
707 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
708 Remove xfails for x86 linux targets.
709
7102009-12-02 David Edelsohn <edelsohn@gnu.org>
711
712 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
713 case.
714
7152009-12-01 David Edelsohn <edelsohn@gnu.org>
716
717 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
718 register usage. Call ffi_prep_args directly. Add long double
719 return value support.
720 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
721 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
722 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
723 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
724 mode.
725 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
726 into case.
727 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
728 Allocate result area between params and FPRs.
729
7302009-11-30 David Edelsohn <edelsohn@gnu.org>
731
732 PR target/35484
733 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
734 AIX64.
735 * src/powerpc/aix.S: Implement AIX64 version.
736 * src/powerpc/aix_closure.S: Implement AIX64 version.
737 (ffi_closure_ASM): Use extsb, lha and displament addresses.
738 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
739 support.
740 (ffi_prep_cif_machdep): Same.
741 (ffi_call): Same.
742 (ffi_closure_helper_DARWIN): Same.
743
7442009-11-02 Andreas Tobler <a.tobler@schweiz.org>
745
746 PR libffi/41908
747 * testsuite/libffi.call/testclosure.c: New test.
748
Anthony Greenc6dddbd2009-10-04 08:11:33 -04007492009-09-28 Kai Tietz <kai.tietz@onevision.com>
750
751 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
752 assembly version use of ___chkstk.
753
7542009-09-23 Matthias Klose <doko@ubuntu.com>
755
756 PR libffi/40242, PR libffi/41443
757 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
758 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
759 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
760 Change the conditionals to __SOFTFP__ || __ARM_EABI__
761 for -mfloat-abi=softfp to work.
762
7632009-09-17 Loren J. Rittle <ljrittle@acm.org>
764
765 PR testsuite/32843 (strikes again)
766 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
767 enable proper extension on char and short.
768
7692009-09-15 David Daney <ddaney@caviumnetworks.com>
770
771 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
772 handling for FFI_TYPE_POINTER.
773 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
774 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
775 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
776 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
777 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
778 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
779 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
780 structure and pointer returns.
781 (ffi_closure_N32): Add handling for pointer returns.
782 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
783 calc_n32_return_struct_flags): Handle soft-float.
784 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
785 (ffi_call_N32): Declare proper argument types.
786 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
787 soft-float.
788
7892009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
790
791 * configure.ac (AC_PREREQ): Bump to 2.64.
792
7932009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
794
795 * Makefile.am (install-html, install-pdf): Remove.
796 * Makefile.in: Regenerate.
797
798 * Makefile.in: Regenerate.
799 * aclocal.m4: Regenerate.
800 * configure: Regenerate.
801 * fficonfig.h.in: Regenerate.
802 * include/Makefile.in: Regenerate.
803 * man/Makefile.in: Regenerate.
804 * testsuite/Makefile.in: Regenerate.
805
Anthony Green3d561062011-11-12 07:20:24 -05008062011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org>
807
808 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support.
809 * configure: Rebuilt.
810
Anthony Greenc6dddbd2009-10-04 08:11:33 -04008112009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
812
813 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
814
8152009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
816
817 PR libffi/40807
818 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
819 return types for X86_WIN32.
820 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
821 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
822 _ffi_closure_STDCALL): Likewise.
823
824 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
825 (dlmmap, dlmunmap): Also use these functions on Cygwin.
826
8272009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
828
829 PR testsuite/40699
830 PR testsuite/40707
831 PR testsuite/40709
832 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
833 2009-06-30 commits.
834
8352009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
836
837 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
838 to "" before adding paths. (This reinstates an assignment that
839 was removed by my 2009-06-30 commit, but changes the initial
840 value from "." to "".)
841
8422009-07-01 H.J. Lu <hongjiu.lu@intel.com>
843
844 PR testsuite/40601
845 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
846 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
847 empty.
848
8492009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
850
851 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
852 to ld_library_path. Use add_path. Add just find_libgcc_s
853 to ld_library_path, not every libgcc multilib directory.
854
8552009-06-16 Wim Lewis <wiml@hhhh.org>
856
857 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
858 supposed to be callee-saved.
859 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
860 return buffer for odd-size structs.
861
8622009-06-16 Andreas Tobler <a.tobler@schweiz.org>
863
864 PR libffi/40444
865 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
866 allow_stack_execute for Darwin.
867
8682009-06-16 Andrew Haley <aph@redhat.com>
869
870 * configure.ac (TARGETDIR): Add missing blank lines.
871 * configure: Regenerate.
872
8732009-06-16 Andrew Haley <aph@redhat.com>
874
875 * testsuite/libffi.call/cls_align_sint64.c,
876 testsuite/libffi.call/cls_align_uint64.c,
877 testsuite/libffi.call/cls_longdouble_va.c,
878 testsuite/libffi.call/cls_ulonglong.c,
879 testsuite/libffi.call/return_ll1.c,
880 testsuite/libffi.call/stret_medium2.c: Fix printf format
881 specifiers.
882 * testsuite/libffi.call/ffitest.h,
883 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
884
8852009-06-15 Andrew Haley <aph@redhat.com>
886
887 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
888 * testsuite/libffi.call/err_bad_abi.c: Likewise.
Anthony Green0cfe60e2009-12-29 10:06:04 -0500889
Anthony Greenc6dddbd2009-10-04 08:11:33 -04008902009-06-12 Andrew Haley <aph@redhat.com>
891
892 * Makefile.am: Remove info_TEXINFOS.
893
8942009-06-12 Andrew Haley <aph@redhat.com>
895
896 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
897 testsuite/libffi.call/cls_align_uint64.c,
898 testsuite/libffi.call/cls_ulonglong.c,
899 testsuite/libffi.call/return_ll1.c,
900 testsuite/libffi.call/stret_medium2.c: Fix printf format
901 specifiers.
902 testsuite/libffi.special/unwindtest.cc: include stdint.h.
903
9042009-06-11 Timothy Wall <twall@users.sf.net>
905
906 * Makefile.am,
Anthony Green0cfe60e2009-12-29 10:06:04 -0500907 configure.ac,
908 include/ffi.h.in,
909 include/ffi_common.h,
910 src/closures.c,
911 src/dlmalloc.c,
912 src/x86/ffi.c,
913 src/x86/ffitarget.h,
914 src/x86/win64.S (new),
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400915 README: Added win64 support (mingw or MSVC)
Anthony Green0cfe60e2009-12-29 10:06:04 -0500916 * Makefile.in,
917 include/Makefile.in,
918 man/Makefile.in,
919 testsuite/Makefile.in,
920 configure,
921 aclocal.m4: Regenerated
922 * ltcf-c.sh: properly escape cygwin/w32 path
923 * man/ffi_call.3: Clarify size requirements for return value.
924 * src/x86/ffi64.c: Fix filename in comment.
925 * src/x86/win32.S: Remove unused extern.
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400926
Anthony Green0cfe60e2009-12-29 10:06:04 -0500927 * testsuite/libffi.call/closure_fn0.c,
928 testsuite/libffi.call/closure_fn1.c,
929 testsuite/libffi.call/closure_fn2.c,
930 testsuite/libffi.call/closure_fn3.c,
931 testsuite/libffi.call/closure_fn4.c,
932 testsuite/libffi.call/closure_fn5.c,
933 testsuite/libffi.call/closure_fn6.c,
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400934 testsuite/libffi.call/closure_stdcall.c,
935 testsuite/libffi.call/cls_12byte.c,
936 testsuite/libffi.call/cls_16byte.c,
937 testsuite/libffi.call/cls_18byte.c,
938 testsuite/libffi.call/cls_19byte.c,
939 testsuite/libffi.call/cls_1_1byte.c,
940 testsuite/libffi.call/cls_20byte.c,
941 testsuite/libffi.call/cls_20byte1.c,
942 testsuite/libffi.call/cls_24byte.c,
943 testsuite/libffi.call/cls_2byte.c,
944 testsuite/libffi.call/cls_3_1byte.c,
945 testsuite/libffi.call/cls_3byte1.c,
946 testsuite/libffi.call/cls_3byte2.c,
947 testsuite/libffi.call/cls_4_1byte.c,
948 testsuite/libffi.call/cls_4byte.c,
949 testsuite/libffi.call/cls_5_1_byte.c,
950 testsuite/libffi.call/cls_5byte.c,
951 testsuite/libffi.call/cls_64byte.c,
952 testsuite/libffi.call/cls_6_1_byte.c,
953 testsuite/libffi.call/cls_6byte.c,
954 testsuite/libffi.call/cls_7_1_byte.c,
955 testsuite/libffi.call/cls_7byte.c,
956 testsuite/libffi.call/cls_8byte.c,
957 testsuite/libffi.call/cls_9byte1.c,
958 testsuite/libffi.call/cls_9byte2.c,
959 testsuite/libffi.call/cls_align_double.c,
960 testsuite/libffi.call/cls_align_float.c,
961 testsuite/libffi.call/cls_align_longdouble.c,
962 testsuite/libffi.call/cls_align_longdouble_split.c,
963 testsuite/libffi.call/cls_align_longdouble_split2.c,
964 testsuite/libffi.call/cls_align_pointer.c,
965 testsuite/libffi.call/cls_align_sint16.c,
966 testsuite/libffi.call/cls_align_sint32.c,
967 testsuite/libffi.call/cls_align_sint64.c,
968 testsuite/libffi.call/cls_align_uint16.c,
969 testsuite/libffi.call/cls_align_uint32.c,
970 testsuite/libffi.call/cls_align_uint64.c,
971 testsuite/libffi.call/cls_dbls_struct.c,
972 testsuite/libffi.call/cls_double.c,
973 testsuite/libffi.call/cls_double_va.c,
974 testsuite/libffi.call/cls_float.c,
975 testsuite/libffi.call/cls_longdouble.c,
976 testsuite/libffi.call/cls_longdouble_va.c,
977 testsuite/libffi.call/cls_multi_schar.c,
978 testsuite/libffi.call/cls_multi_sshort.c,
979 testsuite/libffi.call/cls_multi_sshortchar.c,
980 testsuite/libffi.call/cls_multi_uchar.c,
981 testsuite/libffi.call/cls_multi_ushort.c,
982 testsuite/libffi.call/cls_multi_ushortchar.c,
983 testsuite/libffi.call/cls_pointer.c,
984 testsuite/libffi.call/cls_pointer_stack.c,
985 testsuite/libffi.call/cls_schar.c,
986 testsuite/libffi.call/cls_sint.c,
987 testsuite/libffi.call/cls_sshort.c,
988 testsuite/libffi.call/cls_uchar.c,
989 testsuite/libffi.call/cls_uint.c,
990 testsuite/libffi.call/cls_ulonglong.c,
991 testsuite/libffi.call/cls_ushort.c,
992 testsuite/libffi.call/err_bad_abi.c,
993 testsuite/libffi.call/err_bad_typedef.c,
994 testsuite/libffi.call/float2.c,
995 testsuite/libffi.call/huge_struct.c,
996 testsuite/libffi.call/nested_struct.c,
997 testsuite/libffi.call/nested_struct1.c,
998 testsuite/libffi.call/nested_struct10.c,
999 testsuite/libffi.call/nested_struct2.c,
1000 testsuite/libffi.call/nested_struct3.c,
1001 testsuite/libffi.call/nested_struct4.c,
1002 testsuite/libffi.call/nested_struct5.c,
1003 testsuite/libffi.call/nested_struct6.c,
1004 testsuite/libffi.call/nested_struct7.c,
1005 testsuite/libffi.call/nested_struct8.c,
1006 testsuite/libffi.call/nested_struct9.c,
1007 testsuite/libffi.call/problem1.c,
1008 testsuite/libffi.call/return_ldl.c,
1009 testsuite/libffi.call/return_ll1.c,
1010 testsuite/libffi.call/stret_large.c,
1011 testsuite/libffi.call/stret_large2.c,
1012 testsuite/libffi.call/stret_medium.c,
1013 testsuite/libffi.call/stret_medium2.c,
Anthony Green0cfe60e2009-12-29 10:06:04 -05001014 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
1015 of checking for MMAP. Use intptr_t instead of long casts.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001016
10172009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
1018
1019 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
1020 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
1021 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
1022
10232009-06-09 Andrew Haley <aph@redhat.com>
1024
1025 * src/x86/freebsd.S: Add missing file.
1026
10272009-06-08 Andrew Haley <aph@redhat.com>
1028
1029 Import from libffi 3.0.8:
1030
1031 * doc/libffi.texi: New file.
1032 * doc/libffi.info: Likewise.
1033 * doc/stamp-vti: Likewise.
1034 * man/Makefile.am: New file.
1035 * man/ffi_call.3: New file.
1036
1037 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
1038 src/dlmalloc.c.
1039 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
1040
1041 * configure.ac: Bump version to 3.0.8.
1042 parisc*-*-linux*: Add.
1043 i386-*-freebsd* | i386-*-openbsd*: Add.
1044 powerpc-*-beos*: Add.
1045 AM_CONDITIONAL X86_FREEBSD: Add.
1046 AC_CONFIG_FILES: Add man/Makefile.
1047
1048 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
1049
10502009-06-08 Andrew Haley <aph@redhat.com>
1051
1052 * README: Import from libffi 3.0.8.
1053
10542009-06-08 Andrew Haley <aph@redhat.com>
1055
1056 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
1057 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
1058 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
1059 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
1060
1061 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
1062 * testsuite/libffi.call/stret_medium.c: Likewise.
1063 * testsuite/libffi.call/stret_large2.c: Likewise.
1064 * testsuite/libffi.call/stret_large.c: Likewise.
1065
10662008-12-26 Timothy Wall <twall@users.sf.net>
1067
Anthony Green0cfe60e2009-12-29 10:06:04 -05001068 * testsuite/libffi.call/cls_longdouble.c,
1069 testsuite/libffi.call/cls_longdouble_va.c,
1070 testsuite/libffi.call/cls_align_longdouble.c,
1071 testsuite/libffi.call/cls_align_longdouble_split.c,
1072 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
1073 failures on x86_64 cygwin/mingw.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001074
10752008-12-22 Timothy Wall <twall@users.sf.net>
1076
Anthony Green0cfe60e2009-12-29 10:06:04 -05001077 * testsuite/libffi.call/closure_fn0.c,
1078 testsuite/libffi.call/closure_fn1.c,
1079 testsuite/libffi.call/closure_fn2.c,
1080 testsuite/libffi.call/closure_fn3.c,
1081 testsuite/libffi.call/closure_fn4.c,
1082 testsuite/libffi.call/closure_fn5.c,
1083 testsuite/libffi.call/closure_fn6.c,
1084 testsuite/libffi.call/closure_loc_fn0.c,
1085 testsuite/libffi.call/closure_stdcall.c,
1086 testsuite/libffi.call/cls_align_pointer.c,
1087 testsuite/libffi.call/cls_pointer.c,
1088 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
1089 pointer to integer (intptr_t).
1090 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001091
10922008-07-24 Anthony Green <green@redhat.com>
1093
Anthony Green0cfe60e2009-12-29 10:06:04 -05001094 * testsuite/libffi.call/cls_dbls_struct.c,
1095 testsuite/libffi.call/cls_double_va.c,
1096 testsuite/libffi.call/cls_longdouble.c,
1097 testsuite/libffi.call/cls_longdouble_va.c,
1098 testsuite/libffi.call/cls_pointer.c,
1099 testsuite/libffi.call/cls_pointer_stack.c,
1100 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
1101 compiler warnings.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001102
11032008-03-04 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001104 Blake Chaffin
1105 hos@tamanegi.org
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001106
Anthony Green0cfe60e2009-12-29 10:06:04 -05001107 * testsuite/libffi.call/cls_align_longdouble_split2.c
1108 testsuite/libffi.call/cls_align_longdouble_split.c
1109 testsuite/libffi.call/cls_dbls_struct.c
1110 testsuite/libffi.call/cls_double_va.c
1111 testsuite/libffi.call/cls_longdouble.c
1112 testsuite/libffi.call/cls_longdouble_va.c
1113 testsuite/libffi.call/cls_pointer.c
1114 testsuite/libffi.call/cls_pointer_stack.c
1115 testsuite/libffi.call/err_bad_abi.c
1116 testsuite/libffi.call/err_bad_typedef.c
1117 testsuite/libffi.call/stret_large2.c
1118 testsuite/libffi.call/stret_large.c
1119 testsuite/libffi.call/stret_medium2.c
1120 testsuite/libffi.call/stret_medium.c: New tests from Apple.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001121
11222009-06-05 Andrew Haley <aph@redhat.com>
1123
1124 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
1125 libffi.
1126
11272009-06-04 Andrew Haley <aph@redhat.com>
1128
1129 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
1130 stdcall changes.
1131
11322008-02-26 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001133 Thomas Heller <theller@ctypes.org>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001134
Anthony Green0cfe60e2009-12-29 10:06:04 -05001135 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
1136 comment.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001137
11382008-02-03 Timothy Wall <twall@users.sf.net>
1139
Anthony Green0cfe60e2009-12-29 10:06:04 -05001140 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
1141 offset based on code pointer, not data pointer.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001142
11432008-01-31 Timothy Wall <twall@users.sf.net>
1144
Anthony Green0cfe60e2009-12-29 10:06:04 -05001145 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
1146 closures.
1147 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
1148 closures.
1149 * src/x86/win32.S: Add assembly for stdcall closure.
1150 * src/x86/ffi.c: Initialize stdcall closure trampoline.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001151
11522009-06-04 Andrew Haley <aph@redhat.com>
1153
1154 * include/ffi.h.in: Change void (*)() to void (*)(void).
1155 * src/x86/ffi.c: Likewise.
1156
11572009-06-04 Andrew Haley <aph@redhat.com>
1158
1159 * src/powerpc/ppc_closure.S: Insert licence header.
1160 * src/powerpc/linux64_closure.S: Likewise.
1161 * src/m68k/sysv.S: Likewise.
1162
1163 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
1164 * src/powerpc/ffi.c: Likewise.
1165 * src/powerpc/ffi_darwin.c: Likewise.
1166 * src/m32r/ffi.c: Likewise.
1167 * src/sh64/ffi.c: Likewise.
1168 * src/x86/ffi64.c: Likewise.
1169 * src/alpha/ffi.c: Likewise.
1170 * src/alpha/osf.S: Likewise.
1171 * src/frv/ffi.c: Likewise.
1172 * src/s390/ffi.c: Likewise.
1173 * src/pa/ffi.c: Likewise.
1174 * src/pa/hpux32.S: Likewise.
1175 * src/ia64/unix.S: Likewise.
1176 * src/ia64/ffi.c: Likewise.
1177 * src/sparc/ffi.c: Likewise.
1178 * src/mips/ffi.c: Likewise.
1179 * src/sh/ffi.c: Likewise.
1180
11812008-02-15 David Daney <ddaney@avtrex.com>
1182
Anthony Green0cfe60e2009-12-29 10:06:04 -05001183 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
1184 Define (conditionally), and use it to include cachectl.h.
1185 (ffi_prep_closure_loc): Fix cache flushing.
1186 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001187
11882009-06-04 Andrew Haley <aph@redhat.com>
1189
1190 include/ffi.h.in,
1191 src/arm/ffitarget.h,
1192 src/arm/ffi.c,
1193 src/arm/sysv.S,
1194 src/powerpc/ffitarget.h,
1195 src/closures.c,
1196 src/sh64/ffitarget.h,
1197 src/sh64/ffi.c,
1198 src/sh64/sysv.S,
1199 src/types.c,
1200 src/x86/ffi64.c,
1201 src/x86/ffitarget.h,
1202 src/x86/win32.S,
1203 src/x86/darwin.S,
1204 src/x86/ffi.c,
1205 src/x86/sysv.S,
1206 src/x86/unix64.S,
1207 src/alpha/ffitarget.h,
1208 src/alpha/ffi.c,
1209 src/alpha/osf.S,
1210 src/m68k/ffitarget.h,
1211 src/frv/ffitarget.h,
1212 src/frv/ffi.c,
1213 src/s390/ffitarget.h,
1214 src/s390/sysv.S,
1215 src/cris/ffitarget.h,
1216 src/pa/linux.S,
1217 src/pa/ffitarget.h,
1218 src/pa/ffi.c,
1219 src/raw_api.c,
1220 src/ia64/ffitarget.h,
1221 src/ia64/unix.S,
1222 src/ia64/ffi.c,
1223 src/ia64/ia64_flags.h,
1224 src/java_raw_api.c,
1225 src/debug.c,
1226 src/sparc/v9.S,
1227 src/sparc/ffitarget.h,
1228 src/sparc/ffi.c,
1229 src/sparc/v8.S,
1230 src/mips/ffitarget.h,
1231 src/mips/n32.S,
1232 src/mips/o32.S,
1233 src/mips/ffi.c,
1234 src/prep_cif.c,
1235 src/sh/ffitarget.h,
1236 src/sh/ffi.c,
1237 src/sh/sysv.S: Update license text.
1238
12392009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
1240
1241 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
1242 (.eh_frame): Add FDE for it.
1243
12442009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
1245
1246 * configure.ac: Also check if assembler supports pc-relative
1247 relocs on X86_WIN32 targets.
1248 * configure: Regenerate.
1249 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
1250 (_ffi_call_SYSV): Add missing function type symbol .def and
1251 add EH markup labels.
1252 (_ffi_call_STDCALL): Likewise.
1253 (_ffi_closure_SYSV): Likewise.
1254 (_ffi_closure_raw_SYSV): Likewise.
1255 (.eh_frame): Add hand-crafted EH data.
1256
12572009-04-09 Jakub Jelinek <jakub@redhat.com>
1258
1259 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
1260 version 3 of the GNU General Public License and to point readers
1261 at the COPYING3 file and the FSF's license web page.
1262 * testsuite/libffi.call/call.exp: Likewise.
1263 * testsuite/libffi.special/special.exp: Likewise.
1264
12652009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1266
1267 * configure: Regenerate.
1268
12692008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1270
1271 PR libffi/26048
1272 * configure.ac (HAVE_AS_X86_PCREL): New test.
1273 * configure: Regenerate.
1274 * fficonfig.h.in: Regenerate.
1275 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
1276 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
1277 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
1278 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1279 * src/x86/unix64.S (.Lstore_table): Move to .text section.
1280 (.Lload_table): Likewise.
1281 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1282
12832008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1284
1285 * configure: Regenerate.
1286
12872008-11-21 Eric Botcazou <ebotcazou@adacore.com>
1288
1289 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
1290 signed/unsigned int8/16 return values.
1291 * src/sparc/v8.S (ffi_call_v8): Likewise.
1292 (ffi_closure_v8): Likewise.
1293
12942008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001295 Steve Ellcey <sje@cup.hp.com>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001296
1297 * configure: Regenerate for new libtool.
1298 * Makefile.in: Ditto.
1299 * include/Makefile.in: Ditto.
1300 * aclocal.m4: Ditto.
1301
13022008-08-25 Andreas Tobler <a.tobler@schweiz.org>
1303
1304 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
1305 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
1306 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
1307 Adjust copyright notice.
1308 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
1309 register or two register to use for FFI_SYSV structs.
1310 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
1311 (ffi_closure_helper_SYSV): Fix the return type for
1312 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
1313 Adjust copyright notice.
1314
13152008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
1316
1317 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
1318 int.
1319
13202008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1321
1322 * configure: Regenerate.
1323 * include/Makefile.in: Regenerate.
1324 * testsuite/Makefile.in: Regenerate.
1325
13262008-06-07 Joseph Myers <joseph@codesourcery.com>
1327
1328 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
1329 powerpc-*-beos*): Remove.
1330 * configure: Regenerate.
1331
13322008-05-09 Julian Brown <julian@codesourcery.com>
1333
1334 * Makefile.am (LTLDFLAGS): New.
1335 (libffi_la_LDFLAGS): Use above.
1336 * Makefile.in: Regenerate.
1337
13382008-04-18 Paolo Bonzini <bonzini@gnu.org>
1339
1340 PR bootstrap/35457
1341 * aclocal.m4: Regenerate.
1342 * configure: Regenerate.
1343
13442008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
1345
1346 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
1347 * src/sh64/sysv.S: Likewise.
1348
13492008-03-26 Daniel Jacobowitz <dan@debian.org>
1350
1351 * src/arm/sysv.S: Fix ARM comment marker.
1352
13532008-03-26 Jakub Jelinek <jakub@redhat.com>
1354
1355 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
1356 * src/s390/sysv.S: Likewise.
1357 * src/powerpc/ppc_closure.S: Likewise.
1358 * src/powerpc/sysv.S: Likewise.
1359 * src/x86/unix64.S: Likewise.
1360 * src/x86/sysv.S: Likewise.
1361 * src/sparc/v8.S: Likewise.
1362 * src/sparc/v9.S: Likewise.
1363 * src/m68k/sysv.S: Likewise.
1364 * src/arm/sysv.S: Likewise.
1365
13662008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1367
1368 * aclocal.m4: Regenerate.
1369 * configure: Likewise.
1370 * Makefile.in: Likewise.
1371 * include/Makefile.in: Likewise.
1372 * testsuite/Makefile.in: Likewise.
1373
13742008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
1375 Andreas Tobler <a.tobler@schweiz.org>
1376
1377 * configure.ac: Add amd64-*-freebsd* target.
1378 * configure: Regenerate.
1379
13802008-01-30 H.J. Lu <hongjiu.lu@intel.com>
1381
1382 PR libffi/34612
1383 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
1384 returning struct.
1385
1386 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
1387 tests.
1388
13892008-01-24 David Edelsohn <edelsohn@gnu.org>
1390
1391 * configure: Regenerate.
1392
13932008-01-06 Andreas Tobler <a.tobler@schweiz.org>
1394
1395 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
1396
13972008-01-05 Andreas Tobler <a.tobler@schweiz.org>
1398
1399 PR testsuite/32843
1400 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
1401 signed/unsigned int8/16 for X86_DARWIN.
1402 Updated copyright info.
1403 Handle one and two byte structs with special cif->flags.
1404 * src/x86/ffitarget.h: Add special types for one and two byte structs.
1405 Updated copyright info.
1406 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
1407 sysv.S
1408 Remove code to pop args from the stack after call.
1409 Special-case signed/unsigned for int8/16, one and two byte structs.
1410 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1411 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1412 FFI_TYPE_SINT32.
1413 Updated copyright info.
1414
14152007-12-08 David Daney <ddaney@avtrex.com>
1416
Anthony Green0cfe60e2009-12-29 10:06:04 -05001417 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001418 SUBU, add with ADDU and use smaller code sequences.
1419
14202007-12-07 David Daney <ddaney@avtrex.com>
1421
1422 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
1423 type.
1424
14252007-12-06 David Daney <ddaney@avtrex.com>
1426
1427 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
1428 defined.
1429 (ffi_java_raw): New typedef.
1430 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
1431 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
1432 ffi_java_raw.
1433 (ffi_java_raw_closure) : Same.
1434 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
1435 parameter types.
1436 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
1437 FFI_SIZEOF_JAVA_RAW.
1438 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
1439 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
1440 sizeof(ffi_java_raw) for alignment calculations.
1441 (ffi_java_ptrarray_to_raw): Same.
1442 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
Anthony Green0cfe60e2009-12-29 10:06:04 -05001443 if FFI_SIZEOF_JAVA_RAW == 4.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001444 (ffi_java_raw_to_rvalue): Same.
1445 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
1446 (ffi_java_translate_args): Same.
1447 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
1448 parameter types.
1449 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
1450
14512007-12-06 David Daney <ddaney@avtrex.com>
1452
Anthony Green0cfe60e2009-12-29 10:06:04 -05001453 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001454 pointer values.
1455
14562007-12-01 Andreas Tobler <a.tobler@schweiz.org>
1457
1458 PR libffi/31937
1459 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
1460 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
1461 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
1462 set the NUM_FPR_ARG_REGISTERS according to.
1463 Add support for potential soft-float support under hard-float
1464 architecture.
1465 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
1466 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
1467 to the FFI_LINUX_SOFT_FLOAT ABI.
1468 (ffi_prep_cif_machdep): Likewise.
1469 (ffi_closure_helper_SYSV): Likewise.
1470 * src/powerpc/ppc_closure.S: Make sure not to store float/double
1471 on archs where __NO_FPRS__ is true.
1472 Add FFI_TYPE_UINT128 support.
1473 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
1474 Adjust copyright notice.
1475
14762007-11-25 Andreas Tobler <a.tobler@schweiz.org>
1477
1478 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
1479 * include/ffi_common.h: ... here.
1480 Update copyright.
1481
14822007-11-17 Andreas Tobler <a.tobler@schweiz.org>
1483
1484 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
1485 * src/powerpc/linux64.S: Likewise.
1486 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
1487 * testsuite/libffi.call/return_ldl.c: New test.
1488
14892007-09-04 <aph@redhat.com>
1490
1491 * src/arm/sysv.S (UNWIND): New.
1492 (Whole file): Conditionally compile unwinder directives.
1493 * src/arm/sysv.S: Add unwinder directives.
1494
1495 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
1496 Only treat r0 as a struct address if we're actually returning a
1497 struct by address.
1498 Only copy the bytes that are actually within a struct.
1499 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
1500 is returned in r0, not passed by address.
1501 (ffi_call): Allocate a word-sized temporary for the case where
1502 a composite is returned in r0.
1503 (ffi_prep_incoming_args_SYSV): Align as necessary.
1504
15052007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
1506
Anthony Green0cfe60e2009-12-29 10:06:04 -05001507 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001508 directly using the sys_cacheflush syscall.
1509
15102007-07-27 Andrew Haley <aph@redhat.com>
1511
1512 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
1513
15142007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
1515
1516 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
1517 * configure.ac: Likewise.
1518 * Makefile.in: Regenerate.
1519 * include/Makefile.in: Likewise.
1520 * testsuite/Makefile.in: Likewise.
1521 * configure: Likewise.
1522
15232007-08-24 David Daney <ddaney@avtrex.com>
1524
1525 * testsuite/libffi.call/return_sl.c: New test.
1526
15272007-08-10 David Daney <ddaney@avtrex.com>
1528
1529 * testsuite/libffi.call/cls_multi_ushort.c,
1530 testsuite/libffi.call/cls_align_uint16.c,
1531 testsuite/libffi.call/nested_struct1.c,
1532 testsuite/libffi.call/nested_struct3.c,
1533 testsuite/libffi.call/cls_7_1_byte.c,
1534 testsuite/libffi.call/nested_struct5.c,
1535 testsuite/libffi.call/cls_double.c,
1536 testsuite/libffi.call/nested_struct7.c,
1537 testsuite/libffi.call/cls_sint.c,
1538 testsuite/libffi.call/nested_struct9.c,
1539 testsuite/libffi.call/cls_20byte1.c,
1540 testsuite/libffi.call/cls_multi_sshortchar.c,
1541 testsuite/libffi.call/cls_align_sint64.c,
1542 testsuite/libffi.call/cls_3byte2.c,
1543 testsuite/libffi.call/cls_multi_schar.c,
1544 testsuite/libffi.call/cls_multi_uchar.c,
1545 testsuite/libffi.call/cls_19byte.c,
1546 testsuite/libffi.call/cls_9byte1.c,
1547 testsuite/libffi.call/cls_align_float.c,
1548 testsuite/libffi.call/closure_fn1.c,
1549 testsuite/libffi.call/problem1.c,
1550 testsuite/libffi.call/closure_fn3.c,
1551 testsuite/libffi.call/cls_sshort.c,
1552 testsuite/libffi.call/closure_fn5.c,
1553 testsuite/libffi.call/cls_align_double.c,
1554 testsuite/libffi.call/nested_struct.c,
1555 testsuite/libffi.call/cls_2byte.c,
1556 testsuite/libffi.call/nested_struct10.c,
1557 testsuite/libffi.call/cls_4byte.c,
1558 testsuite/libffi.call/cls_6byte.c,
1559 testsuite/libffi.call/cls_8byte.c,
1560 testsuite/libffi.call/cls_multi_sshort.c,
1561 testsuite/libffi.call/cls_align_sint16.c,
1562 testsuite/libffi.call/cls_align_uint32.c,
1563 testsuite/libffi.call/cls_20byte.c,
1564 testsuite/libffi.call/cls_float.c,
1565 testsuite/libffi.call/nested_struct2.c,
1566 testsuite/libffi.call/cls_5_1_byte.c,
1567 testsuite/libffi.call/nested_struct4.c,
1568 testsuite/libffi.call/cls_24byte.c,
1569 testsuite/libffi.call/nested_struct6.c,
1570 testsuite/libffi.call/cls_64byte.c,
1571 testsuite/libffi.call/nested_struct8.c,
1572 testsuite/libffi.call/cls_uint.c,
1573 testsuite/libffi.call/cls_multi_ushortchar.c,
1574 testsuite/libffi.call/cls_schar.c,
1575 testsuite/libffi.call/cls_uchar.c,
1576 testsuite/libffi.call/cls_align_uint64.c,
1577 testsuite/libffi.call/cls_ulonglong.c,
1578 testsuite/libffi.call/cls_align_longdouble.c,
1579 testsuite/libffi.call/cls_1_1byte.c,
1580 testsuite/libffi.call/cls_12byte.c,
1581 testsuite/libffi.call/cls_3_1byte.c,
1582 testsuite/libffi.call/cls_3byte1.c,
1583 testsuite/libffi.call/cls_4_1byte.c,
1584 testsuite/libffi.call/cls_6_1_byte.c,
1585 testsuite/libffi.call/cls_16byte.c,
1586 testsuite/libffi.call/cls_18byte.c,
1587 testsuite/libffi.call/closure_fn0.c,
1588 testsuite/libffi.call/cls_9byte2.c,
1589 testsuite/libffi.call/closure_fn2.c,
1590 testsuite/libffi.call/closure_fn4.c,
1591 testsuite/libffi.call/cls_ushort.c,
1592 testsuite/libffi.call/closure_fn6.c,
1593 testsuite/libffi.call/cls_5byte.c,
1594 testsuite/libffi.call/cls_align_pointer.c,
1595 testsuite/libffi.call/cls_7byte.c,
1596 testsuite/libffi.call/cls_align_sint32.c,
1597 testsuite/libffi.special/unwindtest_ffi_call.cc,
1598 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
1599
16002007-08-10 David Daney <ddaney@avtrex.com>
1601
1602 PR libffi/28313
1603 * configure.ac: Don't treat mips64 as a special case.
1604 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
1605 * configure: Regenerate
1606 * Makefile.in: Ditto.
1607 * fficonfig.h.in: Ditto.
1608 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
1609 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
1610 (FFI_DEFAULT_ABI): Set for n64 case.
1611 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
1612 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
1613 (ffi_closure_N32): New function.
1614 (.eh_frame): New section
1615 * src/mips/o32.S: Clean up comments.
1616 (ffi_closure_O32): Pass ffi_closure parameter in $12.
1617 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
1618 _MIPS_SIM == _ABIN32 throughout.
1619 (FFI_MIPS_STOP_HERE): New, use in place of
1620 ffi_stop_here.
1621 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
1622 to support n32/n64 ABIs.
1623 (calc_n32_struct_flags): Rewrite.
1624 (calc_n32_return_struct_flags): Remove unused variable. Reverse
1625 position of flag bits.
1626 (ffi_prep_cif_machdep): Rewrite n32 portion.
1627 (ffi_call): Enable for n64. Add special handling for small structure
1628 return values.
1629 (ffi_prep_closure_loc): Add n32 and n64 support.
1630 (ffi_closure_mips_inner_O32): Add cast to silence warning.
1631 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
1632
16332007-08-08 David Daney <ddaney@avtrex.com>
1634
1635 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
1636 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
1637 specifiers.
1638 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
1639 * testsuite/libffi.call/cls_sint.c (main): Ditto.
1640 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
1641 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
1642 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
1643 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
1644 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
1645 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
1646 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
1647 * testsuite/libffi.call/return_fl3.c (main): Ditto.
1648 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
1649 * testsuite/libffi.call/nested_struct.c (main): Ditto.
1650 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
1651 * testsuite/libffi.call/return_ll1.c (main): Ditto.
1652 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
1653 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
1654 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
1655 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
1656 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
1657 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
1658 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
1659 * testsuite/libffi.call/cls_uint.c (main): Ditto.
1660 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
1661 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
1662 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
1663 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
1664 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
1665 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
1666 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
1667 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
1668 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
1669
16702007-08-07 Andrew Haley <aph@redhat.com>
1671
1672 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
1673 checkin.
1674
16752007-08-06 Andrew Haley <aph@redhat.com>
1676
1677 PR testsuite/32843
1678 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1679 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1680 FFI_TYPE_SINT32.
1681
16822007-08-02 David Daney <ddaney@avtrex.com>
1683
1684 * testsuite/libffi.call/return_ul.c (main): Define return type as
1685 ffi_arg. Use proper printf conversion specifier.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001686
Anthony Greenc6dddbd2009-10-04 08:11:33 -040016872007-07-30 Andrew Haley <aph@redhat.com>
1688
1689 PR testsuite/32843
1690 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
1691 signed/unsigned int8/16.
1692 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
1693 Use a jump table.
1694 Remove code to pop args from the stack after call.
1695 Special-case signed/unsigned int8/16.
1696 * testsuite/libffi.call/return_sc.c (main): Revert.
1697
16982007-07-26 Richard Guenther <rguenther@suse.de>
1699
1700 PR testsuite/32843
1701 * testsuite/libffi.call/return_sc.c (main): Verify call
1702 result as signed char, not ffi_arg.
1703
17042007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1705
1706 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
1707 * configure: Regenerate.
1708
17092007-07-11 David Daney <ddaney@avtrex.com>
1710
1711 * src/mips/ffi.c: Don't include sys/cachectl.h.
1712 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
1713 cacheflush().
1714
17152007-05-18 Aurelien Jarno <aurelien@aurel32.net>
1716
1717 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
1718 from (ffi_prep_closure): ... this.
1719 (FFI_INIT_TRAMPOLINE): Adjust.
1720
17212005-12-31 Phil Blundell <pb@reciva.com>
1722
Anthony Green0cfe60e2009-12-29 10:06:04 -05001723 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
1724 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001725 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
1726 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1727 (FFI_CLOSURES): Enable closure support.
1728
17292007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
1730
Anthony Green0cfe60e2009-12-29 10:06:04 -05001731 * testsuite/libffi.call/cls_multi_ushort.c,
1732 testsuite/libffi.call/cls_align_uint16.c,
1733 testsuite/libffi.call/nested_struct1.c,
1734 testsuite/libffi.call/nested_struct3.c,
1735 testsuite/libffi.call/cls_7_1_byte.c,
1736 testsuite/libffi.call/cls_double.c,
1737 testsuite/libffi.call/nested_struct5.c,
1738 testsuite/libffi.call/nested_struct7.c,
1739 testsuite/libffi.call/cls_sint.c,
1740 testsuite/libffi.call/nested_struct9.c,
1741 testsuite/libffi.call/cls_20byte1.c,
1742 testsuite/libffi.call/cls_multi_sshortchar.c,
1743 testsuite/libffi.call/cls_align_sint64.c,
1744 testsuite/libffi.call/cls_3byte2.c,
1745 testsuite/libffi.call/cls_multi_schar.c,
1746 testsuite/libffi.call/cls_multi_uchar.c,
1747 testsuite/libffi.call/cls_19byte.c,
1748 testsuite/libffi.call/cls_9byte1.c,
1749 testsuite/libffi.call/cls_align_float.c,
1750 testsuite/libffi.call/closure_fn1.c,
1751 testsuite/libffi.call/problem1.c,
1752 testsuite/libffi.call/closure_fn3.c,
1753 testsuite/libffi.call/cls_sshort.c,
1754 testsuite/libffi.call/closure_fn5.c,
1755 testsuite/libffi.call/cls_align_double.c,
1756 testsuite/libffi.call/cls_2byte.c,
1757 testsuite/libffi.call/nested_struct.c,
1758 testsuite/libffi.call/nested_struct10.c,
1759 testsuite/libffi.call/cls_4byte.c,
1760 testsuite/libffi.call/cls_6byte.c,
1761 testsuite/libffi.call/cls_8byte.c,
1762 testsuite/libffi.call/cls_multi_sshort.c,
1763 testsuite/libffi.call/cls_align_uint32.c,
1764 testsuite/libffi.call/cls_align_sint16.c,
1765 testsuite/libffi.call/cls_float.c,
1766 testsuite/libffi.call/cls_20byte.c,
1767 testsuite/libffi.call/cls_5_1_byte.c,
1768 testsuite/libffi.call/nested_struct2.c,
1769 testsuite/libffi.call/cls_24byte.c,
1770 testsuite/libffi.call/nested_struct4.c,
1771 testsuite/libffi.call/nested_struct6.c,
1772 testsuite/libffi.call/cls_64byte.c,
1773 testsuite/libffi.call/nested_struct8.c,
1774 testsuite/libffi.call/cls_uint.c,
1775 testsuite/libffi.call/cls_multi_ushortchar.c,
1776 testsuite/libffi.call/cls_schar.c,
1777 testsuite/libffi.call/cls_uchar.c,
1778 testsuite/libffi.call/cls_align_uint64.c,
1779 testsuite/libffi.call/cls_ulonglong.c,
1780 testsuite/libffi.call/cls_align_longdouble.c,
1781 testsuite/libffi.call/cls_1_1byte.c,
1782 testsuite/libffi.call/cls_12byte.c,
1783 testsuite/libffi.call/cls_3_1byte.c,
1784 testsuite/libffi.call/cls_3byte1.c,
1785 testsuite/libffi.call/cls_4_1byte.c,
1786 testsuite/libffi.call/cls_6_1_byte.c,
1787 testsuite/libffi.call/cls_16byte.c,
1788 testsuite/libffi.call/cls_18byte.c,
1789 testsuite/libffi.call/closure_fn0.c,
1790 testsuite/libffi.call/cls_9byte2.c,
1791 testsuite/libffi.call/closure_fn2.c,
1792 testsuite/libffi.call/closure_fn4.c,
1793 testsuite/libffi.call/cls_ushort.c,
1794 testsuite/libffi.call/closure_fn6.c,
1795 testsuite/libffi.call/cls_5byte.c,
1796 testsuite/libffi.call/cls_align_pointer.c,
1797 testsuite/libffi.call/cls_7byte.c,
1798 testsuite/libffi.call/cls_align_sint32.c,
1799 testsuite/libffi.special/unwindtest_ffi_call.cc,
1800 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001801
18022007-07-05 H.J. Lu <hongjiu.lu@intel.com>
1803
1804 * aclocal.m4: Regenerated.
1805
18062007-06-02 Paolo Bonzini <bonzini@gnu.org>
1807
1808 * configure: Regenerate.
1809
18102007-05-23 Steve Ellcey <sje@cup.hp.com>
1811
1812 * Makefile.in: Regenerate.
1813 * configure: Regenerate.
1814 * aclocal.m4: Regenerate.
1815 * include/Makefile.in: Regenerate.
1816 * testsuite/Makefile.in: Regenerate.
1817
18182007-05-10 Roman Zippel <zippel@linux-m68k.org>
1819
1820 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
1821 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
1822 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
1823 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1824 (FFI_CLOSURES): Enable closure support.
1825
18262007-05-10 Roman Zippel <zippel@linux-m68k.org>
1827
1828 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
1829 * configure: Regenerate.
1830 * fficonfig.h.in: Regenerate.
1831 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
1832 CFI_OFFSET,CFI_DEF_CFA): New macros.
1833 (ffi_call_SYSV): Add callframe annotation.
1834
18352007-05-10 Roman Zippel <zippel@linux-m68k.org>
1836
1837 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
1838 numerous test suite failures.
1839 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
1840
18412007-04-11 Paolo Bonzini <bonzini@gnu.org>
1842
1843 * Makefile.am (EXTRA_DIST): Bring up to date.
1844 * Makefile.in: Regenerate.
1845 * src/frv/eabi.S: Remove RCS keyword.
1846
18472007-04-06 Richard Henderson <rth@redhat.com>
1848
1849 * configure.ac: Tidy target case.
1850 (HAVE_LONG_DOUBLE): Allow the target to override.
1851 * configure: Regenerate.
1852 * include/ffi.h.in: Don't define ffi_type_foo if
1853 LIBFFI_HIDE_BASIC_TYPES is defined.
1854 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
1855 to ffi_type_double.
1856 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
1857 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
1858 (ffi_type_longdouble): Special case for Alpha. Don't define
1859 if long double == double.
1860
1861 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
1862 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
1863 (ffi_call, ffi_closure_osf_inner): Likewise.
1864 (ffi_closure_osf_inner): Likewise. Mark hidden.
1865 (ffi_call_osf, ffi_closure_osf): Mark hidden.
1866 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
1867 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
1868 (load_table): Handle 128-bit long double.
1869
1870 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
1871
18722007-04-06 Tom Tromey <tromey@redhat.com>
1873
1874 PR libffi/31491:
1875 * README: Fixed bug in example.
1876
18772007-04-03 Jakub Jelinek <jakub@redhat.com>
1878
1879 * src/closures.c: Include sys/statfs.h.
1880 (_GNU_SOURCE): Define on Linux.
1881 (FFI_MMAP_EXEC_SELINUX): Define.
1882 (selinux_enabled): New variable.
1883 (selinux_enabled_check): New function.
1884 (is_selinux_enabled): Define.
1885 (dlmmap): Use it.
1886
18872007-03-24 Uros Bizjak <ubizjak@gmail.com>
1888
1889 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
1890 Use 'volatile float sum' to create sum of floats to avoid false
1891 negative due to excess precision on ix86 targets.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001892 (main): Ditto.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001893
18942007-03-08 Alexandre Oliva <aoliva@redhat.com>
1895
1896 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
1897 patch.
1898 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
1899
19002007-03-07 Alexandre Oliva <aoliva@redhat.com>
1901
1902 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
1903 (ffi_prep_closure_loc): New.
1904 (ffi_prep_raw_closure_loc): New.
1905 (ffi_prep_java_raw_closure_loc): New.
1906 * src/closures.c: New file.
1907 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
1908 Replace sflags with exec_offset.
1909 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
1910 sub_segment_exec_offset): New macros.
1911 (get_segment_flags, set_segment_flags, check_segment_merge): New
1912 macros.
1913 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
1914 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
1915 destroy_mspace): Use new macros.
1916 (sys_alloc): Silence warning.
1917 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
1918 * Makefile.in: Rebuilt.
1919 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
1920 terms of ffi_prep_closure_loc.
1921 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
1922 from...
1923 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
1924 renamed version.
1925 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
1926 adjusted from...
1927 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
1928 the renamed version.
1929 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
1930 (ffi_prep_closure): ... this.
1931 * src/pa/ffi.c: Likewise.
1932 * src/cris/ffi.c: Likewise. Adjust.
1933 * src/frv/ffi.c: Likewise.
1934 * src/ia64/ffi.c: Likewise.
1935 * src/mips/ffi.c: Likewise.
1936 * src/powerpc/ffi_darwin.c: Likewise.
1937 * src/s390/ffi.c: Likewise.
1938 * src/sh/ffi.c: Likewise.
1939 * src/sh64/ffi.c: Likewise.
1940 * src/sparc/ffi.c: Likewise.
1941 * src/x86/ffi64.c: Likewise.
1942 * src/x86/ffi.c: Likewise.
1943 (FFI_INIT_TRAMPOLINE): Adjust.
1944 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
1945 (ffi_prep_raw_closure): ... this.
1946 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
1947 (ffi_prep_closure): ... this.
1948 (flush_icache): Adjust.
1949
19502007-03-07 Alexandre Oliva <aoliva@redhat.com>
1951
1952 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
1953 Lea's malloc.
1954
19552007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
1956
1957 * Makefile.am: Add dummy install-pdf target.
1958 * Makefile.in: Regenerate
1959
19602007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
1961
1962 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
1963 ffi_closure_helper_SYSV): Add long double handling.
1964
19652007-02-02 Jakub Jelinek <jakub@redhat.com>
1966
1967 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
1968 immediately after bctrl instruction.
1969
19702007-01-18 Alexandre Oliva <aoliva@redhat.com>
1971
1972 * Makefile.am (all-recursive, install-recursive,
1973 mostlyclean-recursive, clean-recursive, distclean-recursive,
1974 maintainer-clean-recursive): Add missing targets.
1975 * Makefile.in: Rebuilt.
1976
19772006-12-14 Andreas Tobler <a.tobler@schweiz.org>
1978
1979 * configure.ac: Add TARGET for x86_64-*-darwin*.
1980 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
1981 for X86_DARWIN.
1982 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
1983 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
1984 * configure: Regenerate.
1985 * Makefile.in: Regenerate.
1986 * include/Makefile.in: Regenerate.
1987 * testsuite/Makefile.in: Regenerate.
1988 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
1989 ffi_call only.
1990
19912006-12-13 Andreas Tobler <a.tobler@schweiz.org>
1992
1993 * aclocal.m4: Regenerate with aclocal -I .. as written in the
1994 Makefile.am.
1995
19962006-10-31 Geoffrey Keating <geoffk@apple.com>
1997
1998 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
1999 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
2000 Darwin.
2001 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
2002 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
2003
20042006-10-10 Paolo Bonzini <bonzini@gnu.org>
2005 Sandro Tolaini <tolaini@libero.it>
2006
Anthony Green0cfe60e2009-12-29 10:06:04 -05002007 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002008 conditional.
2009 * configure: Regenerated.
2010 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
2011 (EXTRA_DIST): Add src/x86/darwin.S.
2012 * Makefile.in: Regenerated.
2013 * include/Makefile.in: Regenerated.
2014 * testsuite/Makefile.in: Regenerated.
2015
2016 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
2017 X86_WIN32, and additionally align stack to 16 bytes.
2018 * src/x86/darwin.S: New, based on sysv.S.
2019 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
2020
20212006-09-12 David Daney <ddaney@avtrex.com>
2022
2023 PR libffi/23935
2024 * include/Makefile.am: Install both ffi.h and ffitarget.h in
2025 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
2026 * aclocal.m4: Regenerated for automake 1.9.6.
2027 * Makefile.in: Regenerated.
2028 * include/Makefile.in: Regenerated.
2029 * testsuite/Makefile.in: Regenerated.
2030
20312006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
2032
2033 * include/ffi_common.h (struct): Revert accidental commit.
2034
20352006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
2036
2037 * include/ffi_common.h: Remove lint directives.
2038 * include/ffi.h.in: Likewise.
2039
20402006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
2041
2042 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
2043 for 32-bit architectures.
2044 * testsuite/libffi.call/return_ul.c: New test case.
2045
20462006-07-19 David Daney <ddaney@avtrex.com>
2047
2048 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
2049 xfail remains for mips64.
2050
20512006-05-23 Carlos O'Donell <carlos@codesourcery.com>
2052
2053 * Makefile.am: Add install-html target. Add install-html to .PHONY
2054 * Makefile.in: Regenerate.
2055 * aclocal.m4: Regenerate.
2056 * include/Makefile.in: Regenerate.
2057 * testsuite/Makefile.in: Regenerate.
2058
20592006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2060
2061 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
2062 stack slot.
2063
20642006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
2065
2066 * README: Remove notice about 'Crazy Comments'.
2067 * src/debug.c: Remove lint directives. Cleanup white spaces.
2068 * src/java_raw_api.c: Likewise.
2069 * src/prep_cif.c: Likewise.
2070 * src/raw_api.c: Likewise.
2071 * src/ffitest.c: Delete. No longer needed, all test cases migrated
2072 to the testsuite.
2073 * src/arm/ffi.c: Remove lint directives.
2074 * src/m32r/ffi.c: Likewise.
2075 * src/pa/ffi.c: Likewise.
2076 * src/powerpc/ffi.c: Likewise.
2077 * src/powerpc/ffi_darwin.c: Likewise.
2078 * src/sh/ffi.c: Likewise.
2079 * src/sh64/ffi.c: Likewise.
2080 * src/x86/ffi.c: Likewise.
2081 * testsuite/libffi.call/float2.c: Likewise.
2082 * testsuite/libffi.call/promotion.c: Likewise.
2083 * testsuite/libffi.call/struct1.c: Likewise.
2084
20852006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
2086
2087 * src/pa/hpux32.S: Correct unwind offset calculation for
2088 ffi_closure_pa32.
2089 * src/pa/linux.S: Likewise.
2090
20912006-04-12 James E Wilson <wilson@specifix.com>
2092
2093 PR libgcj/26483
2094 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
2095 (hfa_type_load): Call stf_spill.
2096 (hfa_type_store): Call ldf_fill.
2097 (ffi_call): Adjust calls to above routines. Add local temps for
2098 macro result.
2099
21002006-04-10 Matthias Klose <doko@debian.org>
2101
2102 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
2103 directory names containing underscores.
2104
21052006-04-07 James E Wilson <wilson@specifix.com>
2106
2107 * testsuite/libffi.call/float4.c: New testcase.
2108
21092006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2110 Andreas Tobler <a.tobler@schweiz.ch>
2111
2112 * Makefile.am: Add PA_HPUX port.
2113 * Makefile.in: Regenerate.
2114 * include/Makefile.in: Likewise.
2115 * testsuite/Makefile.in: Likewise.
2116 * configure.ac: Add PA_HPUX rules.
2117 * configure: Regenerate.
2118 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
2119 Add PA_HPUX and PA64_HPUX.
2120 Rename FFI_LINUX ABI to FFI_PA32 ABI.
2121 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
2122 (FFI_TYPE_SMALL_STRUCT2): Define.
2123 (FFI_TYPE_SMALL_STRUCT4): Likewise.
2124 (FFI_TYPE_SMALL_STRUCT8): Likewise.
2125 (FFI_TYPE_SMALL_STRUCT3): Redefine.
2126 (FFI_TYPE_SMALL_STRUCT5): Likewise.
2127 (FFI_TYPE_SMALL_STRUCT6): Likewise.
2128 (FFI_TYPE_SMALL_STRUCT7): Likewise.
2129 * src/pa/ffi.c (ROUND_DOWN): Delete.
2130 (fldw, fstw, fldd, fstd): Use '__asm__'.
2131 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
2132 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
2133 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
2134 Simplify incrementing of stack slot variable. Change type of local
2135 'n' to unsigned int.
2136 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
2137 double on PA_HPUX.
2138 (ffi_prep_cif_machdep): Likewise.
2139 (ffi_call): Likewise.
2140 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
2141 return type to ffi_status. Simplify incrementing of stack slot
2142 variable. Only copy floating point argument registers when PA_LINUX
2143 is true. Reformat debug statement.
2144 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
2145 FFI_TYPE_SMALL_STRUCT8.
2146 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
2147 declaration.
2148 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
2149 Add nops to cache flush. Add trampoline for PA_HPUX.
2150 * src/pa/hpux32.S: New file.
2151 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
2152 ffi_prep_args_LINUX to ffi_prep_args_pa32.
2153 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
2154 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
2155 argument type checks so that common argument types appear first.
2156 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
2157 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
2158
21592006-03-24 Alan Modra <amodra@bigpond.net.au>
2160
2161 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
2162 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
2163 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
2164 FFI_TYPE_LONGDOUBLE.
2165 (ffi_prep_args64): Assert using IBM extended double.
2166 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
2167 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
2168 (ffi_call): Handle FFI_LINUX.
2169 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
2170 gpr3 return pointer as for struct return. Handle FFI_LINUX
2171 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
2172 unnecessarily.
2173 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
2174 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
2175 Don't use r6 as pointer to results, instead use sp offset. Don't
2176 make a special call to load lr with case table address, instead
2177 use offset from previous call.
2178 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
2179 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
2180 return.
2181
21822006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
2183
2184 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
2185 passed with FP registers correctly.
2186 (ffi_closure_helper_SYSV): Likewise.
2187 * src/sh64/sysv.S: Likewise.
2188
21892006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
2190
2191 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
2192 args and userdata unused.
2193 (closure_test_fn1): Mark cif and userdata unused.
2194 (main): Remove unused res.
2195
21962006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
2197
2198 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
2199 -O2, -O3, -Os and the warning flags -W -Wall.
2200 * testsuite/libffi.special/special.exp: Likewise.
2201 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
2202 unused parameter unused for gcc or else do nothing.
2203 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2204 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
2205 and userdata unused.
2206 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
2207 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
2208 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
2209 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
2210 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
2211 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
2212 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
2213 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
2214 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
2215 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
2216 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
2217 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
2218 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
2219 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
2220 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
2221 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
2222 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
2223 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
2224 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
2225 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
2226 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
2227 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
2228 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
2229 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
2230 Likewise.
2231 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
2232 Likewise.
2233 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
2234 Likewise.
2235 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
2236 void* to avoid compiler warning.
2237 (main): Likewise.
2238 (cls_struct_align_gn): Mark cif and userdata unused.
2239 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
2240 Likewise.
2241 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
2242 Likewise.
2243 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
2244 Likewise.
2245 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
2246 Likewise.
2247 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
2248 Likewise.
2249 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
2250 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
2251 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
2252 data unused.
2253 (main): Cast res_call to silence gcc.
2254 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
2255 data unused.
2256 (main): Cast res_call to silence gcc.
2257 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
2258 and data unused.
2259 (main): Cast res_call to silence gcc.
2260 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
2261 data unused.
2262 (main): Cast res_call to silence gcc.
2263 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
2264 data unused.
2265 (main): Cast res_call to silence gcc.
2266 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
2267 and data unused.
2268 (main): Cast res_call to silence gcc.
2269 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
2270 userdata unused.
2271 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
2272 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
2273 userdata unused.
2274 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
2275 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
2276 userdata unused.
2277 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
2278 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
2279 userdata unused.
2280 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
2281 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
2282 userdata unused.
2283 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
2284 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
2285 and userdata unused.
2286 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
2287 userdata unused.
2288 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
2289 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
2290 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
2291 Cleanup white spaces.
2292 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
2293 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
2294 cif and userdata unused.
2295 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
2296 Likewise.
2297 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
2298 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
2299 formatters to silence gcc.
2300 (B_gn): Mark cif and userdata unused.
2301 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
2302 unused.
2303 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
2304 (B_gn): Mark cif and userdata unused.
2305 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
2306 unused.
2307 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
2308 (B_gn): Mark cif and userdata unused.
2309 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
2310 unused.
2311 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
2312 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
2313 * testsuite/libffi.call/problem1.c (stub): Likewise.
2314 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
2315 gcc.
2316 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
2317 in the last commit for this test case in the test case itself.
2318 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
2319 unused.
2320 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
2321 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
2322 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
2323 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
2324 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
2325 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
2326
23272006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
2328
2329 * src/sh/sysv.S: Fix register numbers in the FDE for
2330 ffi_closure_SYSV.
2331
23322006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
2333
2334 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
2335 declaration to avoid a false negative on ix86. See PR323.
2336
23372006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
2338
2339 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
2340 and cast integer to void * if needed. Update the pointer to
2341 the FP register saved area correctly.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002342
Anthony Greenc6dddbd2009-10-04 08:11:33 -040023432006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
2344
2345 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
2346 is fixed.
2347 * testsuite/libffi.call/nested_struct4.c: Likewise.
2348
23492006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
2350
2351 * testsuite/libffi.call/return_dbl.c: New test case.
2352 * testsuite/libffi.call/return_dbl1.c: Likewise.
2353 * testsuite/libffi.call/return_dbl2.c: Likewise.
2354 * testsuite/libffi.call/return_fl.c: Likewise.
2355 * testsuite/libffi.call/return_fl1.c: Likewise.
2356 * testsuite/libffi.call/return_fl2.c: Likewise.
2357 * testsuite/libffi.call/return_fl3.c: Likewise.
2358 * testsuite/libffi.call/closure_fn6.c: Likewise.
2359
2360 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
2361 definition.
2362 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
2363 here to be used by other test cases too.
2364
2365 * testsuite/libffi.call/nested_struct10.c: New test case.
2366 * testsuite/libffi.call/nested_struct9.c: Likewise.
2367 * testsuite/libffi.call/nested_struct8.c: Likewise.
2368 * testsuite/libffi.call/nested_struct7.c: Likewise.
2369 * testsuite/libffi.call/nested_struct6.c: Likewise.
2370 * testsuite/libffi.call/nested_struct5.c: Likewise.
2371 * testsuite/libffi.call/nested_struct4.c: Likewise.
2372
23732006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
2374
2375 * configure.ac: Enable libffi for sparc64-*-freebsd*.
2376 * configure: Rebuilt.
2377
23782006-01-18 Jakub Jelinek <jakub@redhat.com>
2379
2380 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
2381 instead do the shifting inline.
2382 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
2383 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
2384 and 8 byte structs, for the remaining struct sizes don't call
2385 __lshrdi3, instead do the shifting inline.
2386
23872005-12-07 Thiemo Seufer <ths@networkno.de>
2388
2389 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
2390 missing parentheses.
2391 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
2392 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
2393 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
2394 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
2395 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
2396 FA_0_0_OFF2.
2397 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
2398 endianness bugs.
2399 (ffi_prep_closure): Improve trampoline instruction scheduling.
2400 (ffi_closure_mips_inner_O32): Fix endianness bugs.
2401
24022005-12-03 Alan Modra <amodra@bigpond.net.au>
2403
2404 * src/powerpc/ffi.c: Formatting.
2405 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
2406 (ffi_prep_args64): Likewise.
2407
24082005-09-30 Geoffrey Keating <geoffk@apple.com>
2409
2410 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
2411 darwin, use -shared-libgcc not -lgcc_s, and explain why.
2412
24132005-09-26 Tom Tromey <tromey@redhat.com>
2414
2415 * testsuite/libffi.call/float1.c (value_type): New typedef.
2416 (CANARY): New define.
2417 (main): Check for result buffer overflow.
2418 * src/powerpc/linux64.S: Handle linux64 long double returns.
2419 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
2420 (ffi_prep_cif_machdep): Handle linux64 long double returns.
2421
24222005-08-25 Alan Modra <amodra@bigpond.net.au>
2423
2424 PR target/23404
2425 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
2426 homed fp args.
2427 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
2428
24292005-08-11 Jakub Jelinek <jakub@redhat.com>
2430
2431 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
2432 (AH_BOTTOM): Add FFI_HIDDEN definition.
2433 * configure: Rebuilt.
2434 * fficonfig.h.in: Rebuilt.
2435 * src/powerpc/ffi.c (hidden): Remove.
2436 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
2437 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
2438 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
2439 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
2440 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
2441 add FFI_HIDDEN to its prototype.
2442 (ffi_closure_SYSV_inner): New.
2443 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
2444 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
2445
24462005-08-10 Alfred M. Szmidt <ams@gnu.org>
2447
2448 PR libffi/21819:
2449 * configure: Rebuilt.
2450 * configure.ac: Handle i*86-*-gnu*.
2451
24522005-08-09 Jakub Jelinek <jakub@redhat.com>
2453
2454 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
2455 DW_CFA_offset_extended_sf rather than
2456 DW_CFA_GNU_negative_offset_extended.
2457 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
2458
24592005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
2460
2461 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
2462 on sh3.
2463 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
2464 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
2465 partially on register.
2466 (ffi_closure_helper_SYSV): Likewise.
2467 (ffi_prep_cif_machdep): Don't set too many cif->flags.
2468
24692005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
2470
2471 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
2472 Remove empty line.
2473 * src/sh64/ffi.c (simple_type): Remove.
2474 (return_type): Handle small structures correctly.
2475 (ffi_prep_args): Likewise.
2476 (ffi_call): Likewise.
2477 (ffi_closure_helper_SYSV): Likewise.
2478 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
2479 Emit position independent code if PIC and remove wrong datalabel
2480 prefixes from EH data.
2481
24822005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
2483
2484 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
2485 * Makefile.in: Regenerate.
2486 * include/Makefile.in: Likewise.
2487 * testsuite/Makefile.in: Likewise.
2488 * configure.ac: Add POWERPC_FREEBSD rules.
2489 * configure: Regenerate.
2490 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
2491 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
2492 * src/powerpc/ffi.c: Add flags to handle small structure returns
2493 in ffi_call_SYSV.
2494 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
2495 Aka FFI_SYSV.
2496 (ffi_closure_helper_SYSV): Likewise.
2497 * src/powerpc/ppc_closure.S: Add return types for small structures.
2498 * src/powerpc/sysv.S: Add bits to handle small structures for
2499 final SYSV 4 ABI.
2500
25012005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
2502
2503 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
2504 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
2505 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
2506
25072005-07-05 Randolph Chung <tausq@debian.org>
2508
2509 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
2510 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
2511 structures. Kill compilation warnings.
2512 (ffi_closure_inner_LINUX): Print return values as hex in debug
2513 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
2514 Properly handle 5-7 byte structure returns.
2515 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
2516 (FFI_TYPE_SMALL_STRUCT2): Remove.
2517 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
2518 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
2519 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
2520 (checksmst1, checksmst2): Remove.
2521 (checksmst3): Optimize handling of 3-byte struct returns.
2522 (checksmst567): Properly handle 5-7 byte struct returns.
2523
25242005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2525
2526 PR libgcj/21943
2527 * src/mips/n32.S: Enforce PIC code.
2528 * src/mips/o32.S: Likewise.
2529
25302005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2531
2532 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
2533 * configure: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002534
Anthony Greenc6dddbd2009-10-04 08:11:33 -040025352005-06-01 Alan Modra <amodra@bigpond.net.au>
2536
2537 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
2538 to call ffi_closure_helper_SYSV. Append @local instead.
2539 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
2540
25412005-05-17 Kelley Cook <kcook@gcc.gnu.org>
2542
2543 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
2544 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
2545 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
2546 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
2547 include/Makefile.in, testsuite/Makefile.in: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002548
Anthony Greenc6dddbd2009-10-04 08:11:33 -040025492005-05-09 Mike Stump <mrs@apple.com>
2550
2551 * configure: Regenerate.
2552
25532005-05-08 Richard Henderson <rth@redhat.com>
2554
2555 PR libffi/21285
2556 * src/alpha/osf.S: Update unwind into to match code.
2557
25582005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
2559 Richard Henderson <rth@redhat.com>
2560
2561 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
2562 bit 11 of flags.
2563 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
2564 (ffi_prep_closure): Set carry bit if sse-used flag set.
2565 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
2566 Only load sse registers if ssecount non-zero.
2567 (ffi_closure_unix64): Only save sse registers if carry set on entry.
2568
25692005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
2570
2571 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
2572 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
2573 * configure: Regenerate.
2574
25752005-04-20 Hans-Peter Nilsson <hp@axis.com>
2576
2577 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
2578 have Tcl8.3-compatible intermediate variable.
2579
Anthony Green0cfe60e2009-12-29 10:06:04 -050025802005-04-18 Simon Posnjak <simon.posnjak@siol.net>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002581 Hans-Peter Nilsson <hp@axis.com>
2582
2583 * Makefile.am: Add CRIS support.
2584 * configure.ac: Likewise.
2585 * Makefile.in, configure, testsuite/Makefile.in,
2586 include/Makefile.in: Regenerate.
2587 * src/cris: New directory.
2588 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
2589 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
2590
2591 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
2592 \r?\n in output tests.
2593
25942005-04-12 Mike Stump <mrs@apple.com>
2595
2596 * configure: Regenerate.
2597
25982005-03-30 Hans Boehm <Hans.Boehm@hp.com>
2599
2600 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002601
Anthony Greenc6dddbd2009-10-04 08:11:33 -040026022005-03-30 Steve Ellcey <sje@cup.hp.com>
2603
2604 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
2605 (ffi_sarg) Ditto.
2606 * src/ia64/unix.S (ffi_closure_unix): Extend gp
2607 to 64 bits in ILP32 mode.
2608 Load 64 bits even for short data.
2609
26102005-03-23 Mike Stump <mrs@apple.com>
2611
2612 * src/powerpc/darwin.S: Update for -m64 multilib.
2613 * src/powerpc/darwin_closure.S: Likewise.
2614
26152005-03-21 Zack Weinberg <zack@codesourcery.com>
2616
2617 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
2618 Do not set tool_include_dir.
2619 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
2620 Regenerate.
2621 * include/Makefile.am: Set gcc_version and toollibffidir.
2622 * include/Makefile.in: Regenerate.
2623
26242005-02-22 Andrew Haley <aph@redhat.com>
2625
2626 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
2627 odd-numbered register pairs for 64-bit integer types.
2628
26292005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
2630
2631 PR libffi/20104
2632 * testsuite/libffi.call/return_ll1.c: New test case.
2633
26342005-02-11 Janis Johnson <janis187@us.ibm.com>
2635
2636 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
2637 * testsuite/libffi.call/float.c: Ditto.
2638 * testsuite/libffi.call/float2.c: Ditto.
2639 * testsuite/libffi.call/float3.c: Ditto.
2640
26412005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
2642
2643 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
2644
26452005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2646
2647 * testsuite/libffi.special/special.exp (cxx_options): Add
2648 -shared-libgcc.
2649
26502004-12-31 Richard Henderson <rth@redhat.com>
2651
2652 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
2653 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
2654 offset parameters with a type parameter; deduce size and structure
2655 alignment. Update all users.
2656
26572004-12-31 Richard Henderson <rth@redhat.com>
2658
2659 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
2660 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
2661 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
2662 into ffi_prep_closure.
2663 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
2664 from scratch.
2665
26662004-12-27 Richard Henderson <rth@redhat.com>
2667
2668 * src/x86/unix64.S: Fix typo in unwind info.
2669
26702004-12-25 Richard Henderson <rth@redhat.com>
2671
2672 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
2673 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
2674 (merge_classes): Check for it.
2675 (SSE_CLASS_P): New.
2676 (classify_argument): Pass byte_offset by value; perform all updates
2677 inside struct case.
2678 (examine_argument): Add classes argument; handle
2679 X86_64_COMPLEX_X87_CLASS.
2680 (ffi_prep_args): Merge into ...
2681 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
2682 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
2683 (ffi_fill_return_value): Remove.
2684 (ffi_prep_closure): Remove dead assert.
2685 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
2686 Rewrite to use struct register_args instead of va_list. Create
2687 flags for handling structure returns.
2688 * src/x86/unix64.S: Remove dead strings.
2689 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
2690 stack frame with ffi_call. Handle structure returns properly.
2691 (float2sse, floatfloat2sse, double2sse): Remove.
2692 (sse2float, sse2double, sse2floatfloat): Remove.
2693 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
2694 to handle structure returns properly.
2695
26962004-12-08 David Edelsohn <edelsohn@gnu.org>
2697
2698 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
2699 PICFLAG.
2700 * Makefile.in: Regenerated.
2701
27022004-12-02 Richard Sandiford <rsandifo@redhat.com>
2703
2704 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
2705 * configure, aclocal.m4, Makefile.in: Regenerate.
2706 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
2707
27082004-11-29 Kelley Cook <kcook@gcc.gnu.org>
2709
2710 * configure: Regenerate for libtool change.
2711
27122004-11-25 Kelley Cook <kcook@gcc.gnu.org>
2713
2714 * configure: Regenerate for libtool reversion.
2715
27162004-11-24 Kelley Cook <kcook@gcc.gnu.org>
2717
2718 * configure: Regenerate for libtool change.
2719
27202004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2721
2722 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
2723
27242004-11-23 Richard Sandiford <rsandifo@redhat.com>
2725
2726 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
2727 of jal. Use an absolute encoding for the frame information.
2728
27292004-11-23 Kelley Cook <kcook@gcc.gnu.org>
2730
2731 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
2732 * acinclude.m4: Delete logic for sincludes.
2733 * aclocal.m4, Makefile.in, configure: Regenerate.
2734 * include/Makefile: Likewise.
2735 * testsuite/Makefile: Likewise.
2736
27372004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
2738
2739 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
2740 on a 8-byte boundary.
2741 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
2742
27432004-10-27 Richard Earnshaw <rearnsha@arm.com>
2744
2745 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
2746 long long values. Round stack allocation to a multiple of 8 bytes
2747 for ATPCS compatibility.
2748 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
2749 names. Handle returning long long types. Add Thumb and interworking
2750 support. Improve soft-float code.
2751
27522004-10-27 Richard Earnshaw <rearnsha@arm.com>
2753
2754 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
2755 (libffi_exit): New function.
2756 (libffi_init): Build the testglue wrapper if needed.
2757
27582004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
2759
2760 PR other/18138
2761 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
2762
27632004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2764
2765 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
2766
27672004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
2768
2769 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
2770 * testsuite/libffi.call/float3.c: New test case.
2771
27722004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
2773
2774 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
2775 the function returning a structure pointed with R2.
2776 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
2777 the structure return value if T bit set. Emit position
2778 independent code and EH data if PIC.
2779
27802004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2781
2782 * Makefile.am: Add m32r support.
2783 * configure.ac: Likewise.
2784 * Makefile.in: Regenerate.
2785 * confiugre: Regenerate.
2786 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
2787 (uint64, sint64, double, longdouble)
2788 * src/m32r: New directory.
2789 * src/m32r/ffi.c: New file.
2790 * src/m32r/sysv.S: Likewise.
2791 * src/m32r/ffitarget.h: Likewise.
2792
27932004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
2794
2795 * testsuite/libffi.call/negint.c: New test case.
2796
27972004-09-14 H.J. Lu <hongjiu.lu@intel.com>
2798
2799 PR libgcj/17465
2800 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
2801 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
2802 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
2803 DYLD_LIBRARY_PATH.
2804
28052004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
2806
2807 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
2808 * testsuite/libffi.call/promotion.c: Likewise.
2809 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
2810 whitespaces.
2811 * testsuite/libffi.call/return_sc.c: Likewise.
2812 * testsuite/libffi.call/return_uc.c: Likewise.
2813
28142004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
2815
2816 * src/powerpc/darwin.S: Fix comments and identation.
2817 * src/powerpc/darwin_closure.S: Likewise.
2818
28192004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
2820
2821 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
2822 (ffi_prep_args): Handle longdouble arguments.
2823 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
2824 longdouble.
2825 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
2826 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
2827 values.
2828 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
2829 * src/types.c: Defined longdouble size and alignment for darwin.
2830
28312004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
2832
2833 * src/powerpc/aix.S: Remove whitespaces.
2834 * src/powerpc/aix_closure.S: Likewise.
2835 * src/powerpc/asm.h: Likewise.
2836 * src/powerpc/ffi.c: Likewise.
2837 * src/powerpc/ffitarget.h: Likewise.
2838 * src/powerpc/linux64.S: Likewise.
2839 * src/powerpc/linux64_closure.S: Likewise.
2840 * src/powerpc/ppc_closure.S: Likewise.
2841 * src/powerpc/sysv.S: Likewise.
2842
28432004-08-30 Anthony Green <green@redhat.com>
2844
2845 * Makefile.am: Add frv support.
2846 * Makefile.in, testsuite/Makefile.in: Rebuilt.
2847 * configure.ac: Read configure.host.
2848 * configure.in: Read configure.host.
2849 * configure.host: New file. frv-elf needs libgloss.
2850 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
2851 alignment. This is needed to frv and shouldn't harm the others.
2852 * include/ffi_common.h (ALIGN_DOWN): New macro.
2853 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
2854
28552004-08-24 David Daney <daney@avtrex.com>
2856
2857 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
2858 * testsuite/libffi.call/closure_fn1.c: Likewise.
2859 * testsuite/libffi.call/closure_fn2.c Likewise.
2860 * testsuite/libffi.call/closure_fn3.c: Likewise.
2861 * testsuite/libffi.call/closure_fn4.c: Likewise.
2862 * testsuite/libffi.call/closure_fn5.c: Likewise.
2863 * testsuite/libffi.call/cls_18byte.c: Likewise.
2864 * testsuite/libffi.call/cls_19byte.c: Likewise.
2865 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2866 * testsuite/libffi.call/cls_20byte.c: Likewise.
2867 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2868 * testsuite/libffi.call/cls_24byte.c: Likewise.
2869 * testsuite/libffi.call/cls_2byte.c: Likewise.
2870 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2871 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2872 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2873 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2874 * testsuite/libffi.call/cls_4byte.c: Likewise.
2875 * testsuite/libffi.call/cls_64byte.c: Likewise.
2876 * testsuite/libffi.call/cls_6byte.c: Likewise.
2877 * testsuite/libffi.call/cls_7byte.c: Likewise.
2878 * testsuite/libffi.call/cls_8byte.c: Likewise.
2879 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2880 * testsuite/libffi.call/cls_9byte2.c: Likewise.
2881 * testsuite/libffi.call/cls_align_double.c: Likewise.
2882 * testsuite/libffi.call/cls_align_float.c: Likewise.
2883 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
2884 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
2885 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
2886 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
2887 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
2888 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
2889 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
2890 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
2891 * testsuite/libffi.call/cls_double.c: Likewise.
2892 * testsuite/libffi.call/cls_float.c: Likewise.
2893 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
2894 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
2895 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
2896 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
2897 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
2898 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
2899 * testsuite/libffi.call/cls_schar.c: Likewise.
2900 * testsuite/libffi.call/cls_sint.c: Likewise.
2901 * testsuite/libffi.call/cls_sshort.c: Likewise.
2902 * testsuite/libffi.call/cls_uchar.c: Likewise.
2903 * testsuite/libffi.call/cls_uint.c: Likewise.
2904 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2905 * testsuite/libffi.call/cls_ushort.c: Likewise.
2906 * testsuite/libffi.call/nested_struct.c: Likewise.
2907 * testsuite/libffi.call/nested_struct1.c: Likewise.
2908 * testsuite/libffi.call/nested_struct2.c: Likewise.
2909 * testsuite/libffi.call/nested_struct3.c: Likewise.
2910 * testsuite/libffi.call/problem1.c: Likewise.
2911 * testsuite/libffi.special/unwindtest.cc: Likewise.
2912 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
2913 to zero.
2914 * testsuite/libffi.call/cls_16byte.c: Likewise.
2915 * testsuite/libffi.call/cls_5byte.c: Likewise.
2916
29172004-08-23 David Daney <daney@avtrex.com>
2918
2919 PR libgcj/13141
2920 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
2921 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
2922 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
2923 parameters and return types.
2924 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
2925 (ffi_prep_closure): Ditto.
2926 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
2927 alignment calculations.
2928 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
2929 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
2930
29312004-08-14 Casey Marshall <csm@gnu.org>
2932
2933 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
2934 contain `FFI_TYPE_UINT64' as return type for any 64-bit
2935 integer (O32 ABI only).
2936 (ffi_prep_closure): new function.
2937 (ffi_closure_mips_inner_O32): new function.
2938 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
2939 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
2940 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
2941 64 bit integers correctly.
2942 (ffi_closure_O32): new function.
2943 Added DWARF-2 unwind info for both functions.
2944
29452004-08-10 Andrew Haley <aph@redhat.com>
2946
2947 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
2948
29492004-08-01 Robert Millan <robertmh@gnu.org>
2950
2951 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
2952 * configure: Regenerate.
2953
29542004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
2955
2956 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
2957 and mmap() explicitly instead of relying on preset autoconf cache
2958 variables.
2959 * aclocal.m4: Regenerate.
2960 * configure: Regenerate.
2961
29622004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
2963
2964 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
2965 (ffi_check_float_struct): Remove unused prototype.
2966
29672004-06-30 Geoffrey Keating <geoffk@apple.com>
2968
2969 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
2970 character on Darwin, use '\n\t' instead.
2971
29722004-06-26 Matthias Klose <doko@debian.org>
2973
2974 * libtool-version: Fix typo in revision/age.
2975
29762004-06-17 Matthias Klose <doko@debian.org>
2977
2978 * libtool-version: New.
2979 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
2980 * Makefile.in: Regenerate.
2981
29822004-06-15 Paolo Bonzini <bonzini@gnu.org>
2983
2984 * Makefile.am: Remove useless multilib rules.
2985 * Makefile.in: Regenerate.
2986 * aclocal.m4: Regenerate with automake 1.8.5.
2987 * configure.ac: Remove useless multilib configury.
2988 * configure: Regenerate.
2989
29902004-06-15 Paolo Bonzini <bonzini@gnu.org>
2991
2992 * .cvsignore: New file.
2993
29942004-06-10 Jakub Jelinek <jakub@redhat.com>
2995
2996 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
2997 fp_done.
2998 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
2999 changed from 8.
3000
30012004-06-06 Sean McNeil <sean@mcneil.com>
3002
3003 * configure.ac: Add x86_64-*-freebsd* support.
3004 * configure: Regenerate.
3005
30062004-04-26 Joe Buck <jbuck@welsh-buck.org>
3007
3008 Bug 15093
3009 * configure.ac: Test for existence of mmap and sys/mman.h before
3010 checking blacklist. Fix suggested by Jim Wilson.
3011 * configure: Regenerate.
3012
30132004-04-26 Matt Austern <austern@apple.com>
3014
3015 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
3016 FDE location.
3017 * src/powerpc/darwin_closure.S: Likewise.
3018
30192004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
3020
3021 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
3022 error. Reported by Thomas Heller <theller@python.net>.
3023 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
3024 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
3025
30262004-03-20 Matthias Klose <doko@debian.org>
3027
3028 * src/pa/linux.S: Fix typo.
3029
30302004-03-19 Matthias Klose <doko@debian.org>
3031
3032 * Makefile.am: Update.
3033 * Makefile.in: Regenerate.
3034 * src/pa/ffi.h.in: Remove.
3035 * src/pa/ffitarget.h: New file.
3036
30372004-02-10 Randolph Chung <tausq@debian.org>
3038
3039 * Makefile.am: Add PA support.
3040 * Makefile.in: Regenerate.
3041 * include/Makefile.in: Regenerate.
3042 * configure.ac: Add PA target.
3043 * configure: Regenerate.
3044 * src/pa/ffi.c: New file.
3045 * src/pa/ffi.h.in: Add PA support.
3046 * src/pa/linux.S: New file.
3047 * prep_cif.c: Add PA support.
3048
30492004-03-16 Hosaka Yuji <hos@tamanegi.org>
3050
3051 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
3052 double.
3053 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
3054 with ecif->cif->flags.
3055 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
3056 with cif->flags.
3057 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
3058 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
3059 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
3060 sc_retstruct2b): Add for 1 or 2-bytes struct case.
3061
30622004-03-15 Kelley Cook <kcook@gcc.gnu.org>
3063
3064 * configure.in: Rename file to ...
3065 * configure.ac: ... this.
3066 * fficonfig.h.in: Regenerate.
3067 * Makefile.in: Regenerate.
3068 * include/Makefile.in: Regenerate.
3069 * testsuite/Makefile.in: Regenerate.
3070
30712004-03-12 Matt Austern <austern@apple.com>
3072
3073 * src/powerpc/darwin.S: Fix EH information so it corresponds to
3074 changes in EH format resulting from addition of linkonce support.
3075 * src/powerpc/darwin_closure.S: Likewise.
3076
30772004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
3078 Paolo Bonzini <bonzini@gnu.org>
3079
3080 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
3081 Remove VPATH. Remove rules for object files. Remove multilib support.
3082 (AM_CCASFLAGS): Add.
3083 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
3084 (AC_PREREQ): Bump version to 2.59.
3085 (AC_INIT): Fill with version info and bug address.
3086 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
3087 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
3088 De-precious CC so that the right flags are passed down to multilibs.
3089 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
3090 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
3091 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
3092 * configure: Rebuilt.
3093 * aclocal.m4: Likewise.
3094 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
3095 * fficonfig.h.in: Likewise.
3096
30972004-03-11 Andreas Schwab <schwab@suse.de>
3098
3099 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
3100 arguments from fp registers only for the first 8 parameter slots.
3101 Don't convert a float parameter when passed in memory.
3102
31032004-03-09 Hans-Peter Nilsson <hp@axis.com>
3104
3105 * configure: Regenerate for config/accross.m4 correction.
3106
31072004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
3108
3109 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
3110 ecif->cif->bytes to bytes.
3111 (ffi_prep_cif_machdep): Add braces around nested if statement.
3112
31132004-02-09 Alan Modra <amodra@bigpond.net.au>
3114
3115 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
3116
3117 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
3118 (ffi_closure_helper_LINUX64): Fix typo.
3119 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
3120 for powerpc64-*-*.
3121 * testsuite/libffi.call/float.c: Likewise.
3122 * testsuite/libffi.call/float2.c: Likewise.
3123
31242004-02-08 Alan Modra <amodra@bigpond.net.au>
3125
3126 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
3127 long double function return and long double arg handling.
3128 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
3129 Use "end_pfr" instead of "nf". Correct long double handling.
3130 Localise "temp".
3131 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
3132 return value.
3133 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
3134 space for long double return value. Adjust stack frame and offsets.
3135 Load f2 long double return.
3136
31372004-02-07 Alan Modra <amodra@bigpond.net.au>
3138
3139 * src/types.c: Use 16 byte long double for POWERPC64.
3140
31412004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3142
3143 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
3144 when the structure return address is passed in %o0.
3145 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
3146 (ffi_v9_layout_struct): Align the field following a nested structure
3147 on a word boundary. Use memmove instead of memcpy.
3148 (ffi_call): Update call to ffi_V9_return_struct.
3149 (ffi_prep_closure): Define 'ctx' only for V8.
3150 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
3151 and ffi_closure_sparc_inner_v9.
3152 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
3153 Always skip the structure return address. For structures and long
3154 doubles, copy the argument directly.
3155 (ffi_closure_sparc_inner_v9): Skip the structure return address only
3156 if required. Shift the maximum floating-point slot accordingly. For
3157 big structures, copy the argument directly; otherwise, left-justify the
3158 argument and call ffi_v9_layout_struct to lay out the structure on
3159 the stack.
3160 * src/sparc/v8.S: Undef STACKFRAME before defining it.
3161 (ffi_closure_v8): Pass the structure return address. Update call to
3162 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
3163 Skip the 'unimp' insn when returning long doubles and structures.
3164 * src/sparc/v9.S: Undef STACKFRAME before defining it.
3165 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
3166 FFI_TYPE_INT handling. Load structures both in integers and
3167 floating-point registers on return.
3168 * README: Update status of the SPARC port.
3169
31702004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
3171
3172 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
3173 as of type ffi_arg.
3174 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
3175
31762004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
3177
3178 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
3179 value as of type ffi_arg, not unsigned int.
3180
31812004-01-21 Michael Ritzert <ritzert@t-online.de>
3182
3183 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
3184 of the LHS.
3185
31862004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
3187
3188 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
3189 Solaris.
3190
31912004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3192
3193 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
3194 to void *.
3195
31962003-12-10 Richard Henderson <rth@redhat.com>
3197
3198 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
3199 size_t instead of int.
3200
32012003-12-04 Hosaka Yuji <hos@tamanegi.org>
3202
3203 * testsuite/libffi.call/many_win32.c: Include <float.h>.
3204 * testsuite/libffi.call/many_win32.c (main): Replace variable
3205 int i with unsigned long ul.
3206
3207 * testsuite/libffi.call/cls_align_uint64.c: New test case.
3208 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3209 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3210 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3211 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3212 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3213 * testsuite/libffi.call/cls_align_float.c: Likewise.
3214 * testsuite/libffi.call/cls_align_double.c: Likewise.
3215 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3216 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3217
32182003-12-02 Hosaka Yuji <hos@tamanegi.org>
3219
3220 PR other/13221
3221 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
3222 Align arguments to 32 bits.
3223
32242003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
3225
3226 PR other/13221
3227 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
3228 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3229 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3230 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3231 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3232 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3233
3234 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
3235
32362003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3237
3238 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
3239 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3240
32412003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
3242
3243 * Makefile.in: Rebuilt.
3244 * configure: Likewise.
3245 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
3246 the right type.
3247
32482003-11-21 Andreas Jaeger <aj@suse.de>
3249 Andreas Tobler <a.tobler@schweiz.ch>
3250
3251 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
3252 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
3253 * Makefile.in: Rebuilt.
3254 * aclocal.m4: Likewise.
3255 * configure: Likewise.
3256 * fficonfig.h.in: Likewise.
3257 * testsuite/lib/libffi-dg.exp: Add include dir.
3258 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
3259 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3260 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
3261 for ffi_closure if available.
3262 * testsuite/libffi.call/closure_fn1.c: Likewise.
3263 * testsuite/libffi.call/closure_fn2.c: Likewise.
3264 * testsuite/libffi.call/closure_fn3.c: Likewise.
3265 * testsuite/libffi.call/closure_fn4.c: Likewise.
3266 * testsuite/libffi.call/closure_fn5.c: Likewise.
3267 * testsuite/libffi.call/cls_12byte.c: Likewise.
3268 * testsuite/libffi.call/cls_16byte.c: Likewise.
3269 * testsuite/libffi.call/cls_18byte.c: Likewise.
3270 * testsuite/libffi.call/cls_19byte.c: Likewise.
3271 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3272 * testsuite/libffi.call/cls_20byte.c: Likewise.
3273 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3274 * testsuite/libffi.call/cls_24byte.c: Likewise.
3275 * testsuite/libffi.call/cls_2byte.c: Likewise.
3276 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3277 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3278 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3279 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3280 * testsuite/libffi.call/cls_4byte.c: Likewise.
3281 * testsuite/libffi.call/cls_5byte.c: Likewise.
3282 * testsuite/libffi.call/cls_64byte.c: Likewise.
3283 * testsuite/libffi.call/cls_6byte.c: Likewise.
3284 * testsuite/libffi.call/cls_7byte.c: Likewise.
3285 * testsuite/libffi.call/cls_8byte.c: Likewise.
3286 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3287 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3288 * testsuite/libffi.call/cls_double.c: Likewise.
3289 * testsuite/libffi.call/cls_float.c: Likewise.
3290 * testsuite/libffi.call/cls_schar.c: Likewise.
3291 * testsuite/libffi.call/cls_sint.c: Likewise.
3292 * testsuite/libffi.call/cls_sshort.c: Likewise.
3293 * testsuite/libffi.call/cls_uchar.c: Likewise.
3294 * testsuite/libffi.call/cls_uint.c: Likewise.
3295 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3296 * testsuite/libffi.call/cls_ushort.c: Likewise.
3297 * testsuite/libffi.call/nested_struct.c: Likewise.
3298 * testsuite/libffi.call/nested_struct1.c: Likewise.
3299 * testsuite/libffi.call/nested_struct2.c: Likewise.
3300 * testsuite/libffi.call/nested_struct3.c: Likewise.
3301 * testsuite/libffi.call/problem1.c: Likewise.
3302 * testsuite/libffi.special/unwindtest.cc: Likewise.
3303
33042003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
3305
3306 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
3307
33082003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
3309
3310 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
3311 Add -lgcc_s to additional flags.
3312
33132003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
3314
3315 * configure.in, include/Makefile.am: PR libgcj/11147, install
3316 the ffitarget.h header file in a gcc versioned and target
3317 dependent place.
3318 * configure: Regenerated.
3319 * Makefile.in, include/Makefile.in: Likewise.
3320 * testsuite/Makefile.in: Likewise.
3321
33222003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
3323
3324 * testsuite/libffi.call/closure_fn0.c: Print result and check
3325 with dg-output to make debugging easier.
3326 * testsuite/libffi.call/closure_fn1.c: Likewise.
3327 * testsuite/libffi.call/closure_fn2.c: Likewise.
3328 * testsuite/libffi.call/closure_fn3.c: Likewise.
3329 * testsuite/libffi.call/closure_fn4.c: Likewise.
3330 * testsuite/libffi.call/closure_fn5.c: Likewise.
3331 * testsuite/libffi.call/cls_12byte.c: Likewise.
3332 * testsuite/libffi.call/cls_16byte.c: Likewise.
3333 * testsuite/libffi.call/cls_18byte.c: Likewise.
3334 * testsuite/libffi.call/cls_19byte.c: Likewise.
3335 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3336 * testsuite/libffi.call/cls_20byte.c: Likewise.
3337 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3338 * testsuite/libffi.call/cls_24byte.c: Likewise.
3339 * testsuite/libffi.call/cls_2byte.c: Likewise.
3340 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3341 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3342 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3343 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3344 * testsuite/libffi.call/cls_4byte.c: Likewise.
3345 * testsuite/libffi.call/cls_5byte.c: Likewise.
3346 * testsuite/libffi.call/cls_64byte.c: Likewise.
3347 * testsuite/libffi.call/cls_6byte.c: Likewise.
3348 * testsuite/libffi.call/cls_7byte.c: Likewise.
3349 * testsuite/libffi.call/cls_8byte.c: Likewise.
3350 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3351 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3352 * testsuite/libffi.call/cls_double.c: Likewise.
3353 * testsuite/libffi.call/cls_float.c: Likewise.
3354 * testsuite/libffi.call/cls_schar.c: Likewise.
3355 * testsuite/libffi.call/cls_sint.c: Likewise.
3356 * testsuite/libffi.call/cls_sshort.c: Likewise.
3357 * testsuite/libffi.call/cls_uchar.c: Likewise.
3358 * testsuite/libffi.call/cls_uint.c: Likewise.
3359 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3360 * testsuite/libffi.call/cls_ushort.c: Likewise.
3361 * testsuite/libffi.call/problem1.c: Likewise.
3362
3363 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
3364 static.
3365
33662003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
3367
3368 * testsuite/libffi.call/cls_9byte2.c: New test case.
3369 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3370 * testsuite/libffi.call/cls_64byte.c: Likewise.
3371 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3372 * testsuite/libffi.call/cls_19byte.c: Likewise.
3373 * testsuite/libffi.call/cls_18byte.c: Likewise.
3374 * testsuite/libffi.call/closure_fn4.c: Likewise.
3375 * testsuite/libffi.call/closure_fn5.c: Likewise.
3376 * testsuite/libffi.call/cls_schar.c: Likewise.
3377 * testsuite/libffi.call/cls_sint.c: Likewise.
3378 * testsuite/libffi.call/cls_sshort.c: Likewise.
3379 * testsuite/libffi.call/nested_struct2.c: Likewise.
3380 * testsuite/libffi.call/nested_struct3.c: Likewise.
3381
33822003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
3383
3384 * testsuite/libffi.call/cls_double.c: Do a check on the result.
3385 * testsuite/libffi.call/cls_uchar.c: Likewise.
3386 * testsuite/libffi.call/cls_uint.c: Likewise.
3387 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3388 * testsuite/libffi.call/cls_ushort.c: Likewise.
3389 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
3390
33912003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
3392
3393 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
3394 the initialization.
3395
33962003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
3397
3398 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
3399 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
3400
34012003-10-22 David Daney <ddaney@avtrex.com>
3402
3403 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
3404 __attribute__((__mode__(__SI__))) and friends.
3405
34062003-10-22 Andreas Schwab <schwab@suse.de>
3407
3408 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
3409
34102003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
3411
3412 * configure.in: AC_LINK_FILES(ffitarget.h).
3413 * configure: Regenerate.
3414 * Makefile.in: Likewise.
3415 * include/Makefile.in: Likewise.
3416 * testsuite/Makefile.in: Likewise.
3417 * fficonfig.h.in: Likewise.
3418
34192003-10-21 Paolo Bonzini <bonzini@gnu.org>
3420 Richard Henderson <rth@redhat.com>
3421
3422 Avoid that ffi.h includes fficonfig.h.
3423
3424 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
3425 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
3426 (TARGET_SRC_MIPS_SGI): Removed.
3427 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
3428 (MIPS_SGI): Removed.
3429 (CLEANFILES): Removed.
3430 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
3431 targets.
3432 * acconfig.h: Removed.
3433 * configure.in: Compute sizeofs only for double and long double.
3434 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
3435 into AC_DEFINE instead of using acconfig.h. Create
3436 include/ffitarget.h instead of include/fficonfig.h. Rename
3437 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
3438 AC_DEFINE EH_FRAME_FLAGS.
3439 * include/Makefile.am (DISTCLEANFILES): New automake macro.
3440 (hack_DATA): Add ffitarget.h.
3441 * include/ffi.h.in: Remove all system specific definitions.
3442 Declare raw API even if it is not installed, why bother?
3443 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
3444 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
3445 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
3446 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
3447 * include/ffi_common.h (bool): Do not define.
3448 (ffi_assert): Accept failed assertion.
3449 (ffi_type_test): Return void and accept file/line.
3450 (FFI_ASSERT): Pass stringized failed assertion.
3451 (FFI_ASSERT_AT): New macro.
3452 (FFI_ASSERT_VALID_TYPE): New macro.
3453 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
3454 UINT64, SINT64): Define here with gcc's __attribute__ macro
3455 instead of in ffi.h
3456 (FLOAT32, ALIGN): Define here instead of in ffi.h
3457 * include/ffi-mips.h: Removed. Its content moved to
3458 src/mips/ffitarget.h after separating assembly and C sections.
3459 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
3460 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
3461 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
3462 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
3463 SIZEOF_ARG -> FFI_SIZEOF_ARG.
3464 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
3465 * src/debug.c (ffi_assert): Accept stringized failed assertion.
3466 (ffi_type_test): Rewritten.
3467 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
3468 FFI_ASSERT_VALID_TYPE.
3469 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
3470 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
3471 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
3472 src/s390/ffitarget.h, src/sh/ffitarget.h,
3473 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
3474 src/x86/ffitarget.h: New files.
3475 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
3476 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
3477 src/powerpc/aix.S, src/powerpc/darwin.S,
3478 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
3479 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
3480 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
3481 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
3482 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
3483 include fficonfig.h
3484
34852003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3486
3487 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
3488 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
3489
34902003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
3491
3492 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
3493 Used when FFI_DEBUG = 1.
3494
34952003-10-14 Alan Modra <amodra@bigpond.net.au>
3496
3497 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
3498 and align.
3499
35002003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3501
3502 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
3503 FFI_MIPS_O32 for O32 ABI.
3504
35052003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
3506
3507 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
3508 SPARC64. Cleanup whitespaces.
3509
35102003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
3511
3512 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
3513 strongarm, xscale. Cleanup whitespaces.
3514 * testsuite/libffi.call/closure_fn1.c: Likewise.
3515 * testsuite/libffi.call/closure_fn2.c: Likewise.
3516 * testsuite/libffi.call/closure_fn3.c: Likewise.
3517 * testsuite/libffi.call/cls_12byte.c: Likewise.
3518 * testsuite/libffi.call/cls_16byte.c: Likewise.
3519 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3520 * testsuite/libffi.call/cls_20byte.c: Likewise.
3521 * testsuite/libffi.call/cls_24byte.c: Likewise.
3522 * testsuite/libffi.call/cls_2byte.c: Likewise.
3523 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3524 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3525 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3526 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3527 * testsuite/libffi.call/cls_4byte.c: Likewise.
3528 * testsuite/libffi.call/cls_5byte.c: Likewise.
3529 * testsuite/libffi.call/cls_6byte.c: Likewise.
3530 * testsuite/libffi.call/cls_7byte.c: Likewise.
3531 * testsuite/libffi.call/cls_8byte.c: Likewise.
3532 * testsuite/libffi.call/cls_double.c: Likewise.
3533 * testsuite/libffi.call/cls_float.c: Likewise.
3534 * testsuite/libffi.call/cls_uchar.c: Likewise.
3535 * testsuite/libffi.call/cls_uint.c: Likewise.
3536 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3537 * testsuite/libffi.call/cls_ushort.c: Likewise.
3538 * testsuite/libffi.call/nested_struct.c: Likewise.
3539 * testsuite/libffi.call/nested_struct1.c: Likewise.
3540 * testsuite/libffi.call/problem1.c: Likewise.
3541 * testsuite/libffi.special/unwindtest.cc: Likewise.
3542 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
3543
35442003-09-18 David Edelsohn <edelsohn@gnu.org>
3545
3546 * src/powerpc/aix.S: Cleanup whitespaces.
3547 * src/powerpc/aix_closure.S: Likewise.
3548
35492003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
3550
3551 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
3552 * src/powerpc/darwin_closure.S: Likewise.
3553 * src/powerpc/ffi_darwin.c: Likewise.
3554
35552003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
3556 David Edelsohn <edelsohn@gnu.org>
3557
3558 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
3559 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
3560 parameter stack.
3561 * src/powerpc/darwin_closure.S: Likewise.
3562 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
3563 according to the Darwin/AIX ABI.
3564 (ffi_prep_cif_machdep): Likewise.
3565 (ffi_closure_helper_DARWIN): Likewise.
3566 Remove the outgoing parameter stack logic. Simplify the evaluation
3567 of the different CASE types.
3568 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
3569 statement in the trampoline code.
3570
35712003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
3572
3573 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
3574 for the register size.
3575 (ffi_closure_helper_SYSV): Handle the structure return value
3576 address correctly.
3577 (ffi_closure_helper_SYSV): Return the appropriate type when
3578 the registers are used for the structure return value.
3579 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
3580 the 64-bit return value. Update copyright years.
3581
35822003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3583
3584 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
3585 srcdir for ffi_mips.h.
3586
35872003-09-12 Alan Modra <amodra@bigpond.net.au>
3588
3589 * src/prep_cif.c (initialize_aggregate): Include tail padding in
3590 structure size.
3591 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
3592 placement of float result.
3593 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
3594 cast of "resp" for big-endian 64 bit machines.
3595
35962003-09-11 Alan Modra <amodra@bigpond.net.au>
3597
3598 * src/types.c (double, longdouble): Merge identical SH and ARM
3599 typedefs, and add POWERPC64.
3600 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
3601 struct split over gpr and rest.
3602 (ffi_prep_cif_machdep): Correct intarg_count for structures.
3603 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
3604
36052003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
3606
3607 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
3608 passing correctly.
3609
36102003-09-09 Alan Modra <amodra@bigpond.net.au>
3611
3612 * configure: Regenerate.
3613
36142003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
3615
3616 * Makefile.am: Remove build rules for ffitest.
3617 * Makefile.in: Rebuilt.
3618
36192003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
3620
3621 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
3622 about implicit declaration of abort().
3623
36242003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
3625
3626 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
3627 * Makefile.in: Rebuilt.
3628 * configure.in: Add dejagnu test framework.
3629 * configure: Rebuilt.
3630
3631 * testsuite/Makefile.am: New file.
3632 * testsuite/Makefile.in: Built
3633 * testsuite/lib/libffi-dg.exp: New file.
3634 * testsuite/config/default.exp: Likewise.
3635 * testsuite/libffi.call/call.exp: Likewise.
3636 * testsuite/libffi.call/ffitest.h: Likewise.
3637 * testsuite/libffi.call/closure_fn0.c: Likewise.
3638 * testsuite/libffi.call/closure_fn1.c: Likewise.
3639 * testsuite/libffi.call/closure_fn2.c: Likewise.
3640 * testsuite/libffi.call/closure_fn3.c: Likewise.
3641 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3642 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3643 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3644 * testsuite/libffi.call/cls_2byte.c: Likewise.
3645 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3646 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3647 * testsuite/libffi.call/cls_4byte.c: Likewise.
3648 * testsuite/libffi.call/cls_5byte.c: Likewise.
3649 * testsuite/libffi.call/cls_6byte.c: Likewise.
3650 * testsuite/libffi.call/cls_7byte.c: Likewise.
3651 * testsuite/libffi.call/cls_8byte.c: Likewise.
3652 * testsuite/libffi.call/cls_12byte.c: Likewise.
3653 * testsuite/libffi.call/cls_16byte.c: Likewise.
3654 * testsuite/libffi.call/cls_20byte.c: Likewise.
3655 * testsuite/libffi.call/cls_24byte.c: Likewise.
3656 * testsuite/libffi.call/cls_double.c: Likewise.
3657 * testsuite/libffi.call/cls_float.c: Likewise.
3658 * testsuite/libffi.call/cls_uchar.c: Likewise.
3659 * testsuite/libffi.call/cls_uint.c: Likewise.
3660 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3661 * testsuite/libffi.call/cls_ushort.c: Likewise.
3662 * testsuite/libffi.call/float.c: Likewise.
3663 * testsuite/libffi.call/float1.c: Likewise.
3664 * testsuite/libffi.call/float2.c: Likewise.
3665 * testsuite/libffi.call/many.c: Likewise.
3666 * testsuite/libffi.call/many_win32.c: Likewise.
3667 * testsuite/libffi.call/nested_struct.c: Likewise.
3668 * testsuite/libffi.call/nested_struct1.c: Likewise.
3669 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
3670 * testsuite/libffi.call/problem1.c: Likewise.
3671 * testsuite/libffi.call/promotion.c: Likewise.
3672 * testsuite/libffi.call/return_ll.c: Likewise.
3673 * testsuite/libffi.call/return_sc.c: Likewise.
3674 * testsuite/libffi.call/return_uc.c: Likewise.
3675 * testsuite/libffi.call/strlen.c: Likewise.
3676 * testsuite/libffi.call/strlen_win32.c: Likewise.
3677 * testsuite/libffi.call/struct1.c: Likewise.
3678 * testsuite/libffi.call/struct2.c: Likewise.
3679 * testsuite/libffi.call/struct3.c: Likewise.
3680 * testsuite/libffi.call/struct4.c: Likewise.
3681 * testsuite/libffi.call/struct5.c: Likewise.
3682 * testsuite/libffi.call/struct6.c: Likewise.
3683 * testsuite/libffi.call/struct7.c: Likewise.
3684 * testsuite/libffi.call/struct8.c: Likewise.
3685 * testsuite/libffi.call/struct9.c: Likewise.
3686 * testsuite/libffi.special/special.exp: New file.
3687 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3688 * testsuite/libffi.special/unwindtest.cc: Likewise.
3689
3690
36912003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
3692
3693 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
3694 copyright years.
3695
36962003-08-02 Alan Modra <amodra@bigpond.net.au>
3697
3698 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
3699 structure passing.
3700 (ffi_closure_helper_LINUX64): Likewise.
3701 * src/powerpc/linux64.S: Remove code writing to parm save area.
3702 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
3703 address in lr from ffi_closure_helper_LINUX64 call to calculate
3704 table address. Optimize function tail.
3705
37062003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
3707
3708 * src/sparc/ffi.c: Handle all floating point registers.
3709 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
3710
37112003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
3712
3713 * README: Note that libffi is not part of GCC. Update the project
3714 URL and status.
3715
37162003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3717
3718 * src/powerpc/ppc_closure.S: Include ffi.h.
3719
37202003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3721
3722 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
3723 Use C style comments.
3724
37252003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3726
3727 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
3728 * Makefile.in: Regenerate.
3729 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
3730 * configure: Regenerate.
3731 * include/ffi.h.in: Add SHmedia support.
3732 * src/sh64/ffi.c: New file.
3733 * src/sh64/sysv.S: New file.
3734
37352003-05-16 Jakub Jelinek <jakub@redhat.com>
3736
3737 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
3738 should be read-only.
3739 * configure: Rebuilt.
3740 * fficonfig.h.in: Rebuilt.
3741 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
3742 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
3743 * src/powerpc/linux64.S: Likewise.
3744 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
3745 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
3746 if -fpic/-fPIC/-mrelocatable.
3747 * src/powerpc/powerpc_closure.S: Likewise.
3748 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
3749 #write in .eh_frame flags.
3750 * src/sparc/v9.S: Likewise.
3751 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
3752 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
3753 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
3754
37552003-05-07 Jeff Sturm <jsturm@one-point.com>
3756
3757 Fixes PR bootstrap/10656
3758 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
3759 support for .register pseudo-op.
3760 * src/sparc/v8.S: Use it.
3761 * fficonfig.h.in: Rebuilt.
3762 * configure: Rebuilt.
3763
37642003-04-18 Jakub Jelinek <jakub@redhat.com>
3765
3766 * include/ffi.h.in (POWERPC64): Define if 64-bit.
3767 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
3768 Make it the default on POWERPC64.
3769 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
3770 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
3771 * configure: Rebuilt.
3772 * src/powerpc/ffi.c (hidden): Define.
3773 (ffi_prep_args_SYSV): Renamed from
3774 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
3775 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
3776 ASM_NEEDS_REGISTERS64): New.
3777 (ffi_prep_args64): New function.
3778 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
3779 (ffi_call): Likewise.
3780 (ffi_prep_closure): Likewise.
3781 (flush_icache): Surround by #ifndef POWERPC64.
3782 (ffi_dblfl): New union type.
3783 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
3784 (ffi_closure_helper_LINUX64): New function.
3785 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
3786 __powerpc64__.
3787 * src/powerpc/sysv.S: Likewise.
3788 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
3789 * src/powerpc/linux64.S: New file.
3790 * src/powerpc/linux64_closure.S: New file.
3791 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
3792 src/powerpc/linux64_closure.S.
3793 (TARGET_SRC_POWERPC): Likewise.
3794
3795 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
3796 closure_test_fn3): Fix result printing on big-endian 64-bit
3797 machines.
3798 (main): Print tst2_arg instead of uninitialized tst2_result.
3799
3800 * src/ffitest.c (main): Hide what closure pointer really points to
3801 from the compiler.
3802
38032003-04-16 Richard Earnshaw <rearnsha@arm.com>
3804
3805 * configure.in (arm-*-netbsdelf*): Add configuration.
3806 (configure): Regenerated.
3807
38082003-04-04 Loren J. Rittle <ljrittle@acm.org>
3809
3810 * include/Makefile.in: Regenerate.
3811
38122003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3813
3814 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
3815 bit mode.
3816 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
3817 Receive closure pointer through parameter, read args using
3818 __builtin_dwarf_cfa.
3819 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
3820
38212003-03-12 Andreas Schwab <schwab@suse.de>
3822
3823 * configure.in: Avoid trailing /. in toolexeclibdir.
3824 * configure: Rebuilt.
3825
38262003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
3827
3828 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
3829
38302003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
3831
3832 * libffi/src/powerpc/darwin_closure.S:
3833 Fix alignement bug, allocate 8 bytes for the result.
3834 * libffi/src/powerpc/aix_closure.S:
3835 Likewise.
3836 * libffi/src/powerpc/ffi_darwin.c:
3837 Update stackframe description for aix/darwin_closure.S.
3838
38392003-02-06 Jakub Jelinek <jakub@redhat.com>
3840
3841 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
3842 attribute.
3843
38442003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
3845 Andreas Schwab <schwab@suse.de>
3846
3847 * configure.in: Adjust command to source config-ml.in to account
3848 for changes to the libffi_basedir definition.
3849 (libffi_basedir): Remove ${srcdir} from value and include trailing
3850 slash if nonempty.
3851
3852 * configure: Regenerate.
3853
38542003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3855
3856 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
3857
38582003-01-28 Andrew Haley <aph@redhat.com>
3859
3860 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
3861 * src/x86/ffi64.c (ffi_prep_closure): New.
3862 (ffi_closure_UNIX64_inner): New.
3863 * src/x86/unix64.S (ffi_closure_UNIX64): New.
3864
38652003-01-27 Alexandre Oliva <aoliva@redhat.com>
3866
3867 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
3868 Remove USE_LIBDIR conditional.
3869 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
3870 * Makefile.in, configure: Rebuilt.
3871
38722003-01027 David Edelsohn <edelsohn@gnu.org>
3873
3874 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
3875 * Makefile.in: Regenerate.
3876
38772003-01-22 Andrew Haley <aph@redhat.com>
3878
3879 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
3880 unwind info.
3881
38822003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3883
3884 * src/powerpc/darwin.S: Add unwind info.
3885 * src/powerpc/darwin_closure.S: Likewise.
3886
38872003-01-14 Andrew Haley <aph@redhat.com>
3888
3889 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
3890 (ffi_prep_cif_machdep): Likewise.
3891 * src/x86/unix64.S: Add unwind info.
3892
38932003-01-14 Andreas Jaeger <aj@suse.de>
3894
3895 * src/ffitest.c (main): Only use ffi_closures if those are
3896 supported.
3897
38982003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
3899
3900 * libffi/src/ffitest.c
3901 add closure testcases
3902
39032003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
3904
3905 * libffi/src/powerpc/ffi.c
3906 fix alignment bug for float (4 byte aligned iso 8 byte)
3907
39082003-01-09 Geoffrey Keating <geoffk@apple.com>
3909
3910 * src/powerpc/ffi_darwin.c: Remove RCS version string.
3911 * src/powerpc/darwin.S: Remove RCS version string.
3912
39132003-01-03 Jeff Sturm <jsturm@one-point.com>
3914
3915 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
3916 * src/ffitest.c (main): Use static storage for closure.
3917 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
3918 * src/sparc/v8.S (ffi_closure_v8): New.
3919 * src/sparc/v9.S (ffi_closure_v9): New.
3920
39212002-11-10 Ranjit Mathew <rmathew@hotmail.com>
3922
3923 * include/ffi.h.in: Added FFI_STDCALL ffi_type
3924 enumeration for X86_WIN32.
3925 * src/x86/win32.S: Added ffi_call_STDCALL function
3926 definition.
3927 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
3928 switch cases for recognising FFI_STDCALL and
3929 calling ffi_call_STDCALL if target is X86_WIN32.
3930 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
3931 stdcall versions of the "my_strlen" and "many"
3932 test functions (for X86_WIN32).
3933 Added test cases to test stdcall invocation using
3934 these functions.
3935
39362002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
3937
3938 * src/sh/sysv.S: Add DWARF2 unwind info.
3939
39402002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
3941
3942 * src/s390/sysv.S (.eh_frame section): Make section read-only.
3943
39442002-11-26 Jim Wilson <wilson@redhat.com>
3945
3946 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
3947
39482002-11-23 H.J. Lu <hjl@gnu.org>
3949
3950 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
3951 Include ../config/accross.m4.
3952 * aclocal.m4; Rebuild.
3953 * configure: Likewise.
3954
39552002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
3956
3957 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
3958
39592002-11-11 DJ Delorie <dj@redhat.com>
3960
3961 * configure.in: Look for common files in the right place.
3962
39632002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
3964
3965 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
3966 raw data as _Jv_word values, not ffi_raw.
3967 (ffi_java_ptrarray_to_raw): Likewise.
3968 (ffi_java_rvalue_to_raw): New function.
3969 (ffi_java_raw_call): Call it.
3970 (ffi_java_raw_to_rvalue): New function.
3971 (ffi_java_translate_args): Call it.
3972 * src/ffitest.c (closure_test_fn): Interpret return value
3973 as ffi_arg, not int.
3974 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
3975 FFI_TYPE_POINTER case.
3976 (ffi_closure_helper_SYSV): Likewise. Also, assume return
3977 values extended to word size.
3978
39792002-10-02 Andreas Jaeger <aj@suse.de>
3980
3981 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
3982
39832002-10-01 Bo Thorsen <bo@smetana.suse.de>
3984
3985 * include/ffi.h.in: Fix i386 win32 compilation.
3986
39872002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
3988
3989 * configure.in: Add s390x-*-linux-* target.
3990 * configure: Regenerate.
3991 * include/ffi.h.in: Define S390X for s390x targets.
3992 (FFI_CLOSURES): Define for s390/s390x.
3993 (FFI_TRAMPOLINE_SIZE): Likewise.
3994 (FFI_NATIVE_RAW_API): Likewise.
3995 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
3996 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
3997 * src/s390/ffi.c: Major rework of existing code. Add support for
3998 s390x targets. Add closure support.
3999 * src/s390/sysv.S: Likewise.
4000
40012002-09-29 Richard Earnshaw <rearnsha@arm.com>
4002
4003 * src/arm/sysv.S: Fix typo.
4004
40052002-09-28 Richard Earnshaw <rearnsha@arm.com>
4006
4007 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
4008 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
4009 (ffi_call_SYSV): Handle soft-float.
4010
40112002-09-27 Bo Thorsen <bo@suse.de>
4012
4013 * include/ffi.h.in: Fix multilib x86-64 support.
4014
40152002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4016
4017 * Makefile.am (all-multi): Fix multilib parallel build.
4018
40192002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
4020
4021 * configure.in (sh[34]*-*-linux*): Add brackets.
4022 * configure: Regenerate.
4023
40242002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
4025
4026 * Makefile.am: Add SH support.
4027 * Makefile.in: Regenerate.
4028 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
4029 * configure: Regenerate.
4030 * include/ffi.h.in: Add SH support.
4031 * src/sh/ffi.c: New file.
4032 * src/sh/sysv.S: New file.
4033 * src/types.c: Add SH support.
4034
40352002-07-16 Bo Thorsen <bo@suse.de>
4036
4037 * src/x86/ffi64.c: New file that adds x86-64 support.
4038 * src/x86/unix64.S: New file that handles argument setup for
4039 x86-64.
4040 * src/x86/sysv.S: Don't use this on x86-64.
4041 * src/x86/ffi.c: Don't use this on x86-64.
4042 Remove unused vars.
4043 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
4044 for x86-64.
4045 * src/ffitest.c (struct6): New test that tests a special case in
4046 the x86-64 ABI.
4047 (struct7): Likewise.
4048 (struct8): Likewise.
4049 (struct9): Likewise.
4050 (closure_test_fn): Silence warning about this when it's not used.
4051 (main): Add the new tests.
4052 (main): Fix a couple of wrong casts and silence some compiler warnings.
4053 * include/ffi.h.in: Add x86-64 ABI definition.
4054 * fficonfig.h.in: Regenerate.
4055 * Makefile.am: Add x86-64 support.
4056 * configure.in: Likewise.
4057 * Makefile.in: Regenerate.
4058 * configure: Likewise.
4059
40602002-06-24 Bo Thorsen <bo@suse.de>
4061
4062 * src/types.c: Merge settings for similar architectures.
4063 Add x86-64 sizes and alignments.
4064
40652002-06-23 Bo Thorsen <bo@suse.de>
4066
4067 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
4068 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
4069 * src/mips/ffi.c (ffi_prep_args): Likewise.
4070 * src/m68k/ffi.c (ffi_prep_args): Likewise.
4071
40722002-07-18 H.J. Lu (hjl@gnu.org)
4073
4074 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
4075 (libffi_la_SOURCES): Support MIPS_LINUX.
4076 (libffi_convenience_la_SOURCES): Likewise.
4077 * Makefile.in: Regenerated.
4078
4079 * configure.in (mips64*-*): Skip.
4080 (mips*-*-linux*): New.
4081 * configure: Regenerated.
4082
4083 * src/mips/ffi.c: Include <sgidefs.h>.
4084
40852002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
4086
4087 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
4088
40892002-05-27 Roger Sayle <roger@eyesopen.com>
4090
4091 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
4092
40932002-05-27 Bo Thorsen <bo@suse.de>
4094
4095 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
4096 fix formatting.
4097
40982002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
4099
4100 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
4101 beginning of function (for older apple cc).
4102
41032002-05-08 Alexandre Oliva <aoliva@redhat.com>
4104
4105 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
4106 script entry, and set LD to it when configuring multilibs.
4107 * configure: Rebuilt.
4108
41092002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
4110
4111 * configure.in (sparc64-*-netbsd*): Add target.
4112 (sparc-*-netbsdelf*): Likewise.
4113 * configure: Regenerate.
4114
41152002-04-28 David S. Miller <davem@redhat.com>
4116
4117 * configure.in, configure: Fix SPARC test in previous change.
4118
41192002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
4120
4121 * Makefile.am: Add Linux for S/390 support.
4122 * Makefile.in: Regenerate.
4123 * configure.in: Add Linux for S/390 support.
4124 * configure: Regenerate.
4125 * include/ffi.h.in: Add Linux for S/390 support.
4126 * src/s390/ffi.c: New file from libffi CVS tree.
4127 * src/s390/sysv.S: New file from libffi CVS tree.
4128
41292002-04-28 Jakub Jelinek <jakub@redhat.com>
4130
4131 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
4132 %r_disp32().
4133 * src/sparc/v8.S: Use it.
4134 * src/sparc/v9.S: Likewise.
4135 * fficonfig.h.in: Rebuilt.
4136 * configure: Rebuilt.
4137
41382002-04-08 Hans Boehm <Hans_Boehm@hp.com>
4139
4140 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
4141 correctly.
4142 * src/ia64/unix.S: Add unwind information. Fix comments.
4143 Save sp in a way that's compatible with unwind info.
4144 (ffi_call_unix): Correctly restore sp in all cases.
4145 * src/ia64/ffi.c: Add, fix comments.
4146
41472002-04-08 Jakub Jelinek <jakub@redhat.com>
4148
4149 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
4150
41512002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
4152
4153 * configure.in (alpha*-*-netbsd*): Add target.
4154 * configure: Regenerate.
4155
41562002-04-04 Jeff Sturm <jsturm@one-point.com>
4157
4158 * src/sparc/v8.S: Add unwind info.
4159 * src/sparc/v9.S: Likewise.
4160
41612002-03-30 Krister Walfridsson <cato@df.lth.se>
4162
4163 * configure.in: Enable i*86-*-netbsdelf*.
4164 * configure: Rebuilt.
4165
41662002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
4167
4168 PR other/2620
4169 * src/mips/n32.s: Delete
4170 * src/mips/o32.s: Delete
4171
41722002-03-21 Loren J. Rittle <ljrittle@acm.org>
4173
4174 * configure.in: Enable alpha*-*-freebsd*.
4175 * configure: Rebuilt.
4176
41772002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4178
4179 * Makefile.am: libfficonvenience -> libffi_convenience.
4180 * Makefile.in: Rebuilt.
4181
4182 * Makefile.am: Define ffitest_OBJECTS.
4183 * Makefile.in: Rebuilt.
4184
41852002-03-07 Andreas Tobler <toa@pop.agri.ch>
4186 David Edelsohn <edelsohn@gnu.org>
4187
4188 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
4189 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
4190 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
4191 * Makefile.in: Regenerate.
4192 * include/ffi.h.in: Add AIX and Darwin closure definitions.
4193 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
4194 (flush_icache, flush_range): New functions.
4195 (ffi_closure_helper_DARWIN): New function.
4196 * src/powerpc/aix_closure.S: New file.
4197 * src/powerpc/darwin_closure.S: New file.
4198
41992002-02-24 Jeff Sturm <jsturm@one-point.com>
4200
4201 * include/ffi.h.in: Add typedef for ffi_arg.
4202 * src/ffitest.c (main): Declare rint with ffi_arg.
4203
42042002-02-21 Andreas Tobler <toa@pop.agri.ch>
4205
4206 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
4207 number of GPRs for floating-point arguments.
4208
42092002-01-31 Anthony Green <green@redhat.com>
4210
4211 * configure: Rebuilt.
4212 * configure.in: Replace CHECK_SIZEOF and endian tests with
4213 cross-compiler friendly macros.
4214 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
4215 macros.
4216
42172002-01-18 David Edelsohn <edelsohn@gnu.org>
4218
4219 * src/powerpc/darwin.S (_ffi_call_AIX): New.
4220 * src/powerpc/aix.S (ffi_call_DARWIN): New.
4221
42222002-01-17 David Edelsohn <edelsohn@gnu.org>
4223
4224 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
4225 (TARGET_SRC_POWERPC_AIX): New.
4226 (POWERPC_AIX): New stanza.
4227 * Makefile.in: Regenerate.
4228 * configure.in: Add AIX case.
4229 * configure: Regenerate.
4230 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
4231 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
4232 size. Fix "long double" support.
4233 (ffi_call): Add FFI_AIX case.
4234 * src/powerpc/aix.S: New.
4235
42362001-10-09 John Hornkvist <john@toastedmarshmallow.com>
4237
4238 Implement Darwin PowerPC ABI.
4239 * configure.in: Handle powerpc-*-darwin*.
4240 * Makefile.am: Set source files for POWERPC_DARWIN.
4241 * configure: Rebuilt.
4242 * Makefile.in: Rebuilt.
4243 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
4244 POWERPC_DARWIN.
4245 * src/powerpc/darwin.S: New file.
4246 * src/powerpc/ffi_darwin.c: New file.
4247
42482001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
4249
4250 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
4251
42522001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4253
4254 * src/x86/sysv.S: Avoid gas-only .balign directive.
4255 Use C style comments.
4256
42572001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4258
4259 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
4260 Fixes PR bootstrap/3563.
4261
42622001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4263
4264 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
4265
42662001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4267
4268 * configure.in: Recognize sparc*-sun-* host.
4269 * configure: Regenerate.
4270
42712001-06-06 Andrew Haley <aph@redhat.com>
4272
4273 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
4274
42752001-06-03 Andrew Haley <aph@redhat.com>
4276
4277 * src/alpha/osf.S: Add unwind info.
4278 * src/powerpc/sysv.S: Add unwind info.
4279 * src/powerpc/ppc_closure.S: Likewise.
4280
42812000-05-31 Jeff Sturm <jsturm@one-point.com>
4282
4283 * configure.in: Fix AC_ARG_ENABLE usage.
4284 * configure: Rebuilt.
4285
42862001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4287
4288 * configure.in: Remove warning about beta code.
4289 * configure: Rebuilt.
4290
42912001-04-25 Hans Boehm <Hans_Boehm@hp.com>
4292
4293 * src/ia64/unix.S: Restore stack pointer when returning from
4294 ffi_closure_UNIX.
4295 * src/ia64/ffi.c: Fix typo in comment.
4296
42972001-04-18 Jim Wilson <wilson@redhat.com>
4298
4299 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
4300 to eliminate RAW DV.
4301
43022001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
4303
4304 * Makefile.am: Make a libtool convenience library.
4305 * Makefile.in: Rebuilt.
4306
43072001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
4308
4309 * configure.in: Use different syntax for subdirectory creation.
4310 * configure: Rebuilt.
4311
43122001-03-27 Jon Beniston <jon@beniston.com>
4313
4314 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
4315 * configure: Rebuilt.
4316 * Makefile.am: Added X86_WIN32 target support.
4317 * Makefile.in: Rebuilt.
4318
4319 * include/ffi.h.in: Added X86_WIN32 target support.
4320
4321 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
4322 * src/types.c: Added X86_WIN32 target support.
4323
4324 * src/x86/win32.S: New file. Based on sysv.S, but with EH
4325 stuff removed and made to work with CygWin's gas.
4326
43272001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
4328
4329 * configure.in: Make target subdirectory in build dir.
4330 * Makefile.am: Override suffix based rules to specify correct output
4331 subdirectory.
4332 * Makefile.in: Rebuilt.
4333 * configure: Rebuilt.
4334
43352001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
4336
4337 * src/powerpc/ppc_closure.S: New file.
4338 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
4339 involving long long and register pairs.
4340 (ffi_prep_closure): New function.
4341 (flush_icache): Likewise.
4342 (ffi_closure_helper_SYSV): Likewise.
4343 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
4344 (FFI_TRAMPOLINE_SIZE): Likewise.
4345 (FFI_NATIVE_RAW_API): Likewise.
4346 * Makefile.in: Rebuilt.
4347 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
4348 (TARGET_SRC_POWERPC): Likewise.
4349
43502001-03-19 Tom Tromey <tromey@redhat.com>
4351
4352 * Makefile.in: Rebuilt.
4353 * Makefile.am (ffitest_LDFLAGS): New macro.
4354
43552001-03-02 Nick Clifton <nickc@redhat.com>
4356
4357 * include/ffi.h.in: Remove RCS ident string.
4358 * include/ffi_mips.h: Remove RCS ident string.
4359 * src/debug.c: Remove RCS ident string.
4360 * src/ffitest.c: Remove RCS ident string.
4361 * src/prep_cif.c: Remove RCS ident string.
4362 * src/types.c: Remove RCS ident string.
4363 * src/alpha/ffi.c: Remove RCS ident string.
4364 * src/alpha/osf.S: Remove RCS ident string.
4365 * src/arm/ffi.c: Remove RCS ident string.
4366 * src/arm/sysv.S: Remove RCS ident string.
4367 * src/mips/ffi.c: Remove RCS ident string.
4368 * src/mips/n32.S: Remove RCS ident string.
4369 * src/mips/o32.S: Remove RCS ident string.
4370 * src/sparc/ffi.c: Remove RCS ident string.
4371 * src/sparc/v8.S: Remove RCS ident string.
4372 * src/sparc/v9.S: Remove RCS ident string.
4373 * src/x86/ffi.c: Remove RCS ident string.
4374 * src/x86/sysv.S: Remove RCS ident string.
4375
43762001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
4377
4378 * include/ffi.h.in: Change sourceware.cygnus.com references to
4379 gcc.gnu.org.
4380
43812000-12-09 Richard Henderson <rth@redhat.com>
4382
4383 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
4384 (ffi_closure_osf_inner): Index rather than increment avalue
4385 and arg_types. Give ffi_closure_osf the raw return value type.
4386 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
4387 promotion.
4388
43892000-12-07 Richard Henderson <rth@redhat.com>
4390
4391 * src/raw_api.c (ffi_translate_args): Fix typo.
4392 (ffi_prep_closure): Likewise.
4393
4394 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
4395 FFI_TRAMPOLINE_SIZE.
4396 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
4397 cif->bytes for new ffi_call_osf implementation.
4398 (ffi_prep_args): Absorb into ...
4399 (ffi_call): ... here. Do all stack allocation here and
4400 avoid a callback function.
4401 (ffi_prep_closure, ffi_closure_osf_inner): New.
4402 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
4403 (ffi_closure_osf): New.
4404
44052000-09-10 Alexandre Oliva <aoliva@redhat.com>
4406
4407 * config.guess, config.sub, install-sh: Removed.
4408 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
4409 * Makefile.in: Rebuilt.
4410
4411 * acinclude.m4: Include libtool macros from the top level.
4412 * aclocal.m4, configure: Rebuilt.
4413
44142000-08-22 Alexandre Oliva <aoliva@redhat.com>
4415
4416 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
4417 * configure: Rebuilt.
4418
44192000-05-11 Scott Bambrough <scottb@netwinder.org>
4420
4421 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
4422 memory correctly. Use conditional instructions, not branches where
4423 possible.
4424
44252000-05-04 Tom Tromey <tromey@cygnus.com>
4426
4427 * configure: Rebuilt.
4428 * configure.in: Match `arm*-*-linux-*'.
4429 From Chris Dornan <cdornan@arm.com>.
4430
44312000-04-28 Jakub Jelinek <jakub@redhat.com>
4432
4433 * Makefile.am (SUBDIRS): Define.
4434 (AM_MAKEFLAGS): Likewise.
4435 (Multilib support.): Add section.
4436 * Makefile.in: Rebuilt.
4437 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
4438 New variables. Set for gcc using -print-multi-lib. Export them
4439 to libtool.
4440 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
4441 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
4442 for -shared links.
4443 (extra_compiler_flags_value, extra_compiler_flags): Check these
4444 for extra compiler options which need to be passed down in
4445 compiler_flags.
4446
44472000-04-16 Anthony Green <green@redhat.com>
4448
4449 * configure: Rebuilt.
4450 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
4451
44522000-04-14 Jakub Jelinek <jakub@redhat.com>
4453
4454 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
4455 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
4456 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
4457 Replace all void * sizeofs with sizeof(int).
4458 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
4459 different than DOUBLE.
4460 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
4461 (ffi_prep_args_v9): New function.
4462 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
4463 (ffi_V9_return_struct): New function.
4464 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
4465 32bit code (not yet cross-arch calls).
4466 * src/sparc/v8.S: Add struct return delay nop.
4467 Handle long long.
4468 * src/sparc/v9.S: New file.
4469 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
4470 is used on sparc64 only for structures larger than 32 bytes.
4471 Pass by reference for structures is done for structure arguments
4472 larger than 16 bytes.
4473 * src/ffitest.c (main): Use 64bit rint on sparc64.
4474 Run long long tests on sparc.
4475 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
4476 sparc64.
4477 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
4478 on sparc64.
4479 * configure.in (sparc-*-linux*): New supported target.
4480 (sparc64-*-linux*): Likewise.
4481 * configure: Rebuilt.
4482 * Makefile.am: Add v9.S to SPARC files.
4483 * Makefile.in: Likewise.
4484 (LINK): Surround $(CCLD) into double quotes, so that multilib
4485 compiles work correctly.
4486
44872000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
4488
4489 * configure: Rebuilt.
4490 * configure.in: (i*86-*-solaris*): New libffi target. Patch
4491 proposed by Bryce McKinlay.
4492
44932000-03-20 Tom Tromey <tromey@cygnus.com>
4494
4495 * Makefile.in: Hand edit for java_raw_api.lo.
4496
44972000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
4498
4499 * config.guess, config.sub: Update from the gcc tree.
4500 Fix for PR libgcj/168.
4501
45022000-03-03 Tom Tromey <tromey@cygnus.com>
4503
4504 * Makefile.in: Fixed ia64 by hand.
4505
4506 * configure: Rebuilt.
4507 * configure.in (--enable-multilib): New option.
4508 (libffi_basedir): New subst.
4509 (AC_OUTPUT): Added multilib code.
4510
45112000-03-02 Tom Tromey <tromey@cygnus.com>
4512
4513 * Makefile.in: Rebuilt.
4514 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
4515 directory name.
4516
45172000-02-25 Hans Boehm <boehm@acm.org>
4518
4519 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
4520 files.
4521 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
4522 list.
4523 (ffi_prep_raw_closure): Use ffi_translate_args, not
4524 ffi_closure_translate.
4525 * src/java_raw_api.c: New file.
4526 * src/ffitest.c (closure_test_fn): New function.
4527 (main): Define `rint' as long long on IA64. Added new test when
4528 FFI_CLOSURES is defined.
4529 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
4530 (ffi_abi): Recognize IA64.
4531 (ffi_raw): Added `flt' field.
4532 Added "Java raw API" code.
4533 * configure.in: Recognize ia64.
4534 * Makefile.am (TARGET_SRC_IA64): New macro.
4535 (libffi_la_common_SOURCES): Added java_raw_api.c.
4536 (libffi_la_SOURCES): Define in IA64 case.
4537
45382000-01-04 Tom Tromey <tromey@cygnus.com>
4539
4540 * Makefile.in: Rebuilt with newer automake.
4541
45421999-12-31 Tom Tromey <tromey@cygnus.com>
4543
4544 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
4545
45461999-09-01 Tom Tromey <tromey@cygnus.com>
4547
4548 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
4549 undefs.
4550 * fficonfig.h.in: Rebuilt.
4551 * configure: Rebuilt.
4552 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
4553 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
4554 * acconfig.h: Don't #undef PACKAGE or VERSION.
4555
45561999-08-09 Anthony Green <green@cygnus.com>
4557
4558 * include/ffi.h.in: Try to work around messy header problem
4559 with PACKAGE and VERSION.
4560
4561 * configure: Rebuilt.
4562 * configure.in: Change version to 2.00-beta.
4563
4564 * fficonfig.h.in: Rebuilt.
4565 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
4566
4567 * src/x86/ffi.c (ffi_raw_call): Rename.
4568
45691999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
4570
4571 * src/x86/ffi.c (ffi_closure_SYSV): New function.
4572 (ffi_prep_incoming_args_SYSV): Ditto.
4573 (ffi_prep_closure): Ditto.
4574 (ffi_closure_raw_SYSV): Ditto.
4575 (ffi_prep_raw_closure): More ditto.
4576 (ffi_call_raw): Final ditto.
4577
4578 * include/ffi.h.in: Add definitions for closure and raw API.
4579
4580 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
4581 FFI_TYPE_UINT64.
4582
4583 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
4584
4585 * src/raw_api.c: New file.
4586
4587 * include/ffi.h.in (ffi_raw): New type.
4588 (UINT_ARG, SINT_ARG): New defines.
4589 (ffi_closure, ffi_raw_closure): New types.
4590 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
4591
4592 * configure.in: Add check for endianness and sizeof void*.
4593
4594 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
4595 instead of directly.
4596
4597 * configure: Rebuilt.
4598
4599Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
4600
4601 * configure.in: Add x86 and powerpc BeOS configurations.
4602 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
4603
46041999-05-09 Anthony Green <green@cygnus.com>
4605
4606 * configure.in: Add warning about this being beta code.
4607 Remove src/Makefile.am from the picture.
4608 * configure: Rebuilt.
4609
4610 * Makefile.am: Move logic from src/Makefile.am. Add changes
4611 to support libffi as a target library.
4612 * Makefile.in: Rebuilt.
4613
4614 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
4615 Upgraded to new autoconf, automake, libtool.
4616
4617 * README: Tweaks.
4618
4619 * LICENSE: Update copyright date.
4620
4621 * src/Makefile.am, src/Makefile.in: Removed.
4622
46231998-11-29 Anthony Green <green@cygnus.com>
4624
4625 * include/ChangeLog: Removed.
4626 * src/ChangeLog: Removed.
4627 * src/mips/ChangeLog: Removed.
4628 * src/sparc/ChangeLog: Remboved.
4629 * src/x86/ChangeLog: Removed.
4630
4631 * ChangeLog.v1: Created.