blob: 18a968612ac8663e0100bb1e238d3e91b361e49e [file] [log] [blame]
Anthony Green25416792011-02-25 15:09:13 -050012011-02-25 Anthony Green <green@moxielogic.com>
2
Anthony Green74ee6ea2011-02-25 15:52:14 -05003 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more
4 32-bit ABIs.
Anthony Green25416792011-02-25 15:09:13 -05005
Anthony Green8cf88782011-02-15 15:19:49 -050062011-02-15 Anthony Green <green@moxielogic.com>
7
8 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math.
9 * configure: Rebuilt.
10
Anthony Green1fbf9dc2011-02-13 08:06:39 -0500112011-02-13 Anthony Green <green@moxielogic.com>
12
13 * include/ffi_common.h (UNLIKELY, LIKELY): Define.
14 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition.
15 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition.
16
17 * src/prep_cif.c (initialize_aggregate): Convert assertion into
18 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0.
19
20 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
21 just return FFI_BAD_ABI when things are wrong.
22 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto.
23 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto.
24 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto.
25 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto.
26 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto.
27
Anthony Green1833aa02011-02-11 07:11:04 -0500282011-02-11 Anthony Green <green@moxielogic.com>
29
Anthony Green1fbf9dc2011-02-13 08:06:39 -050030 * libtool-version: Update.
Anthony Green17d9e9e2011-02-11 12:23:20 -050031 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if
32 FFI_DEBUG.
33 (libffi_la_SOURCES): Remove src/debug.c
34 (EXTRA_DIST): Add src/debug.c
35 * Makefile.in: Rebuilt.
36
372011-02-11 Anthony Green <green@moxielogic.com>
38
Anthony Green1833aa02011-02-11 07:11:04 -050039 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test,
40 just return FFI_BAD_ABI when things are wrong.
41
Anthony Green42695e72011-02-09 15:12:35 -0500422011-02-09 Stuart Shelton <srcshelton@gmail.com>
43
44 http://bugs.gentoo.org/show_bug.cgi?id=286911
45 * src/mips/ffitarget.h: Clean up error messages.
46 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to
47 ffi_raw*.
48 * include/ffi.h.in: Add pragma for SGI compiler.
49
Anthony Greena6e56b92011-02-09 15:00:42 -0500502011-02-09 Anthony Green <green@moxielogic.com>
51
52 * configure.ac: Add powerpc64-*-darwin* support.
53
Anthony Green0cad4382011-02-09 06:11:46 -0500542011-02-09 Anthony Green <green@moxielogic.com>
Anthony Green11062292011-02-08 19:20:09 -050055
Anthony Green747d6c32011-02-09 14:56:23 -050056 * README: Mention Interix.
57
582011-02-09 Jonathan Callen <abcd@gentoo.org>
59
60 * configure.ac: Add Interix to win32/cygwin/mingw case.
61 * configure: Ditto.
62 * src/closures.c: Treat Interix like Cygwin, instead of as a
63 generic win32.
64
652011-02-09 Anthony Green <green@moxielogic.com>
66
Anthony Green69dbe842011-02-09 07:38:43 -050067 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
68 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
69 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
70 (ffi_prep_closure_loc): Check for bad ABI.
71 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
72 (initialize_aggregate): Check for bad types.
Anthony Green0cad4382011-02-09 06:11:46 -050073
Anthony Green90af15e2011-02-12 12:29:36 -0500742011-02-09 Landon Fuller <landonf@plausible.coop>
Anthony Green0cad4382011-02-09 06:11:46 -050075
76 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
77 src/arm/trampoline.S.
78 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
79 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
80 * src/arm/ffi.c (ffi_trampoline_table)
81 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
82 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
83 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
84 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
85 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
86 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
87 separately.
88 * src/arm/sysv.S: Handle Apple iOS host.
89 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
Anthony Greenf4983182011-02-09 06:26:46 -050090 * build-ios.sh: New file.
Anthony Green0cad4382011-02-09 06:11:46 -050091 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
Anthony Green69dbe842011-02-09 07:38:43 -050092 * README: Mention ARM iOS.
Anthony Green11062292011-02-08 19:20:09 -050093
Anthony Greendc411e82011-02-08 10:49:29 -0500942011-02-08 Oren Held <orenhe@il.ibm.com>
95
96 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
97 redefinition of mallinfo on HP-UX.
98
Anthony Green404585d2011-02-08 10:44:36 -0500992011-02-08 Ginn Chen <ginn.chen@oracle.com>
100
101 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
102 aggregate return ABI.
103
Anthony Green19ce7132011-02-08 10:34:23 -05001042011-02-08 Ed <ed@kdtc.net>
105
106 * src/powerpc/asm.h: Fix grammar nit in comment.
107
Anthony Green6972a4f2011-02-11 07:32:51 -05001082011-02-11 Anthony Green <green@moxielogic.com>
109
110 From Tom Honermann <tom.honermann@oracle.com>:
111 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on
112 AIX. Declare .ffi_prep_args. Insert nops after branch
113 instructions so that the AIX linker can insert TOC reload
114 instructions.
115 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN.
116
Anthony Green89284fe2011-02-08 10:19:19 -05001172011-02-08 Uli Link <ul.mcamafia@linkitup.de>
118
119 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
120
Anthony Greened2c5182011-02-08 10:10:07 -05001212011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
122
123 * configure.ac: Fix x86 test for pc related relocs.
124 * confifure: Rebuilt.
125
Anthony Green3b836242011-02-08 14:28:59 -05001262011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
127
128 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
129 Handle case when CPU variant does not have long double support.
130 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
131 and cores with soft floating point.
132
1332011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
134
135 * configure.ac: Add mips*-*-rtems* support.
136 * configure: Regenerate.
137 * src/mips/ffitarget.h: Ensure needed constants are available
138 for targets which do not have sgidefs.h.
139
Anthony Green0e584392011-02-08 07:52:40 -05001402011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
141
142 PR target/40125
143 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
144 * configure: Regenerate.
145
1462010-12-18 Iain Sandoe <iains@gcc.gnu.org>
147
148 PR libffi/29152
149 PR libffi/42378
150 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
151 update comments.
152 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
153 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
154 * src/powerpc/darwin.S: Provide Darwin64 implementation,
155 update comments.
156 * src/powerpc/ffi_darwin.c: Likewise.
157
1582010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
159
160 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
161 backslashes.
162 (libffi_cv_as_string_pseudo_op): Likewise.
163 * configure: Regenerate.
164
1652010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
166
167 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
168 (ffi_closure_VFP): Same.
169 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
170 directive.
171
1722010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
173
174 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
175 (PRIuPTR): Define.
176
1772010-11-29 Richard Henderson <rth@redhat.com>
178 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
179
180 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
181 (.eh_frame): Use FDE_ENCODING.
182 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
183
Anthony Green5b9cd522010-11-22 15:19:57 -05001842010-11-22 Jacek Caban <jacek@codeweavers.com>
185
186 * configure.ac: Check for symbol underscores on mingw-w64.
187 * configure: Rebuilt.
188 * src/x86/win64.S: Correctly access extern symbols in respect to
189 underscores.
190
Anthony Green2db72612010-11-21 10:50:56 -05001912010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
192
193 * testsuite/lib/libffi-dg.exp: Rename ...
194 * testsuite/lib/libffi.exp: ... to this.
195 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
196 * libffi/testsuite/libffi.special/special.exp: Likewise.
197
1982010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
199
200 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
201 code, new parameter, and return value. Update comments.
202 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
203 call to layout_vfp_args().
204 (ffi_call_SYSV): Update declaration.
205 (ffi_call_VFP): New declaration.
206 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
207 when ABI is FFI_VFP.
208 (ffi_closure_VFP): New declaration.
209 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
210 ffi_prep_incoming_args_SYSV().
211 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
212 case handling.
213 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
214 construction under VFP hard-float.
215 (rec_vfp_type_p): New function.
216 (vfp_type_p): Same.
217 (place_vfp_arg): Same.
218 (layout_vfp_args): Same.
219 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
220 based on __ARM_PCS_VFP.
221 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
222 fields.
223 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
224 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
225 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
226 direct call. Move function pointer load upwards.
227 (ffi_call_VFP): New function.
228 (ffi_closure_VFP): Same.
229
230 * testsuite/lib/libffi-dg.exp (check-flags): New function.
231 (dg-skip-if): New function.
232 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
233 and compiler options include -mfloat-abi=hard.
234 * testsuite/libffi.call/cls_longdouble_va.c: Same.
235
2362010-10-01 Jakub Jelinek <jakub@redhat.com>
237
238 PR libffi/45677
239 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
240 a multiple of 8.
241 * testsuite/libffi.call/many2.c: New test.
242
2432010-08-20 Mark Wielaard <mjw@redhat.com>
244
245 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
246 returns NULL.
247
2482010-08-09 Andreas Tobler <andreast@fgznet.ch>
249
250 * configure.ac: Add target powerpc64-*-freebsd*.
251 * configure: Regenerate.
252 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
253 -mlong-double-128 only to linux targets.
254 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
255 * testsuite/libffi.call/cls_longdouble.c: Likewise.
256 * testsuite/libffi.call/huge_struct.c: Likewise.
257
Anthony Green00d0b592010-08-05 14:56:53 -04002582010-08-05 Dan Witte <dwitte@mozilla.com>
259
260 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
261 debug CRT when --enable-debug is given.
262 * configure.ac: Define it.
263 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
264
Anthony Greenc1d28ba2010-08-05 08:48:16 -04002652010-08-04 Dan Witte <dwitte@mozilla.com>
266
267 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
268 platforms.
269 * src/x86/ffi.c: Remove redundant ifdef checks.
270 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
271 for X86_ANY so return value space doesn't get added twice.
272
Anthony Greenbda487e2010-08-05 09:02:41 -04002732010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
274
275 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
276
Anthony Greend14178b2010-07-23 09:14:00 -04002772010-07-22 Dan Witte <dwitte@mozilla.com>
278
279 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
280 * src/prep_cif.c: Fix ABI assertion.
281 * src/cris/ffi.c: Ditto.
282
Anthony Greeneaf444e2010-07-10 08:59:09 -04002832010-07-10 Evan Phoenix <evan@fallingsnow.net>
284
285 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
286
Anthony Green5feacad2010-08-05 08:30:04 -04002872010-07-07 Dan Horák <dan@danny.cz>
288
289 * include/ffi.h.in: Protect #define with #ifndef.
290 * src/powerpc/ffitarget.h: Ditto.
291 * src/s390/ffitarget.h: Ditto.
292 * src/sparc/ffitarget.h: Ditto.
293
Anthony Green2db72612010-11-21 10:50:56 -05002942010-07-07 Neil Roberts <neil@linux.intel.com>
295
296 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
297 16-bytes.
298
2992010-07-02 Jakub Jelinek <jakub@redhat.com>
300
301 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
302 * Makefile.in: Regenerated.
303
3042010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
305
306 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
307 output, too.
308 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
309 (libffi_cv_as_string_pseudo_op): Check for .string.
310 * configure: Regenerate.
311 * fficonfig.h.in: Regenerate.
312 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
313
Anthony Green10ea8482010-08-05 08:24:27 -04003142010-05-11 Dan Witte <dwitte@mozilla.com>
315
316 * doc/libffi.tex: Document previous change.
317
3182010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
319
320 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
321
Anthony Green63097412010-05-05 20:14:56 -04003222010-05-05 Michael Kohler <michaelkohler@live.com>
323
324 * src/dlmalloc.c (dlfree): Fix spelling.
325 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
326 * configure.ac: Ditto.
327 * configure: Rebuilt.
328
Anthony Greenf2c2a4f2010-04-13 10:19:28 -04003292010-04-13 Dan Witte <dwitte@mozilla.com>
330
331 * msvcc.sh: Build with -W3 instead of -Wall.
332 * src/powerpc/ffi_darwin.c: Remove build warnings.
333 * src/x86/ffi.c: Ditto.
334 * src/x86/ffitarget.h: Ditto.
335
Anthony Green2db72612010-11-21 10:50:56 -05003362010-04-12 Dan Witte <dwitte@mozilla.com>
337 Walter Meinl <wuno@lsvw.de>
Anthony Greenc0b69e52010-03-30 08:30:22 -0400338
Anthony Green2db72612010-11-21 10:50:56 -0500339 * configure.ac: Add OS/2 support.
340 * configure: Rebuilt.
341 * src/closures.c: Ditto.
342 * src/dlmalloc.c: Ditto.
343 * src/x86/win32.S: Ditto.
Anthony Green3f5b1372010-07-12 14:39:18 -0400344
3452010-04-07 Jakub Jelinek <jakub@redhat.com>
346
Anthony Green2db72612010-11-21 10:50:56 -0500347 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
Anthony Green3f5b1372010-07-12 14:39:18 -0400348
3492010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
350
351 * Makefile.in: Regenerate.
352 * aclocal.m4: Regenerate.
353 * include/Makefile.in: Regenerate.
354 * man/Makefile.in: Regenerate.
355 * testsuite/Makefile.in: Regenerate.
356
Anthony Green2db72612010-11-21 10:50:56 -05003572010-03-30 Dan Witte <dwitte@mozilla.com>
358
359 * msvcc.sh: Disable build warnings.
360 * README (tested): Clarify windows build procedure.
361
Anthony Green3f5b1372010-07-12 14:39:18 -04003622010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
363
364 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
365 * configure: Regenerate.
366 * fficonfig.h.in: Regenerate.
367 * libffi/src/x86/unix64.S (.eh_frame)
368 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
369
Anthony Green2db72612010-11-21 10:50:56 -05003702010-03-14 Matthias Klose <doko@ubuntu.com>
371
372 * src/x86/ffi64.c: Fix typo in comment.
373 * src/x86/ffi.c: Use /* ... */ comment style.
374
Anthony Green9dc9a292010-04-13 10:33:52 -04003752010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
376
377 * doc/libffi.texi (The Closure API): Fix typo.
378 * doc/libffi.info: Remove.
379
3802010-02-15 Matthias Klose <doko@ubuntu.com>
381
382 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
383 __ARM_ARCH_7EM__.
384
Anthony Green2db72612010-11-21 10:50:56 -05003852010-01-15 Anthony Green <green@redhat.com>
386
387 * README: Add notes on building with Microsoft Visual C++.
388
3892010-01-15 Daniel Witte <dwitte@mozilla.com>
390
391 * msvcc.sh: New file.
392
393 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
394 * src/x86/ffi.c: Tweak function declaration and remove excess
395 parens.
396 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
397 ffi_closure.
398
399 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
400 function ffi_call_win32 on X86_WIN32.
401 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
402 (ffi_call_STDCALL): Remove.
403
404 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
405 to ffi_prep_cif_machdep for x86.
406 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
407
4082010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
409
410 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
Anthony Green0e584392011-02-08 07:52:40 -0500411 Sun Studio compiler compatibility.
Anthony Green2db72612010-11-21 10:50:56 -0500412
4132010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
414
415 * doc/libffi.texi: Add closure example.
416
Anthony Green7b7a42f2010-01-12 09:14:14 -05004172010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
418
419 PR libffi/40701
420 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
421 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
422 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
423 alpha*-dec-osf*.
424 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
425 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
426 * testsuite/libffi.call/return_ll1.c: Likewise.
427 * testsuite/libffi.call/stret_medium2.c: Likewise.
428 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
429 MAP_FAILED to char *.
430
4312010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
432
433 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
434
Anthony Greenc3042af2010-01-01 08:08:02 -05004352009-12-31 Anthony Green <green@redhat.com>
436
437 * README: Update for libffi 3.0.9.
438
4392009-12-27 Matthias Klose <doko@ubuntu.com>
440
441 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
442 appropriate.
443 * configure: Rebuilt.
444
4452009-12-26 Anthony Green <green@redhat.com>
446
447 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
448 avr32*-*-*.
449 * testsuite/libffi.call/cls_double_va.c: Ditto.
450
4512009-12-26 Andreas Tobler <a.tobler@schweiz.org>
452
453 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
454 and inttypes.h.
455 * testsuite/libffi.special/unwindtest.cc: Ditto.
456
4572009-12-26 Andreas Tobler <a.tobler@schweiz.org>
458
459 * configure.ac: Add amd64-*-openbsd*.
460 * configure: Rebuilt.
461 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
462 openbsd programs with -lpthread.
463
4642009-12-26 Anthony Green <green@redhat.com>
465
466 * testsuite/libffi.call/cls_double_va.c,
467 testsuite/libffi.call/cls_longdouble.c,
468 testsuite/libffi.call/cls_longdouble_va.c,
469 testsuite/libffi.call/cls_pointer.c,
470 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
471 mips*-*-* and arm*-*-*.
472 * testsuite/libffi.call/cls_align_longdouble_split.c,
473 testsuite/libffi.call/cls_align_longdouble_split2.c,
474 testsuite/libffi.call/stret_medium2.c,
475 testsuite/libffi.call/stret_medium.c,
476 testsuite/libffi.call/stret_large.c,
477 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
478
4792009-12-31 Kay Tietz <ktietz70@googlemail.com>
480
481 * testsuite/libffi.call/ffitest.h,
482 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
483 definitions.
484
4852009-12-31 Carlo Bramini <carlo.bramix@libero.it>
486
487 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
488 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
489 * configure: Rebuilt.
490 * Makefile.in: Rebuilt.
491
4922009-12-31 Anthony Green <green@redhat.com>
493 Blake Chaffin.
494
495 * testsuite/libffi.call/huge_struct.c: New test case from Blake
496 Chaffin @ Apple.
497
Anthony Green0cfe60e2009-12-29 10:06:04 -05004982009-12-28 David Edelsohn <edelsohn@gnu.org>
499
500 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
501 local variables.
502 (aix_adjust_aggregate_sizes): New function.
503 (ffi_prep_cif_machdep): Call it.
504
5052009-12-26 Andreas Tobler <a.tobler@schweiz.org>
506
507 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
508 * configure: Regenerate.
509 * fficonfig.h.in: Likewise.
510 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
511 Solaris/x86.
512
5132009-12-26 Andreas Schwab <schwab@linux-m68k.org>
514
515 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
516 when a float arguments is passed in memory.
517 (ffi_closure_helper_SYSV): Mark general registers as used up when
518 a 64bit or soft-float long double argument is passed in memory.
519
Anthony Green9458d882009-12-26 07:02:27 -05005202009-12-25 Matthias Klose <doko@ubuntu.com>
521
522 * man/ffi_call.3: Fix #include in examples.
523 * doc/libffi.texi: Add dircategory.
524
5252009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
526
527 * include/ffi.h.in: Placed '__GNUC__' ifdef around
528 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
529 IRIX MIPSPro c99.
530 * include/ffi_common.h: Added '__sgi' define to non
531 '__attribute__((__mode__()))' integer typedefs.
Anthony Green0cfe60e2009-12-29 10:06:04 -0500532 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
Anthony Green9458d882009-12-26 07:02:27 -0500533 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
534 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
535 FFI_LONGDOUBLE support and alignment(N32 only).
536 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
537 fixed non '__attribute__((__mode__()))' integer typedefs.
538 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
539 since they are Linux/GNU Assembler specific.
540
5412009-12-25 Bradley Smith <brad@brad-smith.co.uk>
542
543 * configure.ac, Makefile.am, src/avr32/ffi.c,
544 src/avr32/ffitarget.h,
545 src/avr32/sysv.S: Add AVR32 port.
546 * configure, Makefile.in: Rebuilt.
547
Anthony Green115ab362009-12-24 00:22:00 -05005482009-12-21 Andreas Tobler <a.tobler@schweiz.org>
549
550 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
551 * configure: Regenerate.
552
5532009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
554
555 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
556
5572009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
558
559 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
560 type on HP-UX.
561
5622009-12-11 Eric Botcazou <ebotcazou@adacore.com>
563
564 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
565 double' arguments.
566
5672009-12-11 Eric Botcazou <ebotcazou@adacore.com>
568
569 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
570
5712009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
572
573 PR libffi/40700
574 * src/closures.c [X86_64 && __sun__ && __svr4__]
575 (FFI_MMAP_EXEC_WRIT): Define.
576
5772009-12-08 David Daney <ddaney@caviumnetworks.com>
578
579 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
580 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
581 * testsuite/libffi.call/stret_large.c: Same.
582 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
583 * testsuite/libffi.call/stret_large2.c: Same.
584 * testsuite/libffi.call/stret_medium2.c: Same.
585
5862009-12-07 David Edelsohn <edelsohn@gnu.org>
587
588 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
589 typo.
590
5912009-12-05 David Edelsohn <edelsohn@gnu.org>
592
593 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
594 code.
595 * src/powerpc/aix_closure.S: Same.
596
5972009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
598
599 * Makefile.in: Regenerate.
600 * configure: Regenerate.
601 * include/Makefile.in: Regenerate.
602 * man/Makefile.in: Regenerate.
603 * testsuite/Makefile.in: Regenerate.
604
6052009-12-04 David Edelsohn <edelsohn@gnu.org>
606
607 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
Anthony Green0cfe60e2009-12-29 10:06:04 -0500608 linux64_closure.S.
Anthony Green115ab362009-12-24 00:22:00 -0500609
6102009-12-04 Uros Bizjak <ubizjak@gmail.com>
611
612 PR libffi/41908
613 * src/x86/ffi64.c (classify_argument): Update from
614 gcc/config/i386/i386.c.
615 (ffi_closure_unix64_inner): Do not use the address of two consecutive
616 SSE registers directly.
617 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
618 for x86_64 linux targets.
619
6202009-12-04 David Edelsohn <edelsohn@gnu.org>
621
622 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
623 pfr for long double split between fpr13 and stack.
624
6252009-12-03 David Edelsohn <edelsohn@gnu.org>
626
627 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
628 fparg_count twice for long double.
629
6302009-12-03 David Edelsohn <edelsohn@gnu.org>
631
632 PR libffi/42243
633 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
634
6352009-12-03 Uros Bizjak <ubizjak@gmail.com>
636
637 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
638 Remove xfails for x86 linux targets.
639
6402009-12-02 David Edelsohn <edelsohn@gnu.org>
641
642 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
643 case.
644
6452009-12-01 David Edelsohn <edelsohn@gnu.org>
646
647 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
648 register usage. Call ffi_prep_args directly. Add long double
649 return value support.
650 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
651 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
652 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
653 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
654 mode.
655 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
656 into case.
657 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
658 Allocate result area between params and FPRs.
659
6602009-11-30 David Edelsohn <edelsohn@gnu.org>
661
662 PR target/35484
663 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
664 AIX64.
665 * src/powerpc/aix.S: Implement AIX64 version.
666 * src/powerpc/aix_closure.S: Implement AIX64 version.
667 (ffi_closure_ASM): Use extsb, lha and displament addresses.
668 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
669 support.
670 (ffi_prep_cif_machdep): Same.
671 (ffi_call): Same.
672 (ffi_closure_helper_DARWIN): Same.
673
6742009-11-02 Andreas Tobler <a.tobler@schweiz.org>
675
676 PR libffi/41908
677 * testsuite/libffi.call/testclosure.c: New test.
678
Anthony Greenc6dddbd2009-10-04 08:11:33 -04006792009-09-28 Kai Tietz <kai.tietz@onevision.com>
680
681 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
682 assembly version use of ___chkstk.
683
6842009-09-23 Matthias Klose <doko@ubuntu.com>
685
686 PR libffi/40242, PR libffi/41443
687 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
688 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
689 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
690 Change the conditionals to __SOFTFP__ || __ARM_EABI__
691 for -mfloat-abi=softfp to work.
692
6932009-09-17 Loren J. Rittle <ljrittle@acm.org>
694
695 PR testsuite/32843 (strikes again)
696 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
697 enable proper extension on char and short.
698
6992009-09-15 David Daney <ddaney@caviumnetworks.com>
700
701 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
702 handling for FFI_TYPE_POINTER.
703 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
704 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
705 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
706 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
707 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
708 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
709 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
710 structure and pointer returns.
711 (ffi_closure_N32): Add handling for pointer returns.
712 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
713 calc_n32_return_struct_flags): Handle soft-float.
714 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
715 (ffi_call_N32): Declare proper argument types.
716 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
717 soft-float.
718
7192009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
720
721 * configure.ac (AC_PREREQ): Bump to 2.64.
722
7232009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
724
725 * Makefile.am (install-html, install-pdf): Remove.
726 * Makefile.in: Regenerate.
727
728 * Makefile.in: Regenerate.
729 * aclocal.m4: Regenerate.
730 * configure: Regenerate.
731 * fficonfig.h.in: Regenerate.
732 * include/Makefile.in: Regenerate.
733 * man/Makefile.in: Regenerate.
734 * testsuite/Makefile.in: Regenerate.
735
7362009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
737
738 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
739
7402009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
741
742 PR libffi/40807
743 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
744 return types for X86_WIN32.
745 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
746 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
747 _ffi_closure_STDCALL): Likewise.
748
749 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
750 (dlmmap, dlmunmap): Also use these functions on Cygwin.
751
7522009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
753
754 PR testsuite/40699
755 PR testsuite/40707
756 PR testsuite/40709
757 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
758 2009-06-30 commits.
759
7602009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
761
762 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
763 to "" before adding paths. (This reinstates an assignment that
764 was removed by my 2009-06-30 commit, but changes the initial
765 value from "." to "".)
766
7672009-07-01 H.J. Lu <hongjiu.lu@intel.com>
768
769 PR testsuite/40601
770 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
771 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
772 empty.
773
7742009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
775
776 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
777 to ld_library_path. Use add_path. Add just find_libgcc_s
778 to ld_library_path, not every libgcc multilib directory.
779
7802009-06-16 Wim Lewis <wiml@hhhh.org>
781
782 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
783 supposed to be callee-saved.
784 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
785 return buffer for odd-size structs.
786
7872009-06-16 Andreas Tobler <a.tobler@schweiz.org>
788
789 PR libffi/40444
790 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
791 allow_stack_execute for Darwin.
792
7932009-06-16 Andrew Haley <aph@redhat.com>
794
795 * configure.ac (TARGETDIR): Add missing blank lines.
796 * configure: Regenerate.
797
7982009-06-16 Andrew Haley <aph@redhat.com>
799
800 * testsuite/libffi.call/cls_align_sint64.c,
801 testsuite/libffi.call/cls_align_uint64.c,
802 testsuite/libffi.call/cls_longdouble_va.c,
803 testsuite/libffi.call/cls_ulonglong.c,
804 testsuite/libffi.call/return_ll1.c,
805 testsuite/libffi.call/stret_medium2.c: Fix printf format
806 specifiers.
807 * testsuite/libffi.call/ffitest.h,
808 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
809
8102009-06-15 Andrew Haley <aph@redhat.com>
811
812 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
813 * testsuite/libffi.call/err_bad_abi.c: Likewise.
Anthony Green0cfe60e2009-12-29 10:06:04 -0500814
Anthony Greenc6dddbd2009-10-04 08:11:33 -04008152009-06-12 Andrew Haley <aph@redhat.com>
816
817 * Makefile.am: Remove info_TEXINFOS.
818
8192009-06-12 Andrew Haley <aph@redhat.com>
820
821 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
822 testsuite/libffi.call/cls_align_uint64.c,
823 testsuite/libffi.call/cls_ulonglong.c,
824 testsuite/libffi.call/return_ll1.c,
825 testsuite/libffi.call/stret_medium2.c: Fix printf format
826 specifiers.
827 testsuite/libffi.special/unwindtest.cc: include stdint.h.
828
8292009-06-11 Timothy Wall <twall@users.sf.net>
830
831 * Makefile.am,
Anthony Green0cfe60e2009-12-29 10:06:04 -0500832 configure.ac,
833 include/ffi.h.in,
834 include/ffi_common.h,
835 src/closures.c,
836 src/dlmalloc.c,
837 src/x86/ffi.c,
838 src/x86/ffitarget.h,
839 src/x86/win64.S (new),
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400840 README: Added win64 support (mingw or MSVC)
Anthony Green0cfe60e2009-12-29 10:06:04 -0500841 * Makefile.in,
842 include/Makefile.in,
843 man/Makefile.in,
844 testsuite/Makefile.in,
845 configure,
846 aclocal.m4: Regenerated
847 * ltcf-c.sh: properly escape cygwin/w32 path
848 * man/ffi_call.3: Clarify size requirements for return value.
849 * src/x86/ffi64.c: Fix filename in comment.
850 * src/x86/win32.S: Remove unused extern.
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400851
Anthony Green0cfe60e2009-12-29 10:06:04 -0500852 * testsuite/libffi.call/closure_fn0.c,
853 testsuite/libffi.call/closure_fn1.c,
854 testsuite/libffi.call/closure_fn2.c,
855 testsuite/libffi.call/closure_fn3.c,
856 testsuite/libffi.call/closure_fn4.c,
857 testsuite/libffi.call/closure_fn5.c,
858 testsuite/libffi.call/closure_fn6.c,
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400859 testsuite/libffi.call/closure_stdcall.c,
860 testsuite/libffi.call/cls_12byte.c,
861 testsuite/libffi.call/cls_16byte.c,
862 testsuite/libffi.call/cls_18byte.c,
863 testsuite/libffi.call/cls_19byte.c,
864 testsuite/libffi.call/cls_1_1byte.c,
865 testsuite/libffi.call/cls_20byte.c,
866 testsuite/libffi.call/cls_20byte1.c,
867 testsuite/libffi.call/cls_24byte.c,
868 testsuite/libffi.call/cls_2byte.c,
869 testsuite/libffi.call/cls_3_1byte.c,
870 testsuite/libffi.call/cls_3byte1.c,
871 testsuite/libffi.call/cls_3byte2.c,
872 testsuite/libffi.call/cls_4_1byte.c,
873 testsuite/libffi.call/cls_4byte.c,
874 testsuite/libffi.call/cls_5_1_byte.c,
875 testsuite/libffi.call/cls_5byte.c,
876 testsuite/libffi.call/cls_64byte.c,
877 testsuite/libffi.call/cls_6_1_byte.c,
878 testsuite/libffi.call/cls_6byte.c,
879 testsuite/libffi.call/cls_7_1_byte.c,
880 testsuite/libffi.call/cls_7byte.c,
881 testsuite/libffi.call/cls_8byte.c,
882 testsuite/libffi.call/cls_9byte1.c,
883 testsuite/libffi.call/cls_9byte2.c,
884 testsuite/libffi.call/cls_align_double.c,
885 testsuite/libffi.call/cls_align_float.c,
886 testsuite/libffi.call/cls_align_longdouble.c,
887 testsuite/libffi.call/cls_align_longdouble_split.c,
888 testsuite/libffi.call/cls_align_longdouble_split2.c,
889 testsuite/libffi.call/cls_align_pointer.c,
890 testsuite/libffi.call/cls_align_sint16.c,
891 testsuite/libffi.call/cls_align_sint32.c,
892 testsuite/libffi.call/cls_align_sint64.c,
893 testsuite/libffi.call/cls_align_uint16.c,
894 testsuite/libffi.call/cls_align_uint32.c,
895 testsuite/libffi.call/cls_align_uint64.c,
896 testsuite/libffi.call/cls_dbls_struct.c,
897 testsuite/libffi.call/cls_double.c,
898 testsuite/libffi.call/cls_double_va.c,
899 testsuite/libffi.call/cls_float.c,
900 testsuite/libffi.call/cls_longdouble.c,
901 testsuite/libffi.call/cls_longdouble_va.c,
902 testsuite/libffi.call/cls_multi_schar.c,
903 testsuite/libffi.call/cls_multi_sshort.c,
904 testsuite/libffi.call/cls_multi_sshortchar.c,
905 testsuite/libffi.call/cls_multi_uchar.c,
906 testsuite/libffi.call/cls_multi_ushort.c,
907 testsuite/libffi.call/cls_multi_ushortchar.c,
908 testsuite/libffi.call/cls_pointer.c,
909 testsuite/libffi.call/cls_pointer_stack.c,
910 testsuite/libffi.call/cls_schar.c,
911 testsuite/libffi.call/cls_sint.c,
912 testsuite/libffi.call/cls_sshort.c,
913 testsuite/libffi.call/cls_uchar.c,
914 testsuite/libffi.call/cls_uint.c,
915 testsuite/libffi.call/cls_ulonglong.c,
916 testsuite/libffi.call/cls_ushort.c,
917 testsuite/libffi.call/err_bad_abi.c,
918 testsuite/libffi.call/err_bad_typedef.c,
919 testsuite/libffi.call/float2.c,
920 testsuite/libffi.call/huge_struct.c,
921 testsuite/libffi.call/nested_struct.c,
922 testsuite/libffi.call/nested_struct1.c,
923 testsuite/libffi.call/nested_struct10.c,
924 testsuite/libffi.call/nested_struct2.c,
925 testsuite/libffi.call/nested_struct3.c,
926 testsuite/libffi.call/nested_struct4.c,
927 testsuite/libffi.call/nested_struct5.c,
928 testsuite/libffi.call/nested_struct6.c,
929 testsuite/libffi.call/nested_struct7.c,
930 testsuite/libffi.call/nested_struct8.c,
931 testsuite/libffi.call/nested_struct9.c,
932 testsuite/libffi.call/problem1.c,
933 testsuite/libffi.call/return_ldl.c,
934 testsuite/libffi.call/return_ll1.c,
935 testsuite/libffi.call/stret_large.c,
936 testsuite/libffi.call/stret_large2.c,
937 testsuite/libffi.call/stret_medium.c,
938 testsuite/libffi.call/stret_medium2.c,
Anthony Green0cfe60e2009-12-29 10:06:04 -0500939 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
940 of checking for MMAP. Use intptr_t instead of long casts.
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400941
9422009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
943
944 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
945 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
946 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
947
9482009-06-09 Andrew Haley <aph@redhat.com>
949
950 * src/x86/freebsd.S: Add missing file.
951
9522009-06-08 Andrew Haley <aph@redhat.com>
953
954 Import from libffi 3.0.8:
955
956 * doc/libffi.texi: New file.
957 * doc/libffi.info: Likewise.
958 * doc/stamp-vti: Likewise.
959 * man/Makefile.am: New file.
960 * man/ffi_call.3: New file.
961
962 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
963 src/dlmalloc.c.
964 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
965
966 * configure.ac: Bump version to 3.0.8.
967 parisc*-*-linux*: Add.
968 i386-*-freebsd* | i386-*-openbsd*: Add.
969 powerpc-*-beos*: Add.
970 AM_CONDITIONAL X86_FREEBSD: Add.
971 AC_CONFIG_FILES: Add man/Makefile.
972
973 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
974
9752009-06-08 Andrew Haley <aph@redhat.com>
976
977 * README: Import from libffi 3.0.8.
978
9792009-06-08 Andrew Haley <aph@redhat.com>
980
981 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
982 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
983 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
984 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
985
986 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
987 * testsuite/libffi.call/stret_medium.c: Likewise.
988 * testsuite/libffi.call/stret_large2.c: Likewise.
989 * testsuite/libffi.call/stret_large.c: Likewise.
990
9912008-12-26 Timothy Wall <twall@users.sf.net>
992
Anthony Green0cfe60e2009-12-29 10:06:04 -0500993 * testsuite/libffi.call/cls_longdouble.c,
994 testsuite/libffi.call/cls_longdouble_va.c,
995 testsuite/libffi.call/cls_align_longdouble.c,
996 testsuite/libffi.call/cls_align_longdouble_split.c,
997 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
998 failures on x86_64 cygwin/mingw.
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400999
10002008-12-22 Timothy Wall <twall@users.sf.net>
1001
Anthony Green0cfe60e2009-12-29 10:06:04 -05001002 * testsuite/libffi.call/closure_fn0.c,
1003 testsuite/libffi.call/closure_fn1.c,
1004 testsuite/libffi.call/closure_fn2.c,
1005 testsuite/libffi.call/closure_fn3.c,
1006 testsuite/libffi.call/closure_fn4.c,
1007 testsuite/libffi.call/closure_fn5.c,
1008 testsuite/libffi.call/closure_fn6.c,
1009 testsuite/libffi.call/closure_loc_fn0.c,
1010 testsuite/libffi.call/closure_stdcall.c,
1011 testsuite/libffi.call/cls_align_pointer.c,
1012 testsuite/libffi.call/cls_pointer.c,
1013 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
1014 pointer to integer (intptr_t).
1015 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001016
10172008-07-24 Anthony Green <green@redhat.com>
1018
Anthony Green0cfe60e2009-12-29 10:06:04 -05001019 * testsuite/libffi.call/cls_dbls_struct.c,
1020 testsuite/libffi.call/cls_double_va.c,
1021 testsuite/libffi.call/cls_longdouble.c,
1022 testsuite/libffi.call/cls_longdouble_va.c,
1023 testsuite/libffi.call/cls_pointer.c,
1024 testsuite/libffi.call/cls_pointer_stack.c,
1025 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
1026 compiler warnings.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001027
10282008-03-04 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001029 Blake Chaffin
1030 hos@tamanegi.org
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001031
Anthony Green0cfe60e2009-12-29 10:06:04 -05001032 * testsuite/libffi.call/cls_align_longdouble_split2.c
1033 testsuite/libffi.call/cls_align_longdouble_split.c
1034 testsuite/libffi.call/cls_dbls_struct.c
1035 testsuite/libffi.call/cls_double_va.c
1036 testsuite/libffi.call/cls_longdouble.c
1037 testsuite/libffi.call/cls_longdouble_va.c
1038 testsuite/libffi.call/cls_pointer.c
1039 testsuite/libffi.call/cls_pointer_stack.c
1040 testsuite/libffi.call/err_bad_abi.c
1041 testsuite/libffi.call/err_bad_typedef.c
1042 testsuite/libffi.call/stret_large2.c
1043 testsuite/libffi.call/stret_large.c
1044 testsuite/libffi.call/stret_medium2.c
1045 testsuite/libffi.call/stret_medium.c: New tests from Apple.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001046
10472009-06-05 Andrew Haley <aph@redhat.com>
1048
1049 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
1050 libffi.
1051
10522009-06-04 Andrew Haley <aph@redhat.com>
1053
1054 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
1055 stdcall changes.
1056
10572008-02-26 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001058 Thomas Heller <theller@ctypes.org>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001059
Anthony Green0cfe60e2009-12-29 10:06:04 -05001060 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
1061 comment.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001062
10632008-02-03 Timothy Wall <twall@users.sf.net>
1064
Anthony Green0cfe60e2009-12-29 10:06:04 -05001065 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
1066 offset based on code pointer, not data pointer.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001067
10682008-01-31 Timothy Wall <twall@users.sf.net>
1069
Anthony Green0cfe60e2009-12-29 10:06:04 -05001070 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
1071 closures.
1072 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
1073 closures.
1074 * src/x86/win32.S: Add assembly for stdcall closure.
1075 * src/x86/ffi.c: Initialize stdcall closure trampoline.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001076
10772009-06-04 Andrew Haley <aph@redhat.com>
1078
1079 * include/ffi.h.in: Change void (*)() to void (*)(void).
1080 * src/x86/ffi.c: Likewise.
1081
10822009-06-04 Andrew Haley <aph@redhat.com>
1083
1084 * src/powerpc/ppc_closure.S: Insert licence header.
1085 * src/powerpc/linux64_closure.S: Likewise.
1086 * src/m68k/sysv.S: Likewise.
1087
1088 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
1089 * src/powerpc/ffi.c: Likewise.
1090 * src/powerpc/ffi_darwin.c: Likewise.
1091 * src/m32r/ffi.c: Likewise.
1092 * src/sh64/ffi.c: Likewise.
1093 * src/x86/ffi64.c: Likewise.
1094 * src/alpha/ffi.c: Likewise.
1095 * src/alpha/osf.S: Likewise.
1096 * src/frv/ffi.c: Likewise.
1097 * src/s390/ffi.c: Likewise.
1098 * src/pa/ffi.c: Likewise.
1099 * src/pa/hpux32.S: Likewise.
1100 * src/ia64/unix.S: Likewise.
1101 * src/ia64/ffi.c: Likewise.
1102 * src/sparc/ffi.c: Likewise.
1103 * src/mips/ffi.c: Likewise.
1104 * src/sh/ffi.c: Likewise.
1105
11062008-02-15 David Daney <ddaney@avtrex.com>
1107
Anthony Green0cfe60e2009-12-29 10:06:04 -05001108 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
1109 Define (conditionally), and use it to include cachectl.h.
1110 (ffi_prep_closure_loc): Fix cache flushing.
1111 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001112
11132009-06-04 Andrew Haley <aph@redhat.com>
1114
1115 include/ffi.h.in,
1116 src/arm/ffitarget.h,
1117 src/arm/ffi.c,
1118 src/arm/sysv.S,
1119 src/powerpc/ffitarget.h,
1120 src/closures.c,
1121 src/sh64/ffitarget.h,
1122 src/sh64/ffi.c,
1123 src/sh64/sysv.S,
1124 src/types.c,
1125 src/x86/ffi64.c,
1126 src/x86/ffitarget.h,
1127 src/x86/win32.S,
1128 src/x86/darwin.S,
1129 src/x86/ffi.c,
1130 src/x86/sysv.S,
1131 src/x86/unix64.S,
1132 src/alpha/ffitarget.h,
1133 src/alpha/ffi.c,
1134 src/alpha/osf.S,
1135 src/m68k/ffitarget.h,
1136 src/frv/ffitarget.h,
1137 src/frv/ffi.c,
1138 src/s390/ffitarget.h,
1139 src/s390/sysv.S,
1140 src/cris/ffitarget.h,
1141 src/pa/linux.S,
1142 src/pa/ffitarget.h,
1143 src/pa/ffi.c,
1144 src/raw_api.c,
1145 src/ia64/ffitarget.h,
1146 src/ia64/unix.S,
1147 src/ia64/ffi.c,
1148 src/ia64/ia64_flags.h,
1149 src/java_raw_api.c,
1150 src/debug.c,
1151 src/sparc/v9.S,
1152 src/sparc/ffitarget.h,
1153 src/sparc/ffi.c,
1154 src/sparc/v8.S,
1155 src/mips/ffitarget.h,
1156 src/mips/n32.S,
1157 src/mips/o32.S,
1158 src/mips/ffi.c,
1159 src/prep_cif.c,
1160 src/sh/ffitarget.h,
1161 src/sh/ffi.c,
1162 src/sh/sysv.S: Update license text.
1163
11642009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
1165
1166 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
1167 (.eh_frame): Add FDE for it.
1168
11692009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
1170
1171 * configure.ac: Also check if assembler supports pc-relative
1172 relocs on X86_WIN32 targets.
1173 * configure: Regenerate.
1174 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
1175 (_ffi_call_SYSV): Add missing function type symbol .def and
1176 add EH markup labels.
1177 (_ffi_call_STDCALL): Likewise.
1178 (_ffi_closure_SYSV): Likewise.
1179 (_ffi_closure_raw_SYSV): Likewise.
1180 (.eh_frame): Add hand-crafted EH data.
1181
11822009-04-09 Jakub Jelinek <jakub@redhat.com>
1183
1184 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
1185 version 3 of the GNU General Public License and to point readers
1186 at the COPYING3 file and the FSF's license web page.
1187 * testsuite/libffi.call/call.exp: Likewise.
1188 * testsuite/libffi.special/special.exp: Likewise.
1189
11902009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1191
1192 * configure: Regenerate.
1193
11942008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1195
1196 PR libffi/26048
1197 * configure.ac (HAVE_AS_X86_PCREL): New test.
1198 * configure: Regenerate.
1199 * fficonfig.h.in: Regenerate.
1200 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
1201 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
1202 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
1203 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1204 * src/x86/unix64.S (.Lstore_table): Move to .text section.
1205 (.Lload_table): Likewise.
1206 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1207
12082008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1209
1210 * configure: Regenerate.
1211
12122008-11-21 Eric Botcazou <ebotcazou@adacore.com>
1213
1214 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
1215 signed/unsigned int8/16 return values.
1216 * src/sparc/v8.S (ffi_call_v8): Likewise.
1217 (ffi_closure_v8): Likewise.
1218
12192008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001220 Steve Ellcey <sje@cup.hp.com>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001221
1222 * configure: Regenerate for new libtool.
1223 * Makefile.in: Ditto.
1224 * include/Makefile.in: Ditto.
1225 * aclocal.m4: Ditto.
1226
12272008-08-25 Andreas Tobler <a.tobler@schweiz.org>
1228
1229 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
1230 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
1231 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
1232 Adjust copyright notice.
1233 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
1234 register or two register to use for FFI_SYSV structs.
1235 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
1236 (ffi_closure_helper_SYSV): Fix the return type for
1237 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
1238 Adjust copyright notice.
1239
12402008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
1241
1242 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
1243 int.
1244
12452008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1246
1247 * configure: Regenerate.
1248 * include/Makefile.in: Regenerate.
1249 * testsuite/Makefile.in: Regenerate.
1250
12512008-06-07 Joseph Myers <joseph@codesourcery.com>
1252
1253 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
1254 powerpc-*-beos*): Remove.
1255 * configure: Regenerate.
1256
12572008-05-09 Julian Brown <julian@codesourcery.com>
1258
1259 * Makefile.am (LTLDFLAGS): New.
1260 (libffi_la_LDFLAGS): Use above.
1261 * Makefile.in: Regenerate.
1262
12632008-04-18 Paolo Bonzini <bonzini@gnu.org>
1264
1265 PR bootstrap/35457
1266 * aclocal.m4: Regenerate.
1267 * configure: Regenerate.
1268
12692008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
1270
1271 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
1272 * src/sh64/sysv.S: Likewise.
1273
12742008-03-26 Daniel Jacobowitz <dan@debian.org>
1275
1276 * src/arm/sysv.S: Fix ARM comment marker.
1277
12782008-03-26 Jakub Jelinek <jakub@redhat.com>
1279
1280 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
1281 * src/s390/sysv.S: Likewise.
1282 * src/powerpc/ppc_closure.S: Likewise.
1283 * src/powerpc/sysv.S: Likewise.
1284 * src/x86/unix64.S: Likewise.
1285 * src/x86/sysv.S: Likewise.
1286 * src/sparc/v8.S: Likewise.
1287 * src/sparc/v9.S: Likewise.
1288 * src/m68k/sysv.S: Likewise.
1289 * src/arm/sysv.S: Likewise.
1290
12912008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1292
1293 * aclocal.m4: Regenerate.
1294 * configure: Likewise.
1295 * Makefile.in: Likewise.
1296 * include/Makefile.in: Likewise.
1297 * testsuite/Makefile.in: Likewise.
1298
12992008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
1300 Andreas Tobler <a.tobler@schweiz.org>
1301
1302 * configure.ac: Add amd64-*-freebsd* target.
1303 * configure: Regenerate.
1304
13052008-01-30 H.J. Lu <hongjiu.lu@intel.com>
1306
1307 PR libffi/34612
1308 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
1309 returning struct.
1310
1311 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
1312 tests.
1313
13142008-01-24 David Edelsohn <edelsohn@gnu.org>
1315
1316 * configure: Regenerate.
1317
13182008-01-06 Andreas Tobler <a.tobler@schweiz.org>
1319
1320 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
1321
13222008-01-05 Andreas Tobler <a.tobler@schweiz.org>
1323
1324 PR testsuite/32843
1325 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
1326 signed/unsigned int8/16 for X86_DARWIN.
1327 Updated copyright info.
1328 Handle one and two byte structs with special cif->flags.
1329 * src/x86/ffitarget.h: Add special types for one and two byte structs.
1330 Updated copyright info.
1331 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
1332 sysv.S
1333 Remove code to pop args from the stack after call.
1334 Special-case signed/unsigned for int8/16, one and two byte structs.
1335 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1336 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1337 FFI_TYPE_SINT32.
1338 Updated copyright info.
1339
13402007-12-08 David Daney <ddaney@avtrex.com>
1341
Anthony Green0cfe60e2009-12-29 10:06:04 -05001342 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001343 SUBU, add with ADDU and use smaller code sequences.
1344
13452007-12-07 David Daney <ddaney@avtrex.com>
1346
1347 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
1348 type.
1349
13502007-12-06 David Daney <ddaney@avtrex.com>
1351
1352 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
1353 defined.
1354 (ffi_java_raw): New typedef.
1355 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
1356 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
1357 ffi_java_raw.
1358 (ffi_java_raw_closure) : Same.
1359 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
1360 parameter types.
1361 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
1362 FFI_SIZEOF_JAVA_RAW.
1363 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
1364 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
1365 sizeof(ffi_java_raw) for alignment calculations.
1366 (ffi_java_ptrarray_to_raw): Same.
1367 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
Anthony Green0cfe60e2009-12-29 10:06:04 -05001368 if FFI_SIZEOF_JAVA_RAW == 4.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001369 (ffi_java_raw_to_rvalue): Same.
1370 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
1371 (ffi_java_translate_args): Same.
1372 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
1373 parameter types.
1374 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
1375
13762007-12-06 David Daney <ddaney@avtrex.com>
1377
Anthony Green0cfe60e2009-12-29 10:06:04 -05001378 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001379 pointer values.
1380
13812007-12-01 Andreas Tobler <a.tobler@schweiz.org>
1382
1383 PR libffi/31937
1384 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
1385 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
1386 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
1387 set the NUM_FPR_ARG_REGISTERS according to.
1388 Add support for potential soft-float support under hard-float
1389 architecture.
1390 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
1391 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
1392 to the FFI_LINUX_SOFT_FLOAT ABI.
1393 (ffi_prep_cif_machdep): Likewise.
1394 (ffi_closure_helper_SYSV): Likewise.
1395 * src/powerpc/ppc_closure.S: Make sure not to store float/double
1396 on archs where __NO_FPRS__ is true.
1397 Add FFI_TYPE_UINT128 support.
1398 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
1399 Adjust copyright notice.
1400
14012007-11-25 Andreas Tobler <a.tobler@schweiz.org>
1402
1403 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
1404 * include/ffi_common.h: ... here.
1405 Update copyright.
1406
14072007-11-17 Andreas Tobler <a.tobler@schweiz.org>
1408
1409 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
1410 * src/powerpc/linux64.S: Likewise.
1411 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
1412 * testsuite/libffi.call/return_ldl.c: New test.
1413
14142007-09-04 <aph@redhat.com>
1415
1416 * src/arm/sysv.S (UNWIND): New.
1417 (Whole file): Conditionally compile unwinder directives.
1418 * src/arm/sysv.S: Add unwinder directives.
1419
1420 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
1421 Only treat r0 as a struct address if we're actually returning a
1422 struct by address.
1423 Only copy the bytes that are actually within a struct.
1424 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
1425 is returned in r0, not passed by address.
1426 (ffi_call): Allocate a word-sized temporary for the case where
1427 a composite is returned in r0.
1428 (ffi_prep_incoming_args_SYSV): Align as necessary.
1429
14302007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
1431
Anthony Green0cfe60e2009-12-29 10:06:04 -05001432 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001433 directly using the sys_cacheflush syscall.
1434
14352007-07-27 Andrew Haley <aph@redhat.com>
1436
1437 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
1438
14392007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
1440
1441 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
1442 * configure.ac: Likewise.
1443 * Makefile.in: Regenerate.
1444 * include/Makefile.in: Likewise.
1445 * testsuite/Makefile.in: Likewise.
1446 * configure: Likewise.
1447
14482007-08-24 David Daney <ddaney@avtrex.com>
1449
1450 * testsuite/libffi.call/return_sl.c: New test.
1451
14522007-08-10 David Daney <ddaney@avtrex.com>
1453
1454 * testsuite/libffi.call/cls_multi_ushort.c,
1455 testsuite/libffi.call/cls_align_uint16.c,
1456 testsuite/libffi.call/nested_struct1.c,
1457 testsuite/libffi.call/nested_struct3.c,
1458 testsuite/libffi.call/cls_7_1_byte.c,
1459 testsuite/libffi.call/nested_struct5.c,
1460 testsuite/libffi.call/cls_double.c,
1461 testsuite/libffi.call/nested_struct7.c,
1462 testsuite/libffi.call/cls_sint.c,
1463 testsuite/libffi.call/nested_struct9.c,
1464 testsuite/libffi.call/cls_20byte1.c,
1465 testsuite/libffi.call/cls_multi_sshortchar.c,
1466 testsuite/libffi.call/cls_align_sint64.c,
1467 testsuite/libffi.call/cls_3byte2.c,
1468 testsuite/libffi.call/cls_multi_schar.c,
1469 testsuite/libffi.call/cls_multi_uchar.c,
1470 testsuite/libffi.call/cls_19byte.c,
1471 testsuite/libffi.call/cls_9byte1.c,
1472 testsuite/libffi.call/cls_align_float.c,
1473 testsuite/libffi.call/closure_fn1.c,
1474 testsuite/libffi.call/problem1.c,
1475 testsuite/libffi.call/closure_fn3.c,
1476 testsuite/libffi.call/cls_sshort.c,
1477 testsuite/libffi.call/closure_fn5.c,
1478 testsuite/libffi.call/cls_align_double.c,
1479 testsuite/libffi.call/nested_struct.c,
1480 testsuite/libffi.call/cls_2byte.c,
1481 testsuite/libffi.call/nested_struct10.c,
1482 testsuite/libffi.call/cls_4byte.c,
1483 testsuite/libffi.call/cls_6byte.c,
1484 testsuite/libffi.call/cls_8byte.c,
1485 testsuite/libffi.call/cls_multi_sshort.c,
1486 testsuite/libffi.call/cls_align_sint16.c,
1487 testsuite/libffi.call/cls_align_uint32.c,
1488 testsuite/libffi.call/cls_20byte.c,
1489 testsuite/libffi.call/cls_float.c,
1490 testsuite/libffi.call/nested_struct2.c,
1491 testsuite/libffi.call/cls_5_1_byte.c,
1492 testsuite/libffi.call/nested_struct4.c,
1493 testsuite/libffi.call/cls_24byte.c,
1494 testsuite/libffi.call/nested_struct6.c,
1495 testsuite/libffi.call/cls_64byte.c,
1496 testsuite/libffi.call/nested_struct8.c,
1497 testsuite/libffi.call/cls_uint.c,
1498 testsuite/libffi.call/cls_multi_ushortchar.c,
1499 testsuite/libffi.call/cls_schar.c,
1500 testsuite/libffi.call/cls_uchar.c,
1501 testsuite/libffi.call/cls_align_uint64.c,
1502 testsuite/libffi.call/cls_ulonglong.c,
1503 testsuite/libffi.call/cls_align_longdouble.c,
1504 testsuite/libffi.call/cls_1_1byte.c,
1505 testsuite/libffi.call/cls_12byte.c,
1506 testsuite/libffi.call/cls_3_1byte.c,
1507 testsuite/libffi.call/cls_3byte1.c,
1508 testsuite/libffi.call/cls_4_1byte.c,
1509 testsuite/libffi.call/cls_6_1_byte.c,
1510 testsuite/libffi.call/cls_16byte.c,
1511 testsuite/libffi.call/cls_18byte.c,
1512 testsuite/libffi.call/closure_fn0.c,
1513 testsuite/libffi.call/cls_9byte2.c,
1514 testsuite/libffi.call/closure_fn2.c,
1515 testsuite/libffi.call/closure_fn4.c,
1516 testsuite/libffi.call/cls_ushort.c,
1517 testsuite/libffi.call/closure_fn6.c,
1518 testsuite/libffi.call/cls_5byte.c,
1519 testsuite/libffi.call/cls_align_pointer.c,
1520 testsuite/libffi.call/cls_7byte.c,
1521 testsuite/libffi.call/cls_align_sint32.c,
1522 testsuite/libffi.special/unwindtest_ffi_call.cc,
1523 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
1524
15252007-08-10 David Daney <ddaney@avtrex.com>
1526
1527 PR libffi/28313
1528 * configure.ac: Don't treat mips64 as a special case.
1529 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
1530 * configure: Regenerate
1531 * Makefile.in: Ditto.
1532 * fficonfig.h.in: Ditto.
1533 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
1534 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
1535 (FFI_DEFAULT_ABI): Set for n64 case.
1536 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
1537 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
1538 (ffi_closure_N32): New function.
1539 (.eh_frame): New section
1540 * src/mips/o32.S: Clean up comments.
1541 (ffi_closure_O32): Pass ffi_closure parameter in $12.
1542 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
1543 _MIPS_SIM == _ABIN32 throughout.
1544 (FFI_MIPS_STOP_HERE): New, use in place of
1545 ffi_stop_here.
1546 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
1547 to support n32/n64 ABIs.
1548 (calc_n32_struct_flags): Rewrite.
1549 (calc_n32_return_struct_flags): Remove unused variable. Reverse
1550 position of flag bits.
1551 (ffi_prep_cif_machdep): Rewrite n32 portion.
1552 (ffi_call): Enable for n64. Add special handling for small structure
1553 return values.
1554 (ffi_prep_closure_loc): Add n32 and n64 support.
1555 (ffi_closure_mips_inner_O32): Add cast to silence warning.
1556 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
1557
15582007-08-08 David Daney <ddaney@avtrex.com>
1559
1560 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
1561 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
1562 specifiers.
1563 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
1564 * testsuite/libffi.call/cls_sint.c (main): Ditto.
1565 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
1566 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
1567 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
1568 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
1569 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
1570 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
1571 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
1572 * testsuite/libffi.call/return_fl3.c (main): Ditto.
1573 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
1574 * testsuite/libffi.call/nested_struct.c (main): Ditto.
1575 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
1576 * testsuite/libffi.call/return_ll1.c (main): Ditto.
1577 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
1578 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
1579 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
1580 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
1581 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
1582 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
1583 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
1584 * testsuite/libffi.call/cls_uint.c (main): Ditto.
1585 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
1586 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
1587 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
1588 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
1589 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
1590 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
1591 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
1592 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
1593 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
1594
15952007-08-07 Andrew Haley <aph@redhat.com>
1596
1597 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
1598 checkin.
1599
16002007-08-06 Andrew Haley <aph@redhat.com>
1601
1602 PR testsuite/32843
1603 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1604 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1605 FFI_TYPE_SINT32.
1606
16072007-08-02 David Daney <ddaney@avtrex.com>
1608
1609 * testsuite/libffi.call/return_ul.c (main): Define return type as
1610 ffi_arg. Use proper printf conversion specifier.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001611
Anthony Greenc6dddbd2009-10-04 08:11:33 -040016122007-07-30 Andrew Haley <aph@redhat.com>
1613
1614 PR testsuite/32843
1615 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
1616 signed/unsigned int8/16.
1617 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
1618 Use a jump table.
1619 Remove code to pop args from the stack after call.
1620 Special-case signed/unsigned int8/16.
1621 * testsuite/libffi.call/return_sc.c (main): Revert.
1622
16232007-07-26 Richard Guenther <rguenther@suse.de>
1624
1625 PR testsuite/32843
1626 * testsuite/libffi.call/return_sc.c (main): Verify call
1627 result as signed char, not ffi_arg.
1628
16292007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1630
1631 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
1632 * configure: Regenerate.
1633
16342007-07-11 David Daney <ddaney@avtrex.com>
1635
1636 * src/mips/ffi.c: Don't include sys/cachectl.h.
1637 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
1638 cacheflush().
1639
16402007-05-18 Aurelien Jarno <aurelien@aurel32.net>
1641
1642 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
1643 from (ffi_prep_closure): ... this.
1644 (FFI_INIT_TRAMPOLINE): Adjust.
1645
16462005-12-31 Phil Blundell <pb@reciva.com>
1647
Anthony Green0cfe60e2009-12-29 10:06:04 -05001648 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
1649 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001650 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
1651 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1652 (FFI_CLOSURES): Enable closure support.
1653
16542007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
1655
Anthony Green0cfe60e2009-12-29 10:06:04 -05001656 * testsuite/libffi.call/cls_multi_ushort.c,
1657 testsuite/libffi.call/cls_align_uint16.c,
1658 testsuite/libffi.call/nested_struct1.c,
1659 testsuite/libffi.call/nested_struct3.c,
1660 testsuite/libffi.call/cls_7_1_byte.c,
1661 testsuite/libffi.call/cls_double.c,
1662 testsuite/libffi.call/nested_struct5.c,
1663 testsuite/libffi.call/nested_struct7.c,
1664 testsuite/libffi.call/cls_sint.c,
1665 testsuite/libffi.call/nested_struct9.c,
1666 testsuite/libffi.call/cls_20byte1.c,
1667 testsuite/libffi.call/cls_multi_sshortchar.c,
1668 testsuite/libffi.call/cls_align_sint64.c,
1669 testsuite/libffi.call/cls_3byte2.c,
1670 testsuite/libffi.call/cls_multi_schar.c,
1671 testsuite/libffi.call/cls_multi_uchar.c,
1672 testsuite/libffi.call/cls_19byte.c,
1673 testsuite/libffi.call/cls_9byte1.c,
1674 testsuite/libffi.call/cls_align_float.c,
1675 testsuite/libffi.call/closure_fn1.c,
1676 testsuite/libffi.call/problem1.c,
1677 testsuite/libffi.call/closure_fn3.c,
1678 testsuite/libffi.call/cls_sshort.c,
1679 testsuite/libffi.call/closure_fn5.c,
1680 testsuite/libffi.call/cls_align_double.c,
1681 testsuite/libffi.call/cls_2byte.c,
1682 testsuite/libffi.call/nested_struct.c,
1683 testsuite/libffi.call/nested_struct10.c,
1684 testsuite/libffi.call/cls_4byte.c,
1685 testsuite/libffi.call/cls_6byte.c,
1686 testsuite/libffi.call/cls_8byte.c,
1687 testsuite/libffi.call/cls_multi_sshort.c,
1688 testsuite/libffi.call/cls_align_uint32.c,
1689 testsuite/libffi.call/cls_align_sint16.c,
1690 testsuite/libffi.call/cls_float.c,
1691 testsuite/libffi.call/cls_20byte.c,
1692 testsuite/libffi.call/cls_5_1_byte.c,
1693 testsuite/libffi.call/nested_struct2.c,
1694 testsuite/libffi.call/cls_24byte.c,
1695 testsuite/libffi.call/nested_struct4.c,
1696 testsuite/libffi.call/nested_struct6.c,
1697 testsuite/libffi.call/cls_64byte.c,
1698 testsuite/libffi.call/nested_struct8.c,
1699 testsuite/libffi.call/cls_uint.c,
1700 testsuite/libffi.call/cls_multi_ushortchar.c,
1701 testsuite/libffi.call/cls_schar.c,
1702 testsuite/libffi.call/cls_uchar.c,
1703 testsuite/libffi.call/cls_align_uint64.c,
1704 testsuite/libffi.call/cls_ulonglong.c,
1705 testsuite/libffi.call/cls_align_longdouble.c,
1706 testsuite/libffi.call/cls_1_1byte.c,
1707 testsuite/libffi.call/cls_12byte.c,
1708 testsuite/libffi.call/cls_3_1byte.c,
1709 testsuite/libffi.call/cls_3byte1.c,
1710 testsuite/libffi.call/cls_4_1byte.c,
1711 testsuite/libffi.call/cls_6_1_byte.c,
1712 testsuite/libffi.call/cls_16byte.c,
1713 testsuite/libffi.call/cls_18byte.c,
1714 testsuite/libffi.call/closure_fn0.c,
1715 testsuite/libffi.call/cls_9byte2.c,
1716 testsuite/libffi.call/closure_fn2.c,
1717 testsuite/libffi.call/closure_fn4.c,
1718 testsuite/libffi.call/cls_ushort.c,
1719 testsuite/libffi.call/closure_fn6.c,
1720 testsuite/libffi.call/cls_5byte.c,
1721 testsuite/libffi.call/cls_align_pointer.c,
1722 testsuite/libffi.call/cls_7byte.c,
1723 testsuite/libffi.call/cls_align_sint32.c,
1724 testsuite/libffi.special/unwindtest_ffi_call.cc,
1725 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001726
17272007-07-05 H.J. Lu <hongjiu.lu@intel.com>
1728
1729 * aclocal.m4: Regenerated.
1730
17312007-06-02 Paolo Bonzini <bonzini@gnu.org>
1732
1733 * configure: Regenerate.
1734
17352007-05-23 Steve Ellcey <sje@cup.hp.com>
1736
1737 * Makefile.in: Regenerate.
1738 * configure: Regenerate.
1739 * aclocal.m4: Regenerate.
1740 * include/Makefile.in: Regenerate.
1741 * testsuite/Makefile.in: Regenerate.
1742
17432007-05-10 Roman Zippel <zippel@linux-m68k.org>
1744
1745 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
1746 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
1747 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
1748 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1749 (FFI_CLOSURES): Enable closure support.
1750
17512007-05-10 Roman Zippel <zippel@linux-m68k.org>
1752
1753 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
1754 * configure: Regenerate.
1755 * fficonfig.h.in: Regenerate.
1756 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
1757 CFI_OFFSET,CFI_DEF_CFA): New macros.
1758 (ffi_call_SYSV): Add callframe annotation.
1759
17602007-05-10 Roman Zippel <zippel@linux-m68k.org>
1761
1762 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
1763 numerous test suite failures.
1764 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
1765
17662007-04-11 Paolo Bonzini <bonzini@gnu.org>
1767
1768 * Makefile.am (EXTRA_DIST): Bring up to date.
1769 * Makefile.in: Regenerate.
1770 * src/frv/eabi.S: Remove RCS keyword.
1771
17722007-04-06 Richard Henderson <rth@redhat.com>
1773
1774 * configure.ac: Tidy target case.
1775 (HAVE_LONG_DOUBLE): Allow the target to override.
1776 * configure: Regenerate.
1777 * include/ffi.h.in: Don't define ffi_type_foo if
1778 LIBFFI_HIDE_BASIC_TYPES is defined.
1779 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
1780 to ffi_type_double.
1781 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
1782 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
1783 (ffi_type_longdouble): Special case for Alpha. Don't define
1784 if long double == double.
1785
1786 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
1787 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
1788 (ffi_call, ffi_closure_osf_inner): Likewise.
1789 (ffi_closure_osf_inner): Likewise. Mark hidden.
1790 (ffi_call_osf, ffi_closure_osf): Mark hidden.
1791 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
1792 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
1793 (load_table): Handle 128-bit long double.
1794
1795 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
1796
17972007-04-06 Tom Tromey <tromey@redhat.com>
1798
1799 PR libffi/31491:
1800 * README: Fixed bug in example.
1801
18022007-04-03 Jakub Jelinek <jakub@redhat.com>
1803
1804 * src/closures.c: Include sys/statfs.h.
1805 (_GNU_SOURCE): Define on Linux.
1806 (FFI_MMAP_EXEC_SELINUX): Define.
1807 (selinux_enabled): New variable.
1808 (selinux_enabled_check): New function.
1809 (is_selinux_enabled): Define.
1810 (dlmmap): Use it.
1811
18122007-03-24 Uros Bizjak <ubizjak@gmail.com>
1813
1814 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
1815 Use 'volatile float sum' to create sum of floats to avoid false
1816 negative due to excess precision on ix86 targets.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001817 (main): Ditto.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001818
18192007-03-08 Alexandre Oliva <aoliva@redhat.com>
1820
1821 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
1822 patch.
1823 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
1824
18252007-03-07 Alexandre Oliva <aoliva@redhat.com>
1826
1827 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
1828 (ffi_prep_closure_loc): New.
1829 (ffi_prep_raw_closure_loc): New.
1830 (ffi_prep_java_raw_closure_loc): New.
1831 * src/closures.c: New file.
1832 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
1833 Replace sflags with exec_offset.
1834 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
1835 sub_segment_exec_offset): New macros.
1836 (get_segment_flags, set_segment_flags, check_segment_merge): New
1837 macros.
1838 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
1839 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
1840 destroy_mspace): Use new macros.
1841 (sys_alloc): Silence warning.
1842 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
1843 * Makefile.in: Rebuilt.
1844 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
1845 terms of ffi_prep_closure_loc.
1846 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
1847 from...
1848 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
1849 renamed version.
1850 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
1851 adjusted from...
1852 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
1853 the renamed version.
1854 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
1855 (ffi_prep_closure): ... this.
1856 * src/pa/ffi.c: Likewise.
1857 * src/cris/ffi.c: Likewise. Adjust.
1858 * src/frv/ffi.c: Likewise.
1859 * src/ia64/ffi.c: Likewise.
1860 * src/mips/ffi.c: Likewise.
1861 * src/powerpc/ffi_darwin.c: Likewise.
1862 * src/s390/ffi.c: Likewise.
1863 * src/sh/ffi.c: Likewise.
1864 * src/sh64/ffi.c: Likewise.
1865 * src/sparc/ffi.c: Likewise.
1866 * src/x86/ffi64.c: Likewise.
1867 * src/x86/ffi.c: Likewise.
1868 (FFI_INIT_TRAMPOLINE): Adjust.
1869 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
1870 (ffi_prep_raw_closure): ... this.
1871 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
1872 (ffi_prep_closure): ... this.
1873 (flush_icache): Adjust.
1874
18752007-03-07 Alexandre Oliva <aoliva@redhat.com>
1876
1877 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
1878 Lea's malloc.
1879
18802007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
1881
1882 * Makefile.am: Add dummy install-pdf target.
1883 * Makefile.in: Regenerate
1884
18852007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
1886
1887 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
1888 ffi_closure_helper_SYSV): Add long double handling.
1889
18902007-02-02 Jakub Jelinek <jakub@redhat.com>
1891
1892 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
1893 immediately after bctrl instruction.
1894
18952007-01-18 Alexandre Oliva <aoliva@redhat.com>
1896
1897 * Makefile.am (all-recursive, install-recursive,
1898 mostlyclean-recursive, clean-recursive, distclean-recursive,
1899 maintainer-clean-recursive): Add missing targets.
1900 * Makefile.in: Rebuilt.
1901
19022006-12-14 Andreas Tobler <a.tobler@schweiz.org>
1903
1904 * configure.ac: Add TARGET for x86_64-*-darwin*.
1905 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
1906 for X86_DARWIN.
1907 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
1908 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
1909 * configure: Regenerate.
1910 * Makefile.in: Regenerate.
1911 * include/Makefile.in: Regenerate.
1912 * testsuite/Makefile.in: Regenerate.
1913 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
1914 ffi_call only.
1915
19162006-12-13 Andreas Tobler <a.tobler@schweiz.org>
1917
1918 * aclocal.m4: Regenerate with aclocal -I .. as written in the
1919 Makefile.am.
1920
19212006-10-31 Geoffrey Keating <geoffk@apple.com>
1922
1923 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
1924 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
1925 Darwin.
1926 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
1927 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
1928
19292006-10-10 Paolo Bonzini <bonzini@gnu.org>
1930 Sandro Tolaini <tolaini@libero.it>
1931
Anthony Green0cfe60e2009-12-29 10:06:04 -05001932 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001933 conditional.
1934 * configure: Regenerated.
1935 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
1936 (EXTRA_DIST): Add src/x86/darwin.S.
1937 * Makefile.in: Regenerated.
1938 * include/Makefile.in: Regenerated.
1939 * testsuite/Makefile.in: Regenerated.
1940
1941 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
1942 X86_WIN32, and additionally align stack to 16 bytes.
1943 * src/x86/darwin.S: New, based on sysv.S.
1944 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
1945
19462006-09-12 David Daney <ddaney@avtrex.com>
1947
1948 PR libffi/23935
1949 * include/Makefile.am: Install both ffi.h and ffitarget.h in
1950 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
1951 * aclocal.m4: Regenerated for automake 1.9.6.
1952 * Makefile.in: Regenerated.
1953 * include/Makefile.in: Regenerated.
1954 * testsuite/Makefile.in: Regenerated.
1955
19562006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
1957
1958 * include/ffi_common.h (struct): Revert accidental commit.
1959
19602006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
1961
1962 * include/ffi_common.h: Remove lint directives.
1963 * include/ffi.h.in: Likewise.
1964
19652006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
1966
1967 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
1968 for 32-bit architectures.
1969 * testsuite/libffi.call/return_ul.c: New test case.
1970
19712006-07-19 David Daney <ddaney@avtrex.com>
1972
1973 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
1974 xfail remains for mips64.
1975
19762006-05-23 Carlos O'Donell <carlos@codesourcery.com>
1977
1978 * Makefile.am: Add install-html target. Add install-html to .PHONY
1979 * Makefile.in: Regenerate.
1980 * aclocal.m4: Regenerate.
1981 * include/Makefile.in: Regenerate.
1982 * testsuite/Makefile.in: Regenerate.
1983
19842006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1985
1986 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
1987 stack slot.
1988
19892006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
1990
1991 * README: Remove notice about 'Crazy Comments'.
1992 * src/debug.c: Remove lint directives. Cleanup white spaces.
1993 * src/java_raw_api.c: Likewise.
1994 * src/prep_cif.c: Likewise.
1995 * src/raw_api.c: Likewise.
1996 * src/ffitest.c: Delete. No longer needed, all test cases migrated
1997 to the testsuite.
1998 * src/arm/ffi.c: Remove lint directives.
1999 * src/m32r/ffi.c: Likewise.
2000 * src/pa/ffi.c: Likewise.
2001 * src/powerpc/ffi.c: Likewise.
2002 * src/powerpc/ffi_darwin.c: Likewise.
2003 * src/sh/ffi.c: Likewise.
2004 * src/sh64/ffi.c: Likewise.
2005 * src/x86/ffi.c: Likewise.
2006 * testsuite/libffi.call/float2.c: Likewise.
2007 * testsuite/libffi.call/promotion.c: Likewise.
2008 * testsuite/libffi.call/struct1.c: Likewise.
2009
20102006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
2011
2012 * src/pa/hpux32.S: Correct unwind offset calculation for
2013 ffi_closure_pa32.
2014 * src/pa/linux.S: Likewise.
2015
20162006-04-12 James E Wilson <wilson@specifix.com>
2017
2018 PR libgcj/26483
2019 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
2020 (hfa_type_load): Call stf_spill.
2021 (hfa_type_store): Call ldf_fill.
2022 (ffi_call): Adjust calls to above routines. Add local temps for
2023 macro result.
2024
20252006-04-10 Matthias Klose <doko@debian.org>
2026
2027 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
2028 directory names containing underscores.
2029
20302006-04-07 James E Wilson <wilson@specifix.com>
2031
2032 * testsuite/libffi.call/float4.c: New testcase.
2033
20342006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2035 Andreas Tobler <a.tobler@schweiz.ch>
2036
2037 * Makefile.am: Add PA_HPUX port.
2038 * Makefile.in: Regenerate.
2039 * include/Makefile.in: Likewise.
2040 * testsuite/Makefile.in: Likewise.
2041 * configure.ac: Add PA_HPUX rules.
2042 * configure: Regenerate.
2043 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
2044 Add PA_HPUX and PA64_HPUX.
2045 Rename FFI_LINUX ABI to FFI_PA32 ABI.
2046 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
2047 (FFI_TYPE_SMALL_STRUCT2): Define.
2048 (FFI_TYPE_SMALL_STRUCT4): Likewise.
2049 (FFI_TYPE_SMALL_STRUCT8): Likewise.
2050 (FFI_TYPE_SMALL_STRUCT3): Redefine.
2051 (FFI_TYPE_SMALL_STRUCT5): Likewise.
2052 (FFI_TYPE_SMALL_STRUCT6): Likewise.
2053 (FFI_TYPE_SMALL_STRUCT7): Likewise.
2054 * src/pa/ffi.c (ROUND_DOWN): Delete.
2055 (fldw, fstw, fldd, fstd): Use '__asm__'.
2056 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
2057 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
2058 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
2059 Simplify incrementing of stack slot variable. Change type of local
2060 'n' to unsigned int.
2061 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
2062 double on PA_HPUX.
2063 (ffi_prep_cif_machdep): Likewise.
2064 (ffi_call): Likewise.
2065 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
2066 return type to ffi_status. Simplify incrementing of stack slot
2067 variable. Only copy floating point argument registers when PA_LINUX
2068 is true. Reformat debug statement.
2069 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
2070 FFI_TYPE_SMALL_STRUCT8.
2071 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
2072 declaration.
2073 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
2074 Add nops to cache flush. Add trampoline for PA_HPUX.
2075 * src/pa/hpux32.S: New file.
2076 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
2077 ffi_prep_args_LINUX to ffi_prep_args_pa32.
2078 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
2079 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
2080 argument type checks so that common argument types appear first.
2081 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
2082 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
2083
20842006-03-24 Alan Modra <amodra@bigpond.net.au>
2085
2086 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
2087 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
2088 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
2089 FFI_TYPE_LONGDOUBLE.
2090 (ffi_prep_args64): Assert using IBM extended double.
2091 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
2092 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
2093 (ffi_call): Handle FFI_LINUX.
2094 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
2095 gpr3 return pointer as for struct return. Handle FFI_LINUX
2096 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
2097 unnecessarily.
2098 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
2099 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
2100 Don't use r6 as pointer to results, instead use sp offset. Don't
2101 make a special call to load lr with case table address, instead
2102 use offset from previous call.
2103 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
2104 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
2105 return.
2106
21072006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
2108
2109 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
2110 passed with FP registers correctly.
2111 (ffi_closure_helper_SYSV): Likewise.
2112 * src/sh64/sysv.S: Likewise.
2113
21142006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
2115
2116 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
2117 args and userdata unused.
2118 (closure_test_fn1): Mark cif and userdata unused.
2119 (main): Remove unused res.
2120
21212006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
2122
2123 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
2124 -O2, -O3, -Os and the warning flags -W -Wall.
2125 * testsuite/libffi.special/special.exp: Likewise.
2126 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
2127 unused parameter unused for gcc or else do nothing.
2128 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2129 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
2130 and userdata unused.
2131 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
2132 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
2133 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
2134 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
2135 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
2136 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
2137 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
2138 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
2139 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
2140 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
2141 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
2142 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
2143 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
2144 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
2145 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
2146 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
2147 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
2148 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
2149 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
2150 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
2151 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
2152 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
2153 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
2154 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
2155 Likewise.
2156 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
2157 Likewise.
2158 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
2159 Likewise.
2160 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
2161 void* to avoid compiler warning.
2162 (main): Likewise.
2163 (cls_struct_align_gn): Mark cif and userdata unused.
2164 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
2165 Likewise.
2166 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
2167 Likewise.
2168 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
2169 Likewise.
2170 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
2171 Likewise.
2172 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
2173 Likewise.
2174 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
2175 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
2176 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
2177 data unused.
2178 (main): Cast res_call to silence gcc.
2179 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
2180 data unused.
2181 (main): Cast res_call to silence gcc.
2182 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
2183 and data unused.
2184 (main): Cast res_call to silence gcc.
2185 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
2186 data unused.
2187 (main): Cast res_call to silence gcc.
2188 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
2189 data unused.
2190 (main): Cast res_call to silence gcc.
2191 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
2192 and data unused.
2193 (main): Cast res_call to silence gcc.
2194 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
2195 userdata unused.
2196 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
2197 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
2198 userdata unused.
2199 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
2200 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
2201 userdata unused.
2202 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
2203 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
2204 userdata unused.
2205 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
2206 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
2207 userdata unused.
2208 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
2209 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
2210 and userdata unused.
2211 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
2212 userdata unused.
2213 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
2214 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
2215 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
2216 Cleanup white spaces.
2217 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
2218 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
2219 cif and userdata unused.
2220 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
2221 Likewise.
2222 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
2223 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
2224 formatters to silence gcc.
2225 (B_gn): Mark cif and userdata unused.
2226 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
2227 unused.
2228 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
2229 (B_gn): Mark cif and userdata unused.
2230 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
2231 unused.
2232 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
2233 (B_gn): Mark cif and userdata unused.
2234 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
2235 unused.
2236 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
2237 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
2238 * testsuite/libffi.call/problem1.c (stub): Likewise.
2239 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
2240 gcc.
2241 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
2242 in the last commit for this test case in the test case itself.
2243 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
2244 unused.
2245 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
2246 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
2247 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
2248 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
2249 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
2250 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
2251
22522006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
2253
2254 * src/sh/sysv.S: Fix register numbers in the FDE for
2255 ffi_closure_SYSV.
2256
22572006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
2258
2259 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
2260 declaration to avoid a false negative on ix86. See PR323.
2261
22622006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
2263
2264 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
2265 and cast integer to void * if needed. Update the pointer to
2266 the FP register saved area correctly.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002267
Anthony Greenc6dddbd2009-10-04 08:11:33 -040022682006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
2269
2270 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
2271 is fixed.
2272 * testsuite/libffi.call/nested_struct4.c: Likewise.
2273
22742006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
2275
2276 * testsuite/libffi.call/return_dbl.c: New test case.
2277 * testsuite/libffi.call/return_dbl1.c: Likewise.
2278 * testsuite/libffi.call/return_dbl2.c: Likewise.
2279 * testsuite/libffi.call/return_fl.c: Likewise.
2280 * testsuite/libffi.call/return_fl1.c: Likewise.
2281 * testsuite/libffi.call/return_fl2.c: Likewise.
2282 * testsuite/libffi.call/return_fl3.c: Likewise.
2283 * testsuite/libffi.call/closure_fn6.c: Likewise.
2284
2285 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
2286 definition.
2287 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
2288 here to be used by other test cases too.
2289
2290 * testsuite/libffi.call/nested_struct10.c: New test case.
2291 * testsuite/libffi.call/nested_struct9.c: Likewise.
2292 * testsuite/libffi.call/nested_struct8.c: Likewise.
2293 * testsuite/libffi.call/nested_struct7.c: Likewise.
2294 * testsuite/libffi.call/nested_struct6.c: Likewise.
2295 * testsuite/libffi.call/nested_struct5.c: Likewise.
2296 * testsuite/libffi.call/nested_struct4.c: Likewise.
2297
22982006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
2299
2300 * configure.ac: Enable libffi for sparc64-*-freebsd*.
2301 * configure: Rebuilt.
2302
23032006-01-18 Jakub Jelinek <jakub@redhat.com>
2304
2305 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
2306 instead do the shifting inline.
2307 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
2308 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
2309 and 8 byte structs, for the remaining struct sizes don't call
2310 __lshrdi3, instead do the shifting inline.
2311
23122005-12-07 Thiemo Seufer <ths@networkno.de>
2313
2314 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
2315 missing parentheses.
2316 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
2317 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
2318 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
2319 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
2320 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
2321 FA_0_0_OFF2.
2322 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
2323 endianness bugs.
2324 (ffi_prep_closure): Improve trampoline instruction scheduling.
2325 (ffi_closure_mips_inner_O32): Fix endianness bugs.
2326
23272005-12-03 Alan Modra <amodra@bigpond.net.au>
2328
2329 * src/powerpc/ffi.c: Formatting.
2330 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
2331 (ffi_prep_args64): Likewise.
2332
23332005-09-30 Geoffrey Keating <geoffk@apple.com>
2334
2335 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
2336 darwin, use -shared-libgcc not -lgcc_s, and explain why.
2337
23382005-09-26 Tom Tromey <tromey@redhat.com>
2339
2340 * testsuite/libffi.call/float1.c (value_type): New typedef.
2341 (CANARY): New define.
2342 (main): Check for result buffer overflow.
2343 * src/powerpc/linux64.S: Handle linux64 long double returns.
2344 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
2345 (ffi_prep_cif_machdep): Handle linux64 long double returns.
2346
23472005-08-25 Alan Modra <amodra@bigpond.net.au>
2348
2349 PR target/23404
2350 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
2351 homed fp args.
2352 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
2353
23542005-08-11 Jakub Jelinek <jakub@redhat.com>
2355
2356 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
2357 (AH_BOTTOM): Add FFI_HIDDEN definition.
2358 * configure: Rebuilt.
2359 * fficonfig.h.in: Rebuilt.
2360 * src/powerpc/ffi.c (hidden): Remove.
2361 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
2362 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
2363 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
2364 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
2365 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
2366 add FFI_HIDDEN to its prototype.
2367 (ffi_closure_SYSV_inner): New.
2368 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
2369 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
2370
23712005-08-10 Alfred M. Szmidt <ams@gnu.org>
2372
2373 PR libffi/21819:
2374 * configure: Rebuilt.
2375 * configure.ac: Handle i*86-*-gnu*.
2376
23772005-08-09 Jakub Jelinek <jakub@redhat.com>
2378
2379 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
2380 DW_CFA_offset_extended_sf rather than
2381 DW_CFA_GNU_negative_offset_extended.
2382 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
2383
23842005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
2385
2386 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
2387 on sh3.
2388 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
2389 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
2390 partially on register.
2391 (ffi_closure_helper_SYSV): Likewise.
2392 (ffi_prep_cif_machdep): Don't set too many cif->flags.
2393
23942005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
2395
2396 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
2397 Remove empty line.
2398 * src/sh64/ffi.c (simple_type): Remove.
2399 (return_type): Handle small structures correctly.
2400 (ffi_prep_args): Likewise.
2401 (ffi_call): Likewise.
2402 (ffi_closure_helper_SYSV): Likewise.
2403 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
2404 Emit position independent code if PIC and remove wrong datalabel
2405 prefixes from EH data.
2406
24072005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
2408
2409 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
2410 * Makefile.in: Regenerate.
2411 * include/Makefile.in: Likewise.
2412 * testsuite/Makefile.in: Likewise.
2413 * configure.ac: Add POWERPC_FREEBSD rules.
2414 * configure: Regenerate.
2415 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
2416 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
2417 * src/powerpc/ffi.c: Add flags to handle small structure returns
2418 in ffi_call_SYSV.
2419 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
2420 Aka FFI_SYSV.
2421 (ffi_closure_helper_SYSV): Likewise.
2422 * src/powerpc/ppc_closure.S: Add return types for small structures.
2423 * src/powerpc/sysv.S: Add bits to handle small structures for
2424 final SYSV 4 ABI.
2425
24262005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
2427
2428 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
2429 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
2430 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
2431
24322005-07-05 Randolph Chung <tausq@debian.org>
2433
2434 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
2435 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
2436 structures. Kill compilation warnings.
2437 (ffi_closure_inner_LINUX): Print return values as hex in debug
2438 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
2439 Properly handle 5-7 byte structure returns.
2440 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
2441 (FFI_TYPE_SMALL_STRUCT2): Remove.
2442 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
2443 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
2444 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
2445 (checksmst1, checksmst2): Remove.
2446 (checksmst3): Optimize handling of 3-byte struct returns.
2447 (checksmst567): Properly handle 5-7 byte struct returns.
2448
24492005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2450
2451 PR libgcj/21943
2452 * src/mips/n32.S: Enforce PIC code.
2453 * src/mips/o32.S: Likewise.
2454
24552005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2456
2457 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
2458 * configure: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002459
Anthony Greenc6dddbd2009-10-04 08:11:33 -040024602005-06-01 Alan Modra <amodra@bigpond.net.au>
2461
2462 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
2463 to call ffi_closure_helper_SYSV. Append @local instead.
2464 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
2465
24662005-05-17 Kelley Cook <kcook@gcc.gnu.org>
2467
2468 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
2469 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
2470 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
2471 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
2472 include/Makefile.in, testsuite/Makefile.in: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002473
Anthony Greenc6dddbd2009-10-04 08:11:33 -040024742005-05-09 Mike Stump <mrs@apple.com>
2475
2476 * configure: Regenerate.
2477
24782005-05-08 Richard Henderson <rth@redhat.com>
2479
2480 PR libffi/21285
2481 * src/alpha/osf.S: Update unwind into to match code.
2482
24832005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
2484 Richard Henderson <rth@redhat.com>
2485
2486 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
2487 bit 11 of flags.
2488 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
2489 (ffi_prep_closure): Set carry bit if sse-used flag set.
2490 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
2491 Only load sse registers if ssecount non-zero.
2492 (ffi_closure_unix64): Only save sse registers if carry set on entry.
2493
24942005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
2495
2496 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
2497 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
2498 * configure: Regenerate.
2499
25002005-04-20 Hans-Peter Nilsson <hp@axis.com>
2501
2502 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
2503 have Tcl8.3-compatible intermediate variable.
2504
Anthony Green0cfe60e2009-12-29 10:06:04 -050025052005-04-18 Simon Posnjak <simon.posnjak@siol.net>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002506 Hans-Peter Nilsson <hp@axis.com>
2507
2508 * Makefile.am: Add CRIS support.
2509 * configure.ac: Likewise.
2510 * Makefile.in, configure, testsuite/Makefile.in,
2511 include/Makefile.in: Regenerate.
2512 * src/cris: New directory.
2513 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
2514 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
2515
2516 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
2517 \r?\n in output tests.
2518
25192005-04-12 Mike Stump <mrs@apple.com>
2520
2521 * configure: Regenerate.
2522
25232005-03-30 Hans Boehm <Hans.Boehm@hp.com>
2524
2525 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002526
Anthony Greenc6dddbd2009-10-04 08:11:33 -040025272005-03-30 Steve Ellcey <sje@cup.hp.com>
2528
2529 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
2530 (ffi_sarg) Ditto.
2531 * src/ia64/unix.S (ffi_closure_unix): Extend gp
2532 to 64 bits in ILP32 mode.
2533 Load 64 bits even for short data.
2534
25352005-03-23 Mike Stump <mrs@apple.com>
2536
2537 * src/powerpc/darwin.S: Update for -m64 multilib.
2538 * src/powerpc/darwin_closure.S: Likewise.
2539
25402005-03-21 Zack Weinberg <zack@codesourcery.com>
2541
2542 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
2543 Do not set tool_include_dir.
2544 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
2545 Regenerate.
2546 * include/Makefile.am: Set gcc_version and toollibffidir.
2547 * include/Makefile.in: Regenerate.
2548
25492005-02-22 Andrew Haley <aph@redhat.com>
2550
2551 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
2552 odd-numbered register pairs for 64-bit integer types.
2553
25542005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
2555
2556 PR libffi/20104
2557 * testsuite/libffi.call/return_ll1.c: New test case.
2558
25592005-02-11 Janis Johnson <janis187@us.ibm.com>
2560
2561 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
2562 * testsuite/libffi.call/float.c: Ditto.
2563 * testsuite/libffi.call/float2.c: Ditto.
2564 * testsuite/libffi.call/float3.c: Ditto.
2565
25662005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
2567
2568 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
2569
25702005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2571
2572 * testsuite/libffi.special/special.exp (cxx_options): Add
2573 -shared-libgcc.
2574
25752004-12-31 Richard Henderson <rth@redhat.com>
2576
2577 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
2578 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
2579 offset parameters with a type parameter; deduce size and structure
2580 alignment. Update all users.
2581
25822004-12-31 Richard Henderson <rth@redhat.com>
2583
2584 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
2585 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
2586 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
2587 into ffi_prep_closure.
2588 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
2589 from scratch.
2590
25912004-12-27 Richard Henderson <rth@redhat.com>
2592
2593 * src/x86/unix64.S: Fix typo in unwind info.
2594
25952004-12-25 Richard Henderson <rth@redhat.com>
2596
2597 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
2598 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
2599 (merge_classes): Check for it.
2600 (SSE_CLASS_P): New.
2601 (classify_argument): Pass byte_offset by value; perform all updates
2602 inside struct case.
2603 (examine_argument): Add classes argument; handle
2604 X86_64_COMPLEX_X87_CLASS.
2605 (ffi_prep_args): Merge into ...
2606 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
2607 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
2608 (ffi_fill_return_value): Remove.
2609 (ffi_prep_closure): Remove dead assert.
2610 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
2611 Rewrite to use struct register_args instead of va_list. Create
2612 flags for handling structure returns.
2613 * src/x86/unix64.S: Remove dead strings.
2614 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
2615 stack frame with ffi_call. Handle structure returns properly.
2616 (float2sse, floatfloat2sse, double2sse): Remove.
2617 (sse2float, sse2double, sse2floatfloat): Remove.
2618 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
2619 to handle structure returns properly.
2620
26212004-12-08 David Edelsohn <edelsohn@gnu.org>
2622
2623 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
2624 PICFLAG.
2625 * Makefile.in: Regenerated.
2626
26272004-12-02 Richard Sandiford <rsandifo@redhat.com>
2628
2629 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
2630 * configure, aclocal.m4, Makefile.in: Regenerate.
2631 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
2632
26332004-11-29 Kelley Cook <kcook@gcc.gnu.org>
2634
2635 * configure: Regenerate for libtool change.
2636
26372004-11-25 Kelley Cook <kcook@gcc.gnu.org>
2638
2639 * configure: Regenerate for libtool reversion.
2640
26412004-11-24 Kelley Cook <kcook@gcc.gnu.org>
2642
2643 * configure: Regenerate for libtool change.
2644
26452004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2646
2647 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
2648
26492004-11-23 Richard Sandiford <rsandifo@redhat.com>
2650
2651 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
2652 of jal. Use an absolute encoding for the frame information.
2653
26542004-11-23 Kelley Cook <kcook@gcc.gnu.org>
2655
2656 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
2657 * acinclude.m4: Delete logic for sincludes.
2658 * aclocal.m4, Makefile.in, configure: Regenerate.
2659 * include/Makefile: Likewise.
2660 * testsuite/Makefile: Likewise.
2661
26622004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
2663
2664 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
2665 on a 8-byte boundary.
2666 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
2667
26682004-10-27 Richard Earnshaw <rearnsha@arm.com>
2669
2670 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
2671 long long values. Round stack allocation to a multiple of 8 bytes
2672 for ATPCS compatibility.
2673 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
2674 names. Handle returning long long types. Add Thumb and interworking
2675 support. Improve soft-float code.
2676
26772004-10-27 Richard Earnshaw <rearnsha@arm.com>
2678
2679 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
2680 (libffi_exit): New function.
2681 (libffi_init): Build the testglue wrapper if needed.
2682
26832004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
2684
2685 PR other/18138
2686 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
2687
26882004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2689
2690 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
2691
26922004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
2693
2694 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
2695 * testsuite/libffi.call/float3.c: New test case.
2696
26972004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
2698
2699 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
2700 the function returning a structure pointed with R2.
2701 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
2702 the structure return value if T bit set. Emit position
2703 independent code and EH data if PIC.
2704
27052004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2706
2707 * Makefile.am: Add m32r support.
2708 * configure.ac: Likewise.
2709 * Makefile.in: Regenerate.
2710 * confiugre: Regenerate.
2711 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
2712 (uint64, sint64, double, longdouble)
2713 * src/m32r: New directory.
2714 * src/m32r/ffi.c: New file.
2715 * src/m32r/sysv.S: Likewise.
2716 * src/m32r/ffitarget.h: Likewise.
2717
27182004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
2719
2720 * testsuite/libffi.call/negint.c: New test case.
2721
27222004-09-14 H.J. Lu <hongjiu.lu@intel.com>
2723
2724 PR libgcj/17465
2725 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
2726 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
2727 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
2728 DYLD_LIBRARY_PATH.
2729
27302004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
2731
2732 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
2733 * testsuite/libffi.call/promotion.c: Likewise.
2734 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
2735 whitespaces.
2736 * testsuite/libffi.call/return_sc.c: Likewise.
2737 * testsuite/libffi.call/return_uc.c: Likewise.
2738
27392004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
2740
2741 * src/powerpc/darwin.S: Fix comments and identation.
2742 * src/powerpc/darwin_closure.S: Likewise.
2743
27442004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
2745
2746 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
2747 (ffi_prep_args): Handle longdouble arguments.
2748 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
2749 longdouble.
2750 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
2751 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
2752 values.
2753 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
2754 * src/types.c: Defined longdouble size and alignment for darwin.
2755
27562004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
2757
2758 * src/powerpc/aix.S: Remove whitespaces.
2759 * src/powerpc/aix_closure.S: Likewise.
2760 * src/powerpc/asm.h: Likewise.
2761 * src/powerpc/ffi.c: Likewise.
2762 * src/powerpc/ffitarget.h: Likewise.
2763 * src/powerpc/linux64.S: Likewise.
2764 * src/powerpc/linux64_closure.S: Likewise.
2765 * src/powerpc/ppc_closure.S: Likewise.
2766 * src/powerpc/sysv.S: Likewise.
2767
27682004-08-30 Anthony Green <green@redhat.com>
2769
2770 * Makefile.am: Add frv support.
2771 * Makefile.in, testsuite/Makefile.in: Rebuilt.
2772 * configure.ac: Read configure.host.
2773 * configure.in: Read configure.host.
2774 * configure.host: New file. frv-elf needs libgloss.
2775 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
2776 alignment. This is needed to frv and shouldn't harm the others.
2777 * include/ffi_common.h (ALIGN_DOWN): New macro.
2778 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
2779
27802004-08-24 David Daney <daney@avtrex.com>
2781
2782 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
2783 * testsuite/libffi.call/closure_fn1.c: Likewise.
2784 * testsuite/libffi.call/closure_fn2.c Likewise.
2785 * testsuite/libffi.call/closure_fn3.c: Likewise.
2786 * testsuite/libffi.call/closure_fn4.c: Likewise.
2787 * testsuite/libffi.call/closure_fn5.c: Likewise.
2788 * testsuite/libffi.call/cls_18byte.c: Likewise.
2789 * testsuite/libffi.call/cls_19byte.c: Likewise.
2790 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2791 * testsuite/libffi.call/cls_20byte.c: Likewise.
2792 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2793 * testsuite/libffi.call/cls_24byte.c: Likewise.
2794 * testsuite/libffi.call/cls_2byte.c: Likewise.
2795 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2796 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2797 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2798 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2799 * testsuite/libffi.call/cls_4byte.c: Likewise.
2800 * testsuite/libffi.call/cls_64byte.c: Likewise.
2801 * testsuite/libffi.call/cls_6byte.c: Likewise.
2802 * testsuite/libffi.call/cls_7byte.c: Likewise.
2803 * testsuite/libffi.call/cls_8byte.c: Likewise.
2804 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2805 * testsuite/libffi.call/cls_9byte2.c: Likewise.
2806 * testsuite/libffi.call/cls_align_double.c: Likewise.
2807 * testsuite/libffi.call/cls_align_float.c: Likewise.
2808 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
2809 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
2810 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
2811 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
2812 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
2813 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
2814 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
2815 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
2816 * testsuite/libffi.call/cls_double.c: Likewise.
2817 * testsuite/libffi.call/cls_float.c: Likewise.
2818 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
2819 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
2820 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
2821 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
2822 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
2823 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
2824 * testsuite/libffi.call/cls_schar.c: Likewise.
2825 * testsuite/libffi.call/cls_sint.c: Likewise.
2826 * testsuite/libffi.call/cls_sshort.c: Likewise.
2827 * testsuite/libffi.call/cls_uchar.c: Likewise.
2828 * testsuite/libffi.call/cls_uint.c: Likewise.
2829 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2830 * testsuite/libffi.call/cls_ushort.c: Likewise.
2831 * testsuite/libffi.call/nested_struct.c: Likewise.
2832 * testsuite/libffi.call/nested_struct1.c: Likewise.
2833 * testsuite/libffi.call/nested_struct2.c: Likewise.
2834 * testsuite/libffi.call/nested_struct3.c: Likewise.
2835 * testsuite/libffi.call/problem1.c: Likewise.
2836 * testsuite/libffi.special/unwindtest.cc: Likewise.
2837 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
2838 to zero.
2839 * testsuite/libffi.call/cls_16byte.c: Likewise.
2840 * testsuite/libffi.call/cls_5byte.c: Likewise.
2841
28422004-08-23 David Daney <daney@avtrex.com>
2843
2844 PR libgcj/13141
2845 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
2846 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
2847 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
2848 parameters and return types.
2849 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
2850 (ffi_prep_closure): Ditto.
2851 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
2852 alignment calculations.
2853 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
2854 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
2855
28562004-08-14 Casey Marshall <csm@gnu.org>
2857
2858 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
2859 contain `FFI_TYPE_UINT64' as return type for any 64-bit
2860 integer (O32 ABI only).
2861 (ffi_prep_closure): new function.
2862 (ffi_closure_mips_inner_O32): new function.
2863 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
2864 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
2865 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
2866 64 bit integers correctly.
2867 (ffi_closure_O32): new function.
2868 Added DWARF-2 unwind info for both functions.
2869
28702004-08-10 Andrew Haley <aph@redhat.com>
2871
2872 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
2873
28742004-08-01 Robert Millan <robertmh@gnu.org>
2875
2876 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
2877 * configure: Regenerate.
2878
28792004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
2880
2881 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
2882 and mmap() explicitly instead of relying on preset autoconf cache
2883 variables.
2884 * aclocal.m4: Regenerate.
2885 * configure: Regenerate.
2886
28872004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
2888
2889 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
2890 (ffi_check_float_struct): Remove unused prototype.
2891
28922004-06-30 Geoffrey Keating <geoffk@apple.com>
2893
2894 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
2895 character on Darwin, use '\n\t' instead.
2896
28972004-06-26 Matthias Klose <doko@debian.org>
2898
2899 * libtool-version: Fix typo in revision/age.
2900
29012004-06-17 Matthias Klose <doko@debian.org>
2902
2903 * libtool-version: New.
2904 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
2905 * Makefile.in: Regenerate.
2906
29072004-06-15 Paolo Bonzini <bonzini@gnu.org>
2908
2909 * Makefile.am: Remove useless multilib rules.
2910 * Makefile.in: Regenerate.
2911 * aclocal.m4: Regenerate with automake 1.8.5.
2912 * configure.ac: Remove useless multilib configury.
2913 * configure: Regenerate.
2914
29152004-06-15 Paolo Bonzini <bonzini@gnu.org>
2916
2917 * .cvsignore: New file.
2918
29192004-06-10 Jakub Jelinek <jakub@redhat.com>
2920
2921 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
2922 fp_done.
2923 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
2924 changed from 8.
2925
29262004-06-06 Sean McNeil <sean@mcneil.com>
2927
2928 * configure.ac: Add x86_64-*-freebsd* support.
2929 * configure: Regenerate.
2930
29312004-04-26 Joe Buck <jbuck@welsh-buck.org>
2932
2933 Bug 15093
2934 * configure.ac: Test for existence of mmap and sys/mman.h before
2935 checking blacklist. Fix suggested by Jim Wilson.
2936 * configure: Regenerate.
2937
29382004-04-26 Matt Austern <austern@apple.com>
2939
2940 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
2941 FDE location.
2942 * src/powerpc/darwin_closure.S: Likewise.
2943
29442004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
2945
2946 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
2947 error. Reported by Thomas Heller <theller@python.net>.
2948 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
2949 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
2950
29512004-03-20 Matthias Klose <doko@debian.org>
2952
2953 * src/pa/linux.S: Fix typo.
2954
29552004-03-19 Matthias Klose <doko@debian.org>
2956
2957 * Makefile.am: Update.
2958 * Makefile.in: Regenerate.
2959 * src/pa/ffi.h.in: Remove.
2960 * src/pa/ffitarget.h: New file.
2961
29622004-02-10 Randolph Chung <tausq@debian.org>
2963
2964 * Makefile.am: Add PA support.
2965 * Makefile.in: Regenerate.
2966 * include/Makefile.in: Regenerate.
2967 * configure.ac: Add PA target.
2968 * configure: Regenerate.
2969 * src/pa/ffi.c: New file.
2970 * src/pa/ffi.h.in: Add PA support.
2971 * src/pa/linux.S: New file.
2972 * prep_cif.c: Add PA support.
2973
29742004-03-16 Hosaka Yuji <hos@tamanegi.org>
2975
2976 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
2977 double.
2978 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
2979 with ecif->cif->flags.
2980 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
2981 with cif->flags.
2982 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
2983 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
2984 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
2985 sc_retstruct2b): Add for 1 or 2-bytes struct case.
2986
29872004-03-15 Kelley Cook <kcook@gcc.gnu.org>
2988
2989 * configure.in: Rename file to ...
2990 * configure.ac: ... this.
2991 * fficonfig.h.in: Regenerate.
2992 * Makefile.in: Regenerate.
2993 * include/Makefile.in: Regenerate.
2994 * testsuite/Makefile.in: Regenerate.
2995
29962004-03-12 Matt Austern <austern@apple.com>
2997
2998 * src/powerpc/darwin.S: Fix EH information so it corresponds to
2999 changes in EH format resulting from addition of linkonce support.
3000 * src/powerpc/darwin_closure.S: Likewise.
3001
30022004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
3003 Paolo Bonzini <bonzini@gnu.org>
3004
3005 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
3006 Remove VPATH. Remove rules for object files. Remove multilib support.
3007 (AM_CCASFLAGS): Add.
3008 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
3009 (AC_PREREQ): Bump version to 2.59.
3010 (AC_INIT): Fill with version info and bug address.
3011 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
3012 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
3013 De-precious CC so that the right flags are passed down to multilibs.
3014 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
3015 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
3016 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
3017 * configure: Rebuilt.
3018 * aclocal.m4: Likewise.
3019 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
3020 * fficonfig.h.in: Likewise.
3021
30222004-03-11 Andreas Schwab <schwab@suse.de>
3023
3024 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
3025 arguments from fp registers only for the first 8 parameter slots.
3026 Don't convert a float parameter when passed in memory.
3027
30282004-03-09 Hans-Peter Nilsson <hp@axis.com>
3029
3030 * configure: Regenerate for config/accross.m4 correction.
3031
30322004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
3033
3034 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
3035 ecif->cif->bytes to bytes.
3036 (ffi_prep_cif_machdep): Add braces around nested if statement.
3037
30382004-02-09 Alan Modra <amodra@bigpond.net.au>
3039
3040 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
3041
3042 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
3043 (ffi_closure_helper_LINUX64): Fix typo.
3044 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
3045 for powerpc64-*-*.
3046 * testsuite/libffi.call/float.c: Likewise.
3047 * testsuite/libffi.call/float2.c: Likewise.
3048
30492004-02-08 Alan Modra <amodra@bigpond.net.au>
3050
3051 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
3052 long double function return and long double arg handling.
3053 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
3054 Use "end_pfr" instead of "nf". Correct long double handling.
3055 Localise "temp".
3056 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
3057 return value.
3058 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
3059 space for long double return value. Adjust stack frame and offsets.
3060 Load f2 long double return.
3061
30622004-02-07 Alan Modra <amodra@bigpond.net.au>
3063
3064 * src/types.c: Use 16 byte long double for POWERPC64.
3065
30662004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3067
3068 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
3069 when the structure return address is passed in %o0.
3070 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
3071 (ffi_v9_layout_struct): Align the field following a nested structure
3072 on a word boundary. Use memmove instead of memcpy.
3073 (ffi_call): Update call to ffi_V9_return_struct.
3074 (ffi_prep_closure): Define 'ctx' only for V8.
3075 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
3076 and ffi_closure_sparc_inner_v9.
3077 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
3078 Always skip the structure return address. For structures and long
3079 doubles, copy the argument directly.
3080 (ffi_closure_sparc_inner_v9): Skip the structure return address only
3081 if required. Shift the maximum floating-point slot accordingly. For
3082 big structures, copy the argument directly; otherwise, left-justify the
3083 argument and call ffi_v9_layout_struct to lay out the structure on
3084 the stack.
3085 * src/sparc/v8.S: Undef STACKFRAME before defining it.
3086 (ffi_closure_v8): Pass the structure return address. Update call to
3087 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
3088 Skip the 'unimp' insn when returning long doubles and structures.
3089 * src/sparc/v9.S: Undef STACKFRAME before defining it.
3090 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
3091 FFI_TYPE_INT handling. Load structures both in integers and
3092 floating-point registers on return.
3093 * README: Update status of the SPARC port.
3094
30952004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
3096
3097 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
3098 as of type ffi_arg.
3099 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
3100
31012004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
3102
3103 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
3104 value as of type ffi_arg, not unsigned int.
3105
31062004-01-21 Michael Ritzert <ritzert@t-online.de>
3107
3108 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
3109 of the LHS.
3110
31112004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
3112
3113 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
3114 Solaris.
3115
31162004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3117
3118 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
3119 to void *.
3120
31212003-12-10 Richard Henderson <rth@redhat.com>
3122
3123 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
3124 size_t instead of int.
3125
31262003-12-04 Hosaka Yuji <hos@tamanegi.org>
3127
3128 * testsuite/libffi.call/many_win32.c: Include <float.h>.
3129 * testsuite/libffi.call/many_win32.c (main): Replace variable
3130 int i with unsigned long ul.
3131
3132 * testsuite/libffi.call/cls_align_uint64.c: New test case.
3133 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3134 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3135 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3136 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3137 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3138 * testsuite/libffi.call/cls_align_float.c: Likewise.
3139 * testsuite/libffi.call/cls_align_double.c: Likewise.
3140 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3141 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3142
31432003-12-02 Hosaka Yuji <hos@tamanegi.org>
3144
3145 PR other/13221
3146 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
3147 Align arguments to 32 bits.
3148
31492003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
3150
3151 PR other/13221
3152 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
3153 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3154 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3155 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3156 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3157 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3158
3159 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
3160
31612003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3162
3163 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
3164 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3165
31662003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
3167
3168 * Makefile.in: Rebuilt.
3169 * configure: Likewise.
3170 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
3171 the right type.
3172
31732003-11-21 Andreas Jaeger <aj@suse.de>
3174 Andreas Tobler <a.tobler@schweiz.ch>
3175
3176 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
3177 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
3178 * Makefile.in: Rebuilt.
3179 * aclocal.m4: Likewise.
3180 * configure: Likewise.
3181 * fficonfig.h.in: Likewise.
3182 * testsuite/lib/libffi-dg.exp: Add include dir.
3183 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
3184 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3185 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
3186 for ffi_closure if available.
3187 * testsuite/libffi.call/closure_fn1.c: Likewise.
3188 * testsuite/libffi.call/closure_fn2.c: Likewise.
3189 * testsuite/libffi.call/closure_fn3.c: Likewise.
3190 * testsuite/libffi.call/closure_fn4.c: Likewise.
3191 * testsuite/libffi.call/closure_fn5.c: Likewise.
3192 * testsuite/libffi.call/cls_12byte.c: Likewise.
3193 * testsuite/libffi.call/cls_16byte.c: Likewise.
3194 * testsuite/libffi.call/cls_18byte.c: Likewise.
3195 * testsuite/libffi.call/cls_19byte.c: Likewise.
3196 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3197 * testsuite/libffi.call/cls_20byte.c: Likewise.
3198 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3199 * testsuite/libffi.call/cls_24byte.c: Likewise.
3200 * testsuite/libffi.call/cls_2byte.c: Likewise.
3201 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3202 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3203 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3204 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3205 * testsuite/libffi.call/cls_4byte.c: Likewise.
3206 * testsuite/libffi.call/cls_5byte.c: Likewise.
3207 * testsuite/libffi.call/cls_64byte.c: Likewise.
3208 * testsuite/libffi.call/cls_6byte.c: Likewise.
3209 * testsuite/libffi.call/cls_7byte.c: Likewise.
3210 * testsuite/libffi.call/cls_8byte.c: Likewise.
3211 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3212 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3213 * testsuite/libffi.call/cls_double.c: Likewise.
3214 * testsuite/libffi.call/cls_float.c: Likewise.
3215 * testsuite/libffi.call/cls_schar.c: Likewise.
3216 * testsuite/libffi.call/cls_sint.c: Likewise.
3217 * testsuite/libffi.call/cls_sshort.c: Likewise.
3218 * testsuite/libffi.call/cls_uchar.c: Likewise.
3219 * testsuite/libffi.call/cls_uint.c: Likewise.
3220 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3221 * testsuite/libffi.call/cls_ushort.c: Likewise.
3222 * testsuite/libffi.call/nested_struct.c: Likewise.
3223 * testsuite/libffi.call/nested_struct1.c: Likewise.
3224 * testsuite/libffi.call/nested_struct2.c: Likewise.
3225 * testsuite/libffi.call/nested_struct3.c: Likewise.
3226 * testsuite/libffi.call/problem1.c: Likewise.
3227 * testsuite/libffi.special/unwindtest.cc: Likewise.
3228
32292003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
3230
3231 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
3232
32332003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
3234
3235 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
3236 Add -lgcc_s to additional flags.
3237
32382003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
3239
3240 * configure.in, include/Makefile.am: PR libgcj/11147, install
3241 the ffitarget.h header file in a gcc versioned and target
3242 dependent place.
3243 * configure: Regenerated.
3244 * Makefile.in, include/Makefile.in: Likewise.
3245 * testsuite/Makefile.in: Likewise.
3246
32472003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
3248
3249 * testsuite/libffi.call/closure_fn0.c: Print result and check
3250 with dg-output to make debugging easier.
3251 * testsuite/libffi.call/closure_fn1.c: Likewise.
3252 * testsuite/libffi.call/closure_fn2.c: Likewise.
3253 * testsuite/libffi.call/closure_fn3.c: Likewise.
3254 * testsuite/libffi.call/closure_fn4.c: Likewise.
3255 * testsuite/libffi.call/closure_fn5.c: Likewise.
3256 * testsuite/libffi.call/cls_12byte.c: Likewise.
3257 * testsuite/libffi.call/cls_16byte.c: Likewise.
3258 * testsuite/libffi.call/cls_18byte.c: Likewise.
3259 * testsuite/libffi.call/cls_19byte.c: Likewise.
3260 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3261 * testsuite/libffi.call/cls_20byte.c: Likewise.
3262 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3263 * testsuite/libffi.call/cls_24byte.c: Likewise.
3264 * testsuite/libffi.call/cls_2byte.c: Likewise.
3265 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3266 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3267 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3268 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3269 * testsuite/libffi.call/cls_4byte.c: Likewise.
3270 * testsuite/libffi.call/cls_5byte.c: Likewise.
3271 * testsuite/libffi.call/cls_64byte.c: Likewise.
3272 * testsuite/libffi.call/cls_6byte.c: Likewise.
3273 * testsuite/libffi.call/cls_7byte.c: Likewise.
3274 * testsuite/libffi.call/cls_8byte.c: Likewise.
3275 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3276 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3277 * testsuite/libffi.call/cls_double.c: Likewise.
3278 * testsuite/libffi.call/cls_float.c: Likewise.
3279 * testsuite/libffi.call/cls_schar.c: Likewise.
3280 * testsuite/libffi.call/cls_sint.c: Likewise.
3281 * testsuite/libffi.call/cls_sshort.c: Likewise.
3282 * testsuite/libffi.call/cls_uchar.c: Likewise.
3283 * testsuite/libffi.call/cls_uint.c: Likewise.
3284 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3285 * testsuite/libffi.call/cls_ushort.c: Likewise.
3286 * testsuite/libffi.call/problem1.c: Likewise.
3287
3288 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
3289 static.
3290
32912003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
3292
3293 * testsuite/libffi.call/cls_9byte2.c: New test case.
3294 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3295 * testsuite/libffi.call/cls_64byte.c: Likewise.
3296 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3297 * testsuite/libffi.call/cls_19byte.c: Likewise.
3298 * testsuite/libffi.call/cls_18byte.c: Likewise.
3299 * testsuite/libffi.call/closure_fn4.c: Likewise.
3300 * testsuite/libffi.call/closure_fn5.c: Likewise.
3301 * testsuite/libffi.call/cls_schar.c: Likewise.
3302 * testsuite/libffi.call/cls_sint.c: Likewise.
3303 * testsuite/libffi.call/cls_sshort.c: Likewise.
3304 * testsuite/libffi.call/nested_struct2.c: Likewise.
3305 * testsuite/libffi.call/nested_struct3.c: Likewise.
3306
33072003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
3308
3309 * testsuite/libffi.call/cls_double.c: Do a check on the result.
3310 * testsuite/libffi.call/cls_uchar.c: Likewise.
3311 * testsuite/libffi.call/cls_uint.c: Likewise.
3312 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3313 * testsuite/libffi.call/cls_ushort.c: Likewise.
3314 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
3315
33162003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
3317
3318 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
3319 the initialization.
3320
33212003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
3322
3323 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
3324 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
3325
33262003-10-22 David Daney <ddaney@avtrex.com>
3327
3328 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
3329 __attribute__((__mode__(__SI__))) and friends.
3330
33312003-10-22 Andreas Schwab <schwab@suse.de>
3332
3333 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
3334
33352003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
3336
3337 * configure.in: AC_LINK_FILES(ffitarget.h).
3338 * configure: Regenerate.
3339 * Makefile.in: Likewise.
3340 * include/Makefile.in: Likewise.
3341 * testsuite/Makefile.in: Likewise.
3342 * fficonfig.h.in: Likewise.
3343
33442003-10-21 Paolo Bonzini <bonzini@gnu.org>
3345 Richard Henderson <rth@redhat.com>
3346
3347 Avoid that ffi.h includes fficonfig.h.
3348
3349 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
3350 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
3351 (TARGET_SRC_MIPS_SGI): Removed.
3352 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
3353 (MIPS_SGI): Removed.
3354 (CLEANFILES): Removed.
3355 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
3356 targets.
3357 * acconfig.h: Removed.
3358 * configure.in: Compute sizeofs only for double and long double.
3359 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
3360 into AC_DEFINE instead of using acconfig.h. Create
3361 include/ffitarget.h instead of include/fficonfig.h. Rename
3362 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
3363 AC_DEFINE EH_FRAME_FLAGS.
3364 * include/Makefile.am (DISTCLEANFILES): New automake macro.
3365 (hack_DATA): Add ffitarget.h.
3366 * include/ffi.h.in: Remove all system specific definitions.
3367 Declare raw API even if it is not installed, why bother?
3368 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
3369 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
3370 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
3371 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
3372 * include/ffi_common.h (bool): Do not define.
3373 (ffi_assert): Accept failed assertion.
3374 (ffi_type_test): Return void and accept file/line.
3375 (FFI_ASSERT): Pass stringized failed assertion.
3376 (FFI_ASSERT_AT): New macro.
3377 (FFI_ASSERT_VALID_TYPE): New macro.
3378 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
3379 UINT64, SINT64): Define here with gcc's __attribute__ macro
3380 instead of in ffi.h
3381 (FLOAT32, ALIGN): Define here instead of in ffi.h
3382 * include/ffi-mips.h: Removed. Its content moved to
3383 src/mips/ffitarget.h after separating assembly and C sections.
3384 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
3385 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
3386 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
3387 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
3388 SIZEOF_ARG -> FFI_SIZEOF_ARG.
3389 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
3390 * src/debug.c (ffi_assert): Accept stringized failed assertion.
3391 (ffi_type_test): Rewritten.
3392 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
3393 FFI_ASSERT_VALID_TYPE.
3394 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
3395 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
3396 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
3397 src/s390/ffitarget.h, src/sh/ffitarget.h,
3398 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
3399 src/x86/ffitarget.h: New files.
3400 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
3401 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
3402 src/powerpc/aix.S, src/powerpc/darwin.S,
3403 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
3404 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
3405 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
3406 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
3407 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
3408 include fficonfig.h
3409
34102003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3411
3412 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
3413 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
3414
34152003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
3416
3417 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
3418 Used when FFI_DEBUG = 1.
3419
34202003-10-14 Alan Modra <amodra@bigpond.net.au>
3421
3422 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
3423 and align.
3424
34252003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3426
3427 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
3428 FFI_MIPS_O32 for O32 ABI.
3429
34302003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
3431
3432 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
3433 SPARC64. Cleanup whitespaces.
3434
34352003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
3436
3437 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
3438 strongarm, xscale. Cleanup whitespaces.
3439 * testsuite/libffi.call/closure_fn1.c: Likewise.
3440 * testsuite/libffi.call/closure_fn2.c: Likewise.
3441 * testsuite/libffi.call/closure_fn3.c: Likewise.
3442 * testsuite/libffi.call/cls_12byte.c: Likewise.
3443 * testsuite/libffi.call/cls_16byte.c: Likewise.
3444 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3445 * testsuite/libffi.call/cls_20byte.c: Likewise.
3446 * testsuite/libffi.call/cls_24byte.c: Likewise.
3447 * testsuite/libffi.call/cls_2byte.c: Likewise.
3448 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3449 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3450 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3451 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3452 * testsuite/libffi.call/cls_4byte.c: Likewise.
3453 * testsuite/libffi.call/cls_5byte.c: Likewise.
3454 * testsuite/libffi.call/cls_6byte.c: Likewise.
3455 * testsuite/libffi.call/cls_7byte.c: Likewise.
3456 * testsuite/libffi.call/cls_8byte.c: Likewise.
3457 * testsuite/libffi.call/cls_double.c: Likewise.
3458 * testsuite/libffi.call/cls_float.c: Likewise.
3459 * testsuite/libffi.call/cls_uchar.c: Likewise.
3460 * testsuite/libffi.call/cls_uint.c: Likewise.
3461 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3462 * testsuite/libffi.call/cls_ushort.c: Likewise.
3463 * testsuite/libffi.call/nested_struct.c: Likewise.
3464 * testsuite/libffi.call/nested_struct1.c: Likewise.
3465 * testsuite/libffi.call/problem1.c: Likewise.
3466 * testsuite/libffi.special/unwindtest.cc: Likewise.
3467 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
3468
34692003-09-18 David Edelsohn <edelsohn@gnu.org>
3470
3471 * src/powerpc/aix.S: Cleanup whitespaces.
3472 * src/powerpc/aix_closure.S: Likewise.
3473
34742003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
3475
3476 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
3477 * src/powerpc/darwin_closure.S: Likewise.
3478 * src/powerpc/ffi_darwin.c: Likewise.
3479
34802003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
3481 David Edelsohn <edelsohn@gnu.org>
3482
3483 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
3484 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
3485 parameter stack.
3486 * src/powerpc/darwin_closure.S: Likewise.
3487 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
3488 according to the Darwin/AIX ABI.
3489 (ffi_prep_cif_machdep): Likewise.
3490 (ffi_closure_helper_DARWIN): Likewise.
3491 Remove the outgoing parameter stack logic. Simplify the evaluation
3492 of the different CASE types.
3493 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
3494 statement in the trampoline code.
3495
34962003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
3497
3498 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
3499 for the register size.
3500 (ffi_closure_helper_SYSV): Handle the structure return value
3501 address correctly.
3502 (ffi_closure_helper_SYSV): Return the appropriate type when
3503 the registers are used for the structure return value.
3504 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
3505 the 64-bit return value. Update copyright years.
3506
35072003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3508
3509 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
3510 srcdir for ffi_mips.h.
3511
35122003-09-12 Alan Modra <amodra@bigpond.net.au>
3513
3514 * src/prep_cif.c (initialize_aggregate): Include tail padding in
3515 structure size.
3516 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
3517 placement of float result.
3518 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
3519 cast of "resp" for big-endian 64 bit machines.
3520
35212003-09-11 Alan Modra <amodra@bigpond.net.au>
3522
3523 * src/types.c (double, longdouble): Merge identical SH and ARM
3524 typedefs, and add POWERPC64.
3525 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
3526 struct split over gpr and rest.
3527 (ffi_prep_cif_machdep): Correct intarg_count for structures.
3528 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
3529
35302003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
3531
3532 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
3533 passing correctly.
3534
35352003-09-09 Alan Modra <amodra@bigpond.net.au>
3536
3537 * configure: Regenerate.
3538
35392003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
3540
3541 * Makefile.am: Remove build rules for ffitest.
3542 * Makefile.in: Rebuilt.
3543
35442003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
3545
3546 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
3547 about implicit declaration of abort().
3548
35492003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
3550
3551 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
3552 * Makefile.in: Rebuilt.
3553 * configure.in: Add dejagnu test framework.
3554 * configure: Rebuilt.
3555
3556 * testsuite/Makefile.am: New file.
3557 * testsuite/Makefile.in: Built
3558 * testsuite/lib/libffi-dg.exp: New file.
3559 * testsuite/config/default.exp: Likewise.
3560 * testsuite/libffi.call/call.exp: Likewise.
3561 * testsuite/libffi.call/ffitest.h: Likewise.
3562 * testsuite/libffi.call/closure_fn0.c: Likewise.
3563 * testsuite/libffi.call/closure_fn1.c: Likewise.
3564 * testsuite/libffi.call/closure_fn2.c: Likewise.
3565 * testsuite/libffi.call/closure_fn3.c: Likewise.
3566 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3567 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3568 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3569 * testsuite/libffi.call/cls_2byte.c: Likewise.
3570 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3571 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3572 * testsuite/libffi.call/cls_4byte.c: Likewise.
3573 * testsuite/libffi.call/cls_5byte.c: Likewise.
3574 * testsuite/libffi.call/cls_6byte.c: Likewise.
3575 * testsuite/libffi.call/cls_7byte.c: Likewise.
3576 * testsuite/libffi.call/cls_8byte.c: Likewise.
3577 * testsuite/libffi.call/cls_12byte.c: Likewise.
3578 * testsuite/libffi.call/cls_16byte.c: Likewise.
3579 * testsuite/libffi.call/cls_20byte.c: Likewise.
3580 * testsuite/libffi.call/cls_24byte.c: Likewise.
3581 * testsuite/libffi.call/cls_double.c: Likewise.
3582 * testsuite/libffi.call/cls_float.c: Likewise.
3583 * testsuite/libffi.call/cls_uchar.c: Likewise.
3584 * testsuite/libffi.call/cls_uint.c: Likewise.
3585 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3586 * testsuite/libffi.call/cls_ushort.c: Likewise.
3587 * testsuite/libffi.call/float.c: Likewise.
3588 * testsuite/libffi.call/float1.c: Likewise.
3589 * testsuite/libffi.call/float2.c: Likewise.
3590 * testsuite/libffi.call/many.c: Likewise.
3591 * testsuite/libffi.call/many_win32.c: Likewise.
3592 * testsuite/libffi.call/nested_struct.c: Likewise.
3593 * testsuite/libffi.call/nested_struct1.c: Likewise.
3594 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
3595 * testsuite/libffi.call/problem1.c: Likewise.
3596 * testsuite/libffi.call/promotion.c: Likewise.
3597 * testsuite/libffi.call/return_ll.c: Likewise.
3598 * testsuite/libffi.call/return_sc.c: Likewise.
3599 * testsuite/libffi.call/return_uc.c: Likewise.
3600 * testsuite/libffi.call/strlen.c: Likewise.
3601 * testsuite/libffi.call/strlen_win32.c: Likewise.
3602 * testsuite/libffi.call/struct1.c: Likewise.
3603 * testsuite/libffi.call/struct2.c: Likewise.
3604 * testsuite/libffi.call/struct3.c: Likewise.
3605 * testsuite/libffi.call/struct4.c: Likewise.
3606 * testsuite/libffi.call/struct5.c: Likewise.
3607 * testsuite/libffi.call/struct6.c: Likewise.
3608 * testsuite/libffi.call/struct7.c: Likewise.
3609 * testsuite/libffi.call/struct8.c: Likewise.
3610 * testsuite/libffi.call/struct9.c: Likewise.
3611 * testsuite/libffi.special/special.exp: New file.
3612 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3613 * testsuite/libffi.special/unwindtest.cc: Likewise.
3614
3615
36162003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
3617
3618 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
3619 copyright years.
3620
36212003-08-02 Alan Modra <amodra@bigpond.net.au>
3622
3623 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
3624 structure passing.
3625 (ffi_closure_helper_LINUX64): Likewise.
3626 * src/powerpc/linux64.S: Remove code writing to parm save area.
3627 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
3628 address in lr from ffi_closure_helper_LINUX64 call to calculate
3629 table address. Optimize function tail.
3630
36312003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
3632
3633 * src/sparc/ffi.c: Handle all floating point registers.
3634 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
3635
36362003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
3637
3638 * README: Note that libffi is not part of GCC. Update the project
3639 URL and status.
3640
36412003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3642
3643 * src/powerpc/ppc_closure.S: Include ffi.h.
3644
36452003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3646
3647 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
3648 Use C style comments.
3649
36502003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3651
3652 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
3653 * Makefile.in: Regenerate.
3654 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
3655 * configure: Regenerate.
3656 * include/ffi.h.in: Add SHmedia support.
3657 * src/sh64/ffi.c: New file.
3658 * src/sh64/sysv.S: New file.
3659
36602003-05-16 Jakub Jelinek <jakub@redhat.com>
3661
3662 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
3663 should be read-only.
3664 * configure: Rebuilt.
3665 * fficonfig.h.in: Rebuilt.
3666 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
3667 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
3668 * src/powerpc/linux64.S: Likewise.
3669 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
3670 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
3671 if -fpic/-fPIC/-mrelocatable.
3672 * src/powerpc/powerpc_closure.S: Likewise.
3673 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
3674 #write in .eh_frame flags.
3675 * src/sparc/v9.S: Likewise.
3676 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
3677 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
3678 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
3679
36802003-05-07 Jeff Sturm <jsturm@one-point.com>
3681
3682 Fixes PR bootstrap/10656
3683 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
3684 support for .register pseudo-op.
3685 * src/sparc/v8.S: Use it.
3686 * fficonfig.h.in: Rebuilt.
3687 * configure: Rebuilt.
3688
36892003-04-18 Jakub Jelinek <jakub@redhat.com>
3690
3691 * include/ffi.h.in (POWERPC64): Define if 64-bit.
3692 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
3693 Make it the default on POWERPC64.
3694 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
3695 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
3696 * configure: Rebuilt.
3697 * src/powerpc/ffi.c (hidden): Define.
3698 (ffi_prep_args_SYSV): Renamed from
3699 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
3700 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
3701 ASM_NEEDS_REGISTERS64): New.
3702 (ffi_prep_args64): New function.
3703 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
3704 (ffi_call): Likewise.
3705 (ffi_prep_closure): Likewise.
3706 (flush_icache): Surround by #ifndef POWERPC64.
3707 (ffi_dblfl): New union type.
3708 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
3709 (ffi_closure_helper_LINUX64): New function.
3710 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
3711 __powerpc64__.
3712 * src/powerpc/sysv.S: Likewise.
3713 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
3714 * src/powerpc/linux64.S: New file.
3715 * src/powerpc/linux64_closure.S: New file.
3716 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
3717 src/powerpc/linux64_closure.S.
3718 (TARGET_SRC_POWERPC): Likewise.
3719
3720 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
3721 closure_test_fn3): Fix result printing on big-endian 64-bit
3722 machines.
3723 (main): Print tst2_arg instead of uninitialized tst2_result.
3724
3725 * src/ffitest.c (main): Hide what closure pointer really points to
3726 from the compiler.
3727
37282003-04-16 Richard Earnshaw <rearnsha@arm.com>
3729
3730 * configure.in (arm-*-netbsdelf*): Add configuration.
3731 (configure): Regenerated.
3732
37332003-04-04 Loren J. Rittle <ljrittle@acm.org>
3734
3735 * include/Makefile.in: Regenerate.
3736
37372003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3738
3739 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
3740 bit mode.
3741 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
3742 Receive closure pointer through parameter, read args using
3743 __builtin_dwarf_cfa.
3744 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
3745
37462003-03-12 Andreas Schwab <schwab@suse.de>
3747
3748 * configure.in: Avoid trailing /. in toolexeclibdir.
3749 * configure: Rebuilt.
3750
37512003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
3752
3753 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
3754
37552003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
3756
3757 * libffi/src/powerpc/darwin_closure.S:
3758 Fix alignement bug, allocate 8 bytes for the result.
3759 * libffi/src/powerpc/aix_closure.S:
3760 Likewise.
3761 * libffi/src/powerpc/ffi_darwin.c:
3762 Update stackframe description for aix/darwin_closure.S.
3763
37642003-02-06 Jakub Jelinek <jakub@redhat.com>
3765
3766 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
3767 attribute.
3768
37692003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
3770 Andreas Schwab <schwab@suse.de>
3771
3772 * configure.in: Adjust command to source config-ml.in to account
3773 for changes to the libffi_basedir definition.
3774 (libffi_basedir): Remove ${srcdir} from value and include trailing
3775 slash if nonempty.
3776
3777 * configure: Regenerate.
3778
37792003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3780
3781 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
3782
37832003-01-28 Andrew Haley <aph@redhat.com>
3784
3785 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
3786 * src/x86/ffi64.c (ffi_prep_closure): New.
3787 (ffi_closure_UNIX64_inner): New.
3788 * src/x86/unix64.S (ffi_closure_UNIX64): New.
3789
37902003-01-27 Alexandre Oliva <aoliva@redhat.com>
3791
3792 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
3793 Remove USE_LIBDIR conditional.
3794 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
3795 * Makefile.in, configure: Rebuilt.
3796
37972003-01027 David Edelsohn <edelsohn@gnu.org>
3798
3799 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
3800 * Makefile.in: Regenerate.
3801
38022003-01-22 Andrew Haley <aph@redhat.com>
3803
3804 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
3805 unwind info.
3806
38072003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3808
3809 * src/powerpc/darwin.S: Add unwind info.
3810 * src/powerpc/darwin_closure.S: Likewise.
3811
38122003-01-14 Andrew Haley <aph@redhat.com>
3813
3814 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
3815 (ffi_prep_cif_machdep): Likewise.
3816 * src/x86/unix64.S: Add unwind info.
3817
38182003-01-14 Andreas Jaeger <aj@suse.de>
3819
3820 * src/ffitest.c (main): Only use ffi_closures if those are
3821 supported.
3822
38232003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
3824
3825 * libffi/src/ffitest.c
3826 add closure testcases
3827
38282003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
3829
3830 * libffi/src/powerpc/ffi.c
3831 fix alignment bug for float (4 byte aligned iso 8 byte)
3832
38332003-01-09 Geoffrey Keating <geoffk@apple.com>
3834
3835 * src/powerpc/ffi_darwin.c: Remove RCS version string.
3836 * src/powerpc/darwin.S: Remove RCS version string.
3837
38382003-01-03 Jeff Sturm <jsturm@one-point.com>
3839
3840 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
3841 * src/ffitest.c (main): Use static storage for closure.
3842 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
3843 * src/sparc/v8.S (ffi_closure_v8): New.
3844 * src/sparc/v9.S (ffi_closure_v9): New.
3845
38462002-11-10 Ranjit Mathew <rmathew@hotmail.com>
3847
3848 * include/ffi.h.in: Added FFI_STDCALL ffi_type
3849 enumeration for X86_WIN32.
3850 * src/x86/win32.S: Added ffi_call_STDCALL function
3851 definition.
3852 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
3853 switch cases for recognising FFI_STDCALL and
3854 calling ffi_call_STDCALL if target is X86_WIN32.
3855 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
3856 stdcall versions of the "my_strlen" and "many"
3857 test functions (for X86_WIN32).
3858 Added test cases to test stdcall invocation using
3859 these functions.
3860
38612002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
3862
3863 * src/sh/sysv.S: Add DWARF2 unwind info.
3864
38652002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
3866
3867 * src/s390/sysv.S (.eh_frame section): Make section read-only.
3868
38692002-11-26 Jim Wilson <wilson@redhat.com>
3870
3871 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
3872
38732002-11-23 H.J. Lu <hjl@gnu.org>
3874
3875 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
3876 Include ../config/accross.m4.
3877 * aclocal.m4; Rebuild.
3878 * configure: Likewise.
3879
38802002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
3881
3882 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
3883
38842002-11-11 DJ Delorie <dj@redhat.com>
3885
3886 * configure.in: Look for common files in the right place.
3887
38882002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
3889
3890 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
3891 raw data as _Jv_word values, not ffi_raw.
3892 (ffi_java_ptrarray_to_raw): Likewise.
3893 (ffi_java_rvalue_to_raw): New function.
3894 (ffi_java_raw_call): Call it.
3895 (ffi_java_raw_to_rvalue): New function.
3896 (ffi_java_translate_args): Call it.
3897 * src/ffitest.c (closure_test_fn): Interpret return value
3898 as ffi_arg, not int.
3899 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
3900 FFI_TYPE_POINTER case.
3901 (ffi_closure_helper_SYSV): Likewise. Also, assume return
3902 values extended to word size.
3903
39042002-10-02 Andreas Jaeger <aj@suse.de>
3905
3906 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
3907
39082002-10-01 Bo Thorsen <bo@smetana.suse.de>
3909
3910 * include/ffi.h.in: Fix i386 win32 compilation.
3911
39122002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
3913
3914 * configure.in: Add s390x-*-linux-* target.
3915 * configure: Regenerate.
3916 * include/ffi.h.in: Define S390X for s390x targets.
3917 (FFI_CLOSURES): Define for s390/s390x.
3918 (FFI_TRAMPOLINE_SIZE): Likewise.
3919 (FFI_NATIVE_RAW_API): Likewise.
3920 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
3921 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
3922 * src/s390/ffi.c: Major rework of existing code. Add support for
3923 s390x targets. Add closure support.
3924 * src/s390/sysv.S: Likewise.
3925
39262002-09-29 Richard Earnshaw <rearnsha@arm.com>
3927
3928 * src/arm/sysv.S: Fix typo.
3929
39302002-09-28 Richard Earnshaw <rearnsha@arm.com>
3931
3932 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
3933 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
3934 (ffi_call_SYSV): Handle soft-float.
3935
39362002-09-27 Bo Thorsen <bo@suse.de>
3937
3938 * include/ffi.h.in: Fix multilib x86-64 support.
3939
39402002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3941
3942 * Makefile.am (all-multi): Fix multilib parallel build.
3943
39442002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
3945
3946 * configure.in (sh[34]*-*-linux*): Add brackets.
3947 * configure: Regenerate.
3948
39492002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
3950
3951 * Makefile.am: Add SH support.
3952 * Makefile.in: Regenerate.
3953 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
3954 * configure: Regenerate.
3955 * include/ffi.h.in: Add SH support.
3956 * src/sh/ffi.c: New file.
3957 * src/sh/sysv.S: New file.
3958 * src/types.c: Add SH support.
3959
39602002-07-16 Bo Thorsen <bo@suse.de>
3961
3962 * src/x86/ffi64.c: New file that adds x86-64 support.
3963 * src/x86/unix64.S: New file that handles argument setup for
3964 x86-64.
3965 * src/x86/sysv.S: Don't use this on x86-64.
3966 * src/x86/ffi.c: Don't use this on x86-64.
3967 Remove unused vars.
3968 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
3969 for x86-64.
3970 * src/ffitest.c (struct6): New test that tests a special case in
3971 the x86-64 ABI.
3972 (struct7): Likewise.
3973 (struct8): Likewise.
3974 (struct9): Likewise.
3975 (closure_test_fn): Silence warning about this when it's not used.
3976 (main): Add the new tests.
3977 (main): Fix a couple of wrong casts and silence some compiler warnings.
3978 * include/ffi.h.in: Add x86-64 ABI definition.
3979 * fficonfig.h.in: Regenerate.
3980 * Makefile.am: Add x86-64 support.
3981 * configure.in: Likewise.
3982 * Makefile.in: Regenerate.
3983 * configure: Likewise.
3984
39852002-06-24 Bo Thorsen <bo@suse.de>
3986
3987 * src/types.c: Merge settings for similar architectures.
3988 Add x86-64 sizes and alignments.
3989
39902002-06-23 Bo Thorsen <bo@suse.de>
3991
3992 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
3993 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
3994 * src/mips/ffi.c (ffi_prep_args): Likewise.
3995 * src/m68k/ffi.c (ffi_prep_args): Likewise.
3996
39972002-07-18 H.J. Lu (hjl@gnu.org)
3998
3999 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
4000 (libffi_la_SOURCES): Support MIPS_LINUX.
4001 (libffi_convenience_la_SOURCES): Likewise.
4002 * Makefile.in: Regenerated.
4003
4004 * configure.in (mips64*-*): Skip.
4005 (mips*-*-linux*): New.
4006 * configure: Regenerated.
4007
4008 * src/mips/ffi.c: Include <sgidefs.h>.
4009
40102002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
4011
4012 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
4013
40142002-05-27 Roger Sayle <roger@eyesopen.com>
4015
4016 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
4017
40182002-05-27 Bo Thorsen <bo@suse.de>
4019
4020 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
4021 fix formatting.
4022
40232002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
4024
4025 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
4026 beginning of function (for older apple cc).
4027
40282002-05-08 Alexandre Oliva <aoliva@redhat.com>
4029
4030 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
4031 script entry, and set LD to it when configuring multilibs.
4032 * configure: Rebuilt.
4033
40342002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
4035
4036 * configure.in (sparc64-*-netbsd*): Add target.
4037 (sparc-*-netbsdelf*): Likewise.
4038 * configure: Regenerate.
4039
40402002-04-28 David S. Miller <davem@redhat.com>
4041
4042 * configure.in, configure: Fix SPARC test in previous change.
4043
40442002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
4045
4046 * Makefile.am: Add Linux for S/390 support.
4047 * Makefile.in: Regenerate.
4048 * configure.in: Add Linux for S/390 support.
4049 * configure: Regenerate.
4050 * include/ffi.h.in: Add Linux for S/390 support.
4051 * src/s390/ffi.c: New file from libffi CVS tree.
4052 * src/s390/sysv.S: New file from libffi CVS tree.
4053
40542002-04-28 Jakub Jelinek <jakub@redhat.com>
4055
4056 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
4057 %r_disp32().
4058 * src/sparc/v8.S: Use it.
4059 * src/sparc/v9.S: Likewise.
4060 * fficonfig.h.in: Rebuilt.
4061 * configure: Rebuilt.
4062
40632002-04-08 Hans Boehm <Hans_Boehm@hp.com>
4064
4065 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
4066 correctly.
4067 * src/ia64/unix.S: Add unwind information. Fix comments.
4068 Save sp in a way that's compatible with unwind info.
4069 (ffi_call_unix): Correctly restore sp in all cases.
4070 * src/ia64/ffi.c: Add, fix comments.
4071
40722002-04-08 Jakub Jelinek <jakub@redhat.com>
4073
4074 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
4075
40762002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
4077
4078 * configure.in (alpha*-*-netbsd*): Add target.
4079 * configure: Regenerate.
4080
40812002-04-04 Jeff Sturm <jsturm@one-point.com>
4082
4083 * src/sparc/v8.S: Add unwind info.
4084 * src/sparc/v9.S: Likewise.
4085
40862002-03-30 Krister Walfridsson <cato@df.lth.se>
4087
4088 * configure.in: Enable i*86-*-netbsdelf*.
4089 * configure: Rebuilt.
4090
40912002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
4092
4093 PR other/2620
4094 * src/mips/n32.s: Delete
4095 * src/mips/o32.s: Delete
4096
40972002-03-21 Loren J. Rittle <ljrittle@acm.org>
4098
4099 * configure.in: Enable alpha*-*-freebsd*.
4100 * configure: Rebuilt.
4101
41022002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4103
4104 * Makefile.am: libfficonvenience -> libffi_convenience.
4105 * Makefile.in: Rebuilt.
4106
4107 * Makefile.am: Define ffitest_OBJECTS.
4108 * Makefile.in: Rebuilt.
4109
41102002-03-07 Andreas Tobler <toa@pop.agri.ch>
4111 David Edelsohn <edelsohn@gnu.org>
4112
4113 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
4114 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
4115 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
4116 * Makefile.in: Regenerate.
4117 * include/ffi.h.in: Add AIX and Darwin closure definitions.
4118 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
4119 (flush_icache, flush_range): New functions.
4120 (ffi_closure_helper_DARWIN): New function.
4121 * src/powerpc/aix_closure.S: New file.
4122 * src/powerpc/darwin_closure.S: New file.
4123
41242002-02-24 Jeff Sturm <jsturm@one-point.com>
4125
4126 * include/ffi.h.in: Add typedef for ffi_arg.
4127 * src/ffitest.c (main): Declare rint with ffi_arg.
4128
41292002-02-21 Andreas Tobler <toa@pop.agri.ch>
4130
4131 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
4132 number of GPRs for floating-point arguments.
4133
41342002-01-31 Anthony Green <green@redhat.com>
4135
4136 * configure: Rebuilt.
4137 * configure.in: Replace CHECK_SIZEOF and endian tests with
4138 cross-compiler friendly macros.
4139 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
4140 macros.
4141
41422002-01-18 David Edelsohn <edelsohn@gnu.org>
4143
4144 * src/powerpc/darwin.S (_ffi_call_AIX): New.
4145 * src/powerpc/aix.S (ffi_call_DARWIN): New.
4146
41472002-01-17 David Edelsohn <edelsohn@gnu.org>
4148
4149 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
4150 (TARGET_SRC_POWERPC_AIX): New.
4151 (POWERPC_AIX): New stanza.
4152 * Makefile.in: Regenerate.
4153 * configure.in: Add AIX case.
4154 * configure: Regenerate.
4155 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
4156 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
4157 size. Fix "long double" support.
4158 (ffi_call): Add FFI_AIX case.
4159 * src/powerpc/aix.S: New.
4160
41612001-10-09 John Hornkvist <john@toastedmarshmallow.com>
4162
4163 Implement Darwin PowerPC ABI.
4164 * configure.in: Handle powerpc-*-darwin*.
4165 * Makefile.am: Set source files for POWERPC_DARWIN.
4166 * configure: Rebuilt.
4167 * Makefile.in: Rebuilt.
4168 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
4169 POWERPC_DARWIN.
4170 * src/powerpc/darwin.S: New file.
4171 * src/powerpc/ffi_darwin.c: New file.
4172
41732001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
4174
4175 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
4176
41772001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4178
4179 * src/x86/sysv.S: Avoid gas-only .balign directive.
4180 Use C style comments.
4181
41822001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4183
4184 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
4185 Fixes PR bootstrap/3563.
4186
41872001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4188
4189 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
4190
41912001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4192
4193 * configure.in: Recognize sparc*-sun-* host.
4194 * configure: Regenerate.
4195
41962001-06-06 Andrew Haley <aph@redhat.com>
4197
4198 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
4199
42002001-06-03 Andrew Haley <aph@redhat.com>
4201
4202 * src/alpha/osf.S: Add unwind info.
4203 * src/powerpc/sysv.S: Add unwind info.
4204 * src/powerpc/ppc_closure.S: Likewise.
4205
42062000-05-31 Jeff Sturm <jsturm@one-point.com>
4207
4208 * configure.in: Fix AC_ARG_ENABLE usage.
4209 * configure: Rebuilt.
4210
42112001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4212
4213 * configure.in: Remove warning about beta code.
4214 * configure: Rebuilt.
4215
42162001-04-25 Hans Boehm <Hans_Boehm@hp.com>
4217
4218 * src/ia64/unix.S: Restore stack pointer when returning from
4219 ffi_closure_UNIX.
4220 * src/ia64/ffi.c: Fix typo in comment.
4221
42222001-04-18 Jim Wilson <wilson@redhat.com>
4223
4224 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
4225 to eliminate RAW DV.
4226
42272001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
4228
4229 * Makefile.am: Make a libtool convenience library.
4230 * Makefile.in: Rebuilt.
4231
42322001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
4233
4234 * configure.in: Use different syntax for subdirectory creation.
4235 * configure: Rebuilt.
4236
42372001-03-27 Jon Beniston <jon@beniston.com>
4238
4239 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
4240 * configure: Rebuilt.
4241 * Makefile.am: Added X86_WIN32 target support.
4242 * Makefile.in: Rebuilt.
4243
4244 * include/ffi.h.in: Added X86_WIN32 target support.
4245
4246 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
4247 * src/types.c: Added X86_WIN32 target support.
4248
4249 * src/x86/win32.S: New file. Based on sysv.S, but with EH
4250 stuff removed and made to work with CygWin's gas.
4251
42522001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
4253
4254 * configure.in: Make target subdirectory in build dir.
4255 * Makefile.am: Override suffix based rules to specify correct output
4256 subdirectory.
4257 * Makefile.in: Rebuilt.
4258 * configure: Rebuilt.
4259
42602001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
4261
4262 * src/powerpc/ppc_closure.S: New file.
4263 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
4264 involving long long and register pairs.
4265 (ffi_prep_closure): New function.
4266 (flush_icache): Likewise.
4267 (ffi_closure_helper_SYSV): Likewise.
4268 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
4269 (FFI_TRAMPOLINE_SIZE): Likewise.
4270 (FFI_NATIVE_RAW_API): Likewise.
4271 * Makefile.in: Rebuilt.
4272 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
4273 (TARGET_SRC_POWERPC): Likewise.
4274
42752001-03-19 Tom Tromey <tromey@redhat.com>
4276
4277 * Makefile.in: Rebuilt.
4278 * Makefile.am (ffitest_LDFLAGS): New macro.
4279
42802001-03-02 Nick Clifton <nickc@redhat.com>
4281
4282 * include/ffi.h.in: Remove RCS ident string.
4283 * include/ffi_mips.h: Remove RCS ident string.
4284 * src/debug.c: Remove RCS ident string.
4285 * src/ffitest.c: Remove RCS ident string.
4286 * src/prep_cif.c: Remove RCS ident string.
4287 * src/types.c: Remove RCS ident string.
4288 * src/alpha/ffi.c: Remove RCS ident string.
4289 * src/alpha/osf.S: Remove RCS ident string.
4290 * src/arm/ffi.c: Remove RCS ident string.
4291 * src/arm/sysv.S: Remove RCS ident string.
4292 * src/mips/ffi.c: Remove RCS ident string.
4293 * src/mips/n32.S: Remove RCS ident string.
4294 * src/mips/o32.S: Remove RCS ident string.
4295 * src/sparc/ffi.c: Remove RCS ident string.
4296 * src/sparc/v8.S: Remove RCS ident string.
4297 * src/sparc/v9.S: Remove RCS ident string.
4298 * src/x86/ffi.c: Remove RCS ident string.
4299 * src/x86/sysv.S: Remove RCS ident string.
4300
43012001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
4302
4303 * include/ffi.h.in: Change sourceware.cygnus.com references to
4304 gcc.gnu.org.
4305
43062000-12-09 Richard Henderson <rth@redhat.com>
4307
4308 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
4309 (ffi_closure_osf_inner): Index rather than increment avalue
4310 and arg_types. Give ffi_closure_osf the raw return value type.
4311 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
4312 promotion.
4313
43142000-12-07 Richard Henderson <rth@redhat.com>
4315
4316 * src/raw_api.c (ffi_translate_args): Fix typo.
4317 (ffi_prep_closure): Likewise.
4318
4319 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
4320 FFI_TRAMPOLINE_SIZE.
4321 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
4322 cif->bytes for new ffi_call_osf implementation.
4323 (ffi_prep_args): Absorb into ...
4324 (ffi_call): ... here. Do all stack allocation here and
4325 avoid a callback function.
4326 (ffi_prep_closure, ffi_closure_osf_inner): New.
4327 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
4328 (ffi_closure_osf): New.
4329
43302000-09-10 Alexandre Oliva <aoliva@redhat.com>
4331
4332 * config.guess, config.sub, install-sh: Removed.
4333 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
4334 * Makefile.in: Rebuilt.
4335
4336 * acinclude.m4: Include libtool macros from the top level.
4337 * aclocal.m4, configure: Rebuilt.
4338
43392000-08-22 Alexandre Oliva <aoliva@redhat.com>
4340
4341 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
4342 * configure: Rebuilt.
4343
43442000-05-11 Scott Bambrough <scottb@netwinder.org>
4345
4346 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
4347 memory correctly. Use conditional instructions, not branches where
4348 possible.
4349
43502000-05-04 Tom Tromey <tromey@cygnus.com>
4351
4352 * configure: Rebuilt.
4353 * configure.in: Match `arm*-*-linux-*'.
4354 From Chris Dornan <cdornan@arm.com>.
4355
43562000-04-28 Jakub Jelinek <jakub@redhat.com>
4357
4358 * Makefile.am (SUBDIRS): Define.
4359 (AM_MAKEFLAGS): Likewise.
4360 (Multilib support.): Add section.
4361 * Makefile.in: Rebuilt.
4362 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
4363 New variables. Set for gcc using -print-multi-lib. Export them
4364 to libtool.
4365 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
4366 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
4367 for -shared links.
4368 (extra_compiler_flags_value, extra_compiler_flags): Check these
4369 for extra compiler options which need to be passed down in
4370 compiler_flags.
4371
43722000-04-16 Anthony Green <green@redhat.com>
4373
4374 * configure: Rebuilt.
4375 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
4376
43772000-04-14 Jakub Jelinek <jakub@redhat.com>
4378
4379 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
4380 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
4381 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
4382 Replace all void * sizeofs with sizeof(int).
4383 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
4384 different than DOUBLE.
4385 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
4386 (ffi_prep_args_v9): New function.
4387 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
4388 (ffi_V9_return_struct): New function.
4389 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
4390 32bit code (not yet cross-arch calls).
4391 * src/sparc/v8.S: Add struct return delay nop.
4392 Handle long long.
4393 * src/sparc/v9.S: New file.
4394 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
4395 is used on sparc64 only for structures larger than 32 bytes.
4396 Pass by reference for structures is done for structure arguments
4397 larger than 16 bytes.
4398 * src/ffitest.c (main): Use 64bit rint on sparc64.
4399 Run long long tests on sparc.
4400 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
4401 sparc64.
4402 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
4403 on sparc64.
4404 * configure.in (sparc-*-linux*): New supported target.
4405 (sparc64-*-linux*): Likewise.
4406 * configure: Rebuilt.
4407 * Makefile.am: Add v9.S to SPARC files.
4408 * Makefile.in: Likewise.
4409 (LINK): Surround $(CCLD) into double quotes, so that multilib
4410 compiles work correctly.
4411
44122000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
4413
4414 * configure: Rebuilt.
4415 * configure.in: (i*86-*-solaris*): New libffi target. Patch
4416 proposed by Bryce McKinlay.
4417
44182000-03-20 Tom Tromey <tromey@cygnus.com>
4419
4420 * Makefile.in: Hand edit for java_raw_api.lo.
4421
44222000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
4423
4424 * config.guess, config.sub: Update from the gcc tree.
4425 Fix for PR libgcj/168.
4426
44272000-03-03 Tom Tromey <tromey@cygnus.com>
4428
4429 * Makefile.in: Fixed ia64 by hand.
4430
4431 * configure: Rebuilt.
4432 * configure.in (--enable-multilib): New option.
4433 (libffi_basedir): New subst.
4434 (AC_OUTPUT): Added multilib code.
4435
44362000-03-02 Tom Tromey <tromey@cygnus.com>
4437
4438 * Makefile.in: Rebuilt.
4439 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
4440 directory name.
4441
44422000-02-25 Hans Boehm <boehm@acm.org>
4443
4444 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
4445 files.
4446 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
4447 list.
4448 (ffi_prep_raw_closure): Use ffi_translate_args, not
4449 ffi_closure_translate.
4450 * src/java_raw_api.c: New file.
4451 * src/ffitest.c (closure_test_fn): New function.
4452 (main): Define `rint' as long long on IA64. Added new test when
4453 FFI_CLOSURES is defined.
4454 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
4455 (ffi_abi): Recognize IA64.
4456 (ffi_raw): Added `flt' field.
4457 Added "Java raw API" code.
4458 * configure.in: Recognize ia64.
4459 * Makefile.am (TARGET_SRC_IA64): New macro.
4460 (libffi_la_common_SOURCES): Added java_raw_api.c.
4461 (libffi_la_SOURCES): Define in IA64 case.
4462
44632000-01-04 Tom Tromey <tromey@cygnus.com>
4464
4465 * Makefile.in: Rebuilt with newer automake.
4466
44671999-12-31 Tom Tromey <tromey@cygnus.com>
4468
4469 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
4470
44711999-09-01 Tom Tromey <tromey@cygnus.com>
4472
4473 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
4474 undefs.
4475 * fficonfig.h.in: Rebuilt.
4476 * configure: Rebuilt.
4477 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
4478 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
4479 * acconfig.h: Don't #undef PACKAGE or VERSION.
4480
44811999-08-09 Anthony Green <green@cygnus.com>
4482
4483 * include/ffi.h.in: Try to work around messy header problem
4484 with PACKAGE and VERSION.
4485
4486 * configure: Rebuilt.
4487 * configure.in: Change version to 2.00-beta.
4488
4489 * fficonfig.h.in: Rebuilt.
4490 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
4491
4492 * src/x86/ffi.c (ffi_raw_call): Rename.
4493
44941999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
4495
4496 * src/x86/ffi.c (ffi_closure_SYSV): New function.
4497 (ffi_prep_incoming_args_SYSV): Ditto.
4498 (ffi_prep_closure): Ditto.
4499 (ffi_closure_raw_SYSV): Ditto.
4500 (ffi_prep_raw_closure): More ditto.
4501 (ffi_call_raw): Final ditto.
4502
4503 * include/ffi.h.in: Add definitions for closure and raw API.
4504
4505 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
4506 FFI_TYPE_UINT64.
4507
4508 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
4509
4510 * src/raw_api.c: New file.
4511
4512 * include/ffi.h.in (ffi_raw): New type.
4513 (UINT_ARG, SINT_ARG): New defines.
4514 (ffi_closure, ffi_raw_closure): New types.
4515 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
4516
4517 * configure.in: Add check for endianness and sizeof void*.
4518
4519 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
4520 instead of directly.
4521
4522 * configure: Rebuilt.
4523
4524Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
4525
4526 * configure.in: Add x86 and powerpc BeOS configurations.
4527 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
4528
45291999-05-09 Anthony Green <green@cygnus.com>
4530
4531 * configure.in: Add warning about this being beta code.
4532 Remove src/Makefile.am from the picture.
4533 * configure: Rebuilt.
4534
4535 * Makefile.am: Move logic from src/Makefile.am. Add changes
4536 to support libffi as a target library.
4537 * Makefile.in: Rebuilt.
4538
4539 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
4540 Upgraded to new autoconf, automake, libtool.
4541
4542 * README: Tweaks.
4543
4544 * LICENSE: Update copyright date.
4545
4546 * src/Makefile.am, src/Makefile.in: Removed.
4547
45481998-11-29 Anthony Green <green@cygnus.com>
4549
4550 * include/ChangeLog: Removed.
4551 * src/ChangeLog: Removed.
4552 * src/mips/ChangeLog: Removed.
4553 * src/sparc/ChangeLog: Remboved.
4554 * src/x86/ChangeLog: Removed.
4555
4556 * ChangeLog.v1: Created.