blob: f3df0e6542a9004495aadfce7efffefa47c4808b [file] [log] [blame]
Anthony Greena6e56b92011-02-09 15:00:42 -050012011-02-09 Anthony Green <green@moxielogic.com>
2
3 * configure.ac: Add powerpc64-*-darwin* support.
4
Anthony Green0cad4382011-02-09 06:11:46 -050052011-02-09 Anthony Green <green@moxielogic.com>
Anthony Green11062292011-02-08 19:20:09 -05006
Anthony Green747d6c32011-02-09 14:56:23 -05007 * README: Mention Interix.
8
92011-02-09 Jonathan Callen <abcd@gentoo.org>
10
11 * configure.ac: Add Interix to win32/cygwin/mingw case.
12 * configure: Ditto.
13 * src/closures.c: Treat Interix like Cygwin, instead of as a
14 generic win32.
15
162011-02-09 Anthony Green <green@moxielogic.com>
17
Anthony Green69dbe842011-02-09 07:38:43 -050018 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail.
19 * testsuite/libffi.call/err_bad_abi.c: Remove xfail.
20 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define.
21 (ffi_prep_closure_loc): Check for bad ABI.
22 * src/prep_cif.c (UNLIKELY, LIKELY): Define.
23 (initialize_aggregate): Check for bad types.
Anthony Green0cad4382011-02-09 06:11:46 -050024
252011-02-09 Landon Fuller <landonf@macports.org>
26
27 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh,
28 src/arm/trampoline.S.
29 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S.
30 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define.
31 * src/arm/ffi.c (ffi_trampoline_table)
32 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry)
33 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET)
34 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables)
35 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free):
36 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS).
37 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case
38 separately.
39 * src/arm/sysv.S: Handle Apple iOS host.
40 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case.
Anthony Greenf4983182011-02-09 06:26:46 -050041 * build-ios.sh: New file.
Anthony Green0cad4382011-02-09 06:11:46 -050042 * fficonfig.h.in, configure, Makefile.in: Rebuilt.
Anthony Green69dbe842011-02-09 07:38:43 -050043 * README: Mention ARM iOS.
Anthony Green11062292011-02-08 19:20:09 -050044
Anthony Greendc411e82011-02-08 10:49:29 -0500452011-02-08 Oren Held <orenhe@il.ibm.com>
46
47 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid
48 redefinition of mallinfo on HP-UX.
49
Anthony Green404585d2011-02-08 10:44:36 -0500502011-02-08 Ginn Chen <ginn.chen@oracle.com>
51
52 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio
53 aggregate return ABI.
54
Anthony Green19ce7132011-02-08 10:34:23 -0500552011-02-08 Ed <ed@kdtc.net>
56
57 * src/powerpc/asm.h: Fix grammar nit in comment.
58
Anthony Green89284fe2011-02-08 10:19:19 -0500592011-02-08 Uli Link <ul.mcamafia@linkitup.de>
60
61 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use.
62
Anthony Greened2c5182011-02-08 10:10:07 -0500632011-02-08 Rafael Avila de Espindola <respindola@mozilla.com>
64
65 * configure.ac: Fix x86 test for pc related relocs.
66 * confifure: Rebuilt.
67
Anthony Green3b836242011-02-08 14:28:59 -0500682011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
69
70 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
71 Handle case when CPU variant does not have long double support.
72 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
73 and cores with soft floating point.
74
752011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com>
76
77 * configure.ac: Add mips*-*-rtems* support.
78 * configure: Regenerate.
79 * src/mips/ffitarget.h: Ensure needed constants are available
80 for targets which do not have sgidefs.h.
81
Anthony Green0e584392011-02-08 07:52:40 -0500822011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
83
84 PR target/40125
85 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
86 * configure: Regenerate.
87
882010-12-18 Iain Sandoe <iains@gcc.gnu.org>
89
90 PR libffi/29152
91 PR libffi/42378
92 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
93 update comments.
94 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
95 (FFI_TRAMPOLINE_SIZE): Update for Darwin64.
96 * src/powerpc/darwin.S: Provide Darwin64 implementation,
97 update comments.
98 * src/powerpc/ffi_darwin.c: Likewise.
99
1002010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
101
102 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
103 backslashes.
104 (libffi_cv_as_string_pseudo_op): Likewise.
105 * configure: Regenerate.
106
1072010-12-03 Chung-Lin Tang <cltang@codesourcery.com>
108
109 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
110 (ffi_closure_VFP): Same.
111 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
112 directive.
113
1142010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
115
116 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
117 (PRIuPTR): Define.
118
1192010-11-29 Richard Henderson <rth@redhat.com>
120 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
121
122 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
123 (.eh_frame): Use FDE_ENCODING.
124 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.
125
Anthony Green5b9cd522010-11-22 15:19:57 -05001262010-11-22 Jacek Caban <jacek@codeweavers.com>
127
128 * configure.ac: Check for symbol underscores on mingw-w64.
129 * configure: Rebuilt.
130 * src/x86/win64.S: Correctly access extern symbols in respect to
131 underscores.
132
Anthony Green2db72612010-11-21 10:50:56 -05001332010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
134
135 * testsuite/lib/libffi-dg.exp: Rename ...
136 * testsuite/lib/libffi.exp: ... to this.
137 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
138 * libffi/testsuite/libffi.special/special.exp: Likewise.
139
1402010-10-28 Chung-Lin Tang <cltang@codesourcery.com>
141
142 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling
143 code, new parameter, and return value. Update comments.
144 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add
145 call to layout_vfp_args().
146 (ffi_call_SYSV): Update declaration.
147 (ffi_call_VFP): New declaration.
148 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP()
149 when ABI is FFI_VFP.
150 (ffi_closure_VFP): New declaration.
151 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to
152 ffi_prep_incoming_args_SYSV().
153 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument
154 case handling.
155 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline
156 construction under VFP hard-float.
157 (rec_vfp_type_p): New function.
158 (vfp_type_p): Same.
159 (place_vfp_arg): Same.
160 (layout_vfp_args): Same.
161 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI
162 based on __ARM_PCS_VFP.
163 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific
164 fields.
165 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code.
166 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same.
167 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to
168 direct call. Move function pointer load upwards.
169 (ffi_call_VFP): New function.
170 (ffi_closure_VFP): Same.
171
172 * testsuite/lib/libffi-dg.exp (check-flags): New function.
173 (dg-skip-if): New function.
174 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-*
175 and compiler options include -mfloat-abi=hard.
176 * testsuite/libffi.call/cls_longdouble_va.c: Same.
177
1782010-10-01 Jakub Jelinek <jakub@redhat.com>
179
180 PR libffi/45677
181 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
182 a multiple of 8.
183 * testsuite/libffi.call/many2.c: New test.
184
1852010-08-20 Mark Wielaard <mjw@redhat.com>
186
187 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
188 returns NULL.
189
1902010-08-09 Andreas Tobler <andreast@fgznet.ch>
191
192 * configure.ac: Add target powerpc64-*-freebsd*.
193 * configure: Regenerate.
194 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
195 -mlong-double-128 only to linux targets.
196 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
197 * testsuite/libffi.call/cls_longdouble.c: Likewise.
198 * testsuite/libffi.call/huge_struct.c: Likewise.
199
Anthony Green00d0b592010-08-05 14:56:53 -04002002010-08-05 Dan Witte <dwitte@mozilla.com>
201
202 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the
203 debug CRT when --enable-debug is given.
204 * configure.ac: Define it.
205 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately.
206
Anthony Greenc1d28ba2010-08-05 08:48:16 -04002072010-08-04 Dan Witte <dwitte@mozilla.com>
208
209 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64
210 platforms.
211 * src/x86/ffi.c: Remove redundant ifdef checks.
212 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c
213 for X86_ANY so return value space doesn't get added twice.
214
Anthony Greenbda487e2010-08-05 09:02:41 -04002152010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk>
216
217 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy.
218
Anthony Greend14178b2010-07-23 09:14:00 -04002192010-07-22 Dan Witte <dwitte@mozilla.com>
220
221 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI.
222 * src/prep_cif.c: Fix ABI assertion.
223 * src/cris/ffi.c: Ditto.
224
Anthony Greeneaf444e2010-07-10 08:59:09 -04002252010-07-10 Evan Phoenix <evan@fallingsnow.net>
226
227 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug.
228
Anthony Green5feacad2010-08-05 08:30:04 -04002292010-07-07 Dan Horák <dan@danny.cz>
230
231 * include/ffi.h.in: Protect #define with #ifndef.
232 * src/powerpc/ffitarget.h: Ditto.
233 * src/s390/ffitarget.h: Ditto.
234 * src/sparc/ffitarget.h: Ditto.
235
Anthony Green2db72612010-11-21 10:50:56 -05002362010-07-07 Neil Roberts <neil@linux.intel.com>
237
238 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
239 16-bytes.
240
2412010-07-02 Jakub Jelinek <jakub@redhat.com>
242
243 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
244 * Makefile.in: Regenerated.
245
2462010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
247
248 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
249 output, too.
250 (libffi_cv_as_ascii_pseudo_op): Check for .ascii.
251 (libffi_cv_as_string_pseudo_op): Check for .string.
252 * configure: Regenerate.
253 * fficonfig.h.in: Regenerate.
254 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.
255
Anthony Green10ea8482010-08-05 08:24:27 -04002562010-05-11 Dan Witte <dwitte@mozilla.com>
257
258 * doc/libffi.tex: Document previous change.
259
2602010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp>
261
262 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value.
263
Anthony Green63097412010-05-05 20:14:56 -04002642010-05-05 Michael Kohler <michaelkohler@live.com>
265
266 * src/dlmalloc.c (dlfree): Fix spelling.
267 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto.
268 * configure.ac: Ditto.
269 * configure: Rebuilt.
270
Anthony Greenf2c2a4f2010-04-13 10:19:28 -04002712010-04-13 Dan Witte <dwitte@mozilla.com>
272
273 * msvcc.sh: Build with -W3 instead of -Wall.
274 * src/powerpc/ffi_darwin.c: Remove build warnings.
275 * src/x86/ffi.c: Ditto.
276 * src/x86/ffitarget.h: Ditto.
277
Anthony Green2db72612010-11-21 10:50:56 -05002782010-04-12 Dan Witte <dwitte@mozilla.com>
279 Walter Meinl <wuno@lsvw.de>
Anthony Greenc0b69e52010-03-30 08:30:22 -0400280
Anthony Green2db72612010-11-21 10:50:56 -0500281 * configure.ac: Add OS/2 support.
282 * configure: Rebuilt.
283 * src/closures.c: Ditto.
284 * src/dlmalloc.c: Ditto.
285 * src/x86/win32.S: Ditto.
Anthony Green3f5b1372010-07-12 14:39:18 -0400286
2872010-04-07 Jakub Jelinek <jakub@redhat.com>
288
Anthony Green2db72612010-11-21 10:50:56 -0500289 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
Anthony Green3f5b1372010-07-12 14:39:18 -0400290
2912010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
292
293 * Makefile.in: Regenerate.
294 * aclocal.m4: Regenerate.
295 * include/Makefile.in: Regenerate.
296 * man/Makefile.in: Regenerate.
297 * testsuite/Makefile.in: Regenerate.
298
Anthony Green2db72612010-11-21 10:50:56 -05002992010-03-30 Dan Witte <dwitte@mozilla.com>
300
301 * msvcc.sh: Disable build warnings.
302 * README (tested): Clarify windows build procedure.
303
Anthony Green3f5b1372010-07-12 14:39:18 -04003042010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
305
306 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
307 * configure: Regenerate.
308 * fficonfig.h.in: Regenerate.
309 * libffi/src/x86/unix64.S (.eh_frame)
310 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.
311
Anthony Green2db72612010-11-21 10:50:56 -05003122010-03-14 Matthias Klose <doko@ubuntu.com>
313
314 * src/x86/ffi64.c: Fix typo in comment.
315 * src/x86/ffi.c: Use /* ... */ comment style.
316
Anthony Green9dc9a292010-04-13 10:33:52 -04003172010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
318
319 * doc/libffi.texi (The Closure API): Fix typo.
320 * doc/libffi.info: Remove.
321
3222010-02-15 Matthias Klose <doko@ubuntu.com>
323
324 * src/arm/sysv.S (__ARM_ARCH__): Define for processor
325 __ARM_ARCH_7EM__.
326
Anthony Green2db72612010-11-21 10:50:56 -05003272010-01-15 Anthony Green <green@redhat.com>
328
329 * README: Add notes on building with Microsoft Visual C++.
330
3312010-01-15 Daniel Witte <dwitte@mozilla.com>
332
333 * msvcc.sh: New file.
334
335 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef.
336 * src/x86/ffi.c: Tweak function declaration and remove excess
337 parens.
338 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct
339 ffi_closure.
340
341 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new
342 function ffi_call_win32 on X86_WIN32.
343 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32.
344 (ffi_call_STDCALL): Remove.
345
346 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code
347 to ffi_prep_cif_machdep for x86.
348 * src/x86/ffi.c (ffi_prep_cif_machdep): To here.
349
3502010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk>
351
352 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for
Anthony Green0e584392011-02-08 07:52:40 -0500353 Sun Studio compiler compatibility.
Anthony Green2db72612010-11-21 10:50:56 -0500354
3552010-01-12 Conrad Irwin <conrad.irwin@gmail.com>
356
357 * doc/libffi.texi: Add closure example.
358
Anthony Green7b7a42f2010-01-12 09:14:14 -05003592010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
360
361 PR libffi/40701
362 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
363 PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
364 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
365 alpha*-dec-osf*.
366 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
367 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
368 * testsuite/libffi.call/return_ll1.c: Likewise.
369 * testsuite/libffi.call/stret_medium2.c: Likewise.
370 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
371 MAP_FAILED to char *.
372
3732010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
374
375 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
376
Anthony Greenc3042af2010-01-01 08:08:02 -05003772009-12-31 Anthony Green <green@redhat.com>
378
379 * README: Update for libffi 3.0.9.
380
3812009-12-27 Matthias Klose <doko@ubuntu.com>
382
383 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when
384 appropriate.
385 * configure: Rebuilt.
386
3872009-12-26 Anthony Green <green@redhat.com>
388
389 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for
390 avr32*-*-*.
391 * testsuite/libffi.call/cls_double_va.c: Ditto.
392
3932009-12-26 Andreas Tobler <a.tobler@schweiz.org>
394
395 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h
396 and inttypes.h.
397 * testsuite/libffi.special/unwindtest.cc: Ditto.
398
3992009-12-26 Andreas Tobler <a.tobler@schweiz.org>
400
401 * configure.ac: Add amd64-*-openbsd*.
402 * configure: Rebuilt.
403 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link
404 openbsd programs with -lpthread.
405
4062009-12-26 Anthony Green <green@redhat.com>
407
408 * testsuite/libffi.call/cls_double_va.c,
409 testsuite/libffi.call/cls_longdouble.c,
410 testsuite/libffi.call/cls_longdouble_va.c,
411 testsuite/libffi.call/cls_pointer.c,
412 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for
413 mips*-*-* and arm*-*-*.
414 * testsuite/libffi.call/cls_align_longdouble_split.c,
415 testsuite/libffi.call/cls_align_longdouble_split2.c,
416 testsuite/libffi.call/stret_medium2.c,
417 testsuite/libffi.call/stret_medium.c,
418 testsuite/libffi.call/stret_large.c,
419 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*.
420
4212009-12-31 Kay Tietz <ktietz70@googlemail.com>
422
423 * testsuite/libffi.call/ffitest.h,
424 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix
425 definitions.
426
4272009-12-31 Carlo Bramini <carlo.bramix@libero.it>
428
429 * configure.ac (AM_LTLDFLAGS): Define for windows hosts.
430 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS.
431 * configure: Rebuilt.
432 * Makefile.in: Rebuilt.
433
4342009-12-31 Anthony Green <green@redhat.com>
435 Blake Chaffin.
436
437 * testsuite/libffi.call/huge_struct.c: New test case from Blake
438 Chaffin @ Apple.
439
Anthony Green0cfe60e2009-12-29 10:06:04 -05004402009-12-28 David Edelsohn <edelsohn@gnu.org>
441
442 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
443 local variables.
444 (aix_adjust_aggregate_sizes): New function.
445 (ffi_prep_cif_machdep): Call it.
446
4472009-12-26 Andreas Tobler <a.tobler@schweiz.org>
448
449 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
450 * configure: Regenerate.
451 * fficonfig.h.in: Likewise.
452 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
453 Solaris/x86.
454
4552009-12-26 Andreas Schwab <schwab@linux-m68k.org>
456
457 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
458 when a float arguments is passed in memory.
459 (ffi_closure_helper_SYSV): Mark general registers as used up when
460 a 64bit or soft-float long double argument is passed in memory.
461
Anthony Green9458d882009-12-26 07:02:27 -05004622009-12-25 Matthias Klose <doko@ubuntu.com>
463
464 * man/ffi_call.3: Fix #include in examples.
465 * doc/libffi.texi: Add dircategory.
466
4672009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl>
468
469 * include/ffi.h.in: Placed '__GNUC__' ifdef around
470 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for
471 IRIX MIPSPro c99.
472 * include/ffi_common.h: Added '__sgi' define to non
473 '__attribute__((__mode__()))' integer typedefs.
Anthony Green0cfe60e2009-12-29 10:06:04 -0500474 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32,
Anthony Green9458d882009-12-26 07:02:27 -0500475 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check.
476 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added
477 FFI_LONGDOUBLE support and alignment(N32 only).
478 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and
479 fixed non '__attribute__((__mode__()))' integer typedefs.
480 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
481 since they are Linux/GNU Assembler specific.
482
4832009-12-25 Bradley Smith <brad@brad-smith.co.uk>
484
485 * configure.ac, Makefile.am, src/avr32/ffi.c,
486 src/avr32/ffitarget.h,
487 src/avr32/sysv.S: Add AVR32 port.
488 * configure, Makefile.in: Rebuilt.
489
Anthony Green115ab362009-12-24 00:22:00 -05004902009-12-21 Andreas Tobler <a.tobler@schweiz.org>
491
492 * configure.ac: Make i?86 build on FreeBSD and OpenBSD.
493 * configure: Regenerate.
494
4952009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
496
497 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.
498
4992009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
500
501 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE
502 type on HP-UX.
503
5042009-12-11 Eric Botcazou <ebotcazou@adacore.com>
505
506 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long
507 double' arguments.
508
5092009-12-11 Eric Botcazou <ebotcazou@adacore.com>
510
511 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
512
5132009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
514
515 PR libffi/40700
516 * src/closures.c [X86_64 && __sun__ && __svr4__]
517 (FFI_MMAP_EXEC_WRIT): Define.
518
5192009-12-08 David Daney <ddaney@caviumnetworks.com>
520
521 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
522 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
523 * testsuite/libffi.call/stret_large.c: Same.
524 * testsuite/libffi.call/cls_align_longdouble_split.c: Same.
525 * testsuite/libffi.call/stret_large2.c: Same.
526 * testsuite/libffi.call/stret_medium2.c: Same.
527
5282009-12-07 David Edelsohn <edelsohn@gnu.org>
529
530 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump
531 typo.
532
5332009-12-05 David Edelsohn <edelsohn@gnu.org>
534
535 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64
536 code.
537 * src/powerpc/aix_closure.S: Same.
538
5392009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
540
541 * Makefile.in: Regenerate.
542 * configure: Regenerate.
543 * include/Makefile.in: Regenerate.
544 * man/Makefile.in: Regenerate.
545 * testsuite/Makefile.in: Regenerate.
546
5472009-12-04 David Edelsohn <edelsohn@gnu.org>
548
549 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match
Anthony Green0cfe60e2009-12-29 10:06:04 -0500550 linux64_closure.S.
Anthony Green115ab362009-12-24 00:22:00 -0500551
5522009-12-04 Uros Bizjak <ubizjak@gmail.com>
553
554 PR libffi/41908
555 * src/x86/ffi64.c (classify_argument): Update from
556 gcc/config/i386/i386.c.
557 (ffi_closure_unix64_inner): Do not use the address of two consecutive
558 SSE registers directly.
559 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
560 for x86_64 linux targets.
561
5622009-12-04 David Edelsohn <edelsohn@gnu.org>
563
564 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment
565 pfr for long double split between fpr13 and stack.
566
5672009-12-03 David Edelsohn <edelsohn@gnu.org>
568
569 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and
570 fparg_count twice for long double.
571
5722009-12-03 David Edelsohn <edelsohn@gnu.org>
573
574 PR libffi/42243
575 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses.
576
5772009-12-03 Uros Bizjak <ubizjak@gmail.com>
578
579 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
580 Remove xfails for x86 linux targets.
581
5822009-12-02 David Edelsohn <edelsohn@gnu.org>
583
584 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64
585 case.
586
5872009-12-01 David Edelsohn <edelsohn@gnu.org>
588
589 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard
590 register usage. Call ffi_prep_args directly. Add long double
591 return value support.
592 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment
593 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo.
594 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases.
595 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit
596 mode.
597 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp
598 into case.
599 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment.
600 Allocate result area between params and FPRs.
601
6022009-11-30 David Edelsohn <edelsohn@gnu.org>
603
604 PR target/35484
605 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and
606 AIX64.
607 * src/powerpc/aix.S: Implement AIX64 version.
608 * src/powerpc/aix_closure.S: Implement AIX64 version.
609 (ffi_closure_ASM): Use extsb, lha and displament addresses.
610 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64
611 support.
612 (ffi_prep_cif_machdep): Same.
613 (ffi_call): Same.
614 (ffi_closure_helper_DARWIN): Same.
615
6162009-11-02 Andreas Tobler <a.tobler@schweiz.org>
617
618 PR libffi/41908
619 * testsuite/libffi.call/testclosure.c: New test.
620
Anthony Greenc6dddbd2009-10-04 08:11:33 -04006212009-09-28 Kai Tietz <kai.tietz@onevision.com>
622
623 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
624 assembly version use of ___chkstk.
625
6262009-09-23 Matthias Klose <doko@ubuntu.com>
627
628 PR libffi/40242, PR libffi/41443
629 * src/arm/sysv.S (__ARM_ARCH__): Define for processors
630 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__,
631 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__.
632 Change the conditionals to __SOFTFP__ || __ARM_EABI__
633 for -mfloat-abi=softfp to work.
634
6352009-09-17 Loren J. Rittle <ljrittle@acm.org>
636
637 PR testsuite/32843 (strikes again)
638 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to
639 enable proper extension on char and short.
640
6412009-09-15 David Daney <ddaney@caviumnetworks.com>
642
643 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special
644 handling for FFI_TYPE_POINTER.
645 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT,
646 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT,
647 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT,
648 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines.
649 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations.
650 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float.
651 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float
652 structure and pointer returns.
653 (ffi_closure_N32): Add handling for pointer returns.
654 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags,
655 calc_n32_return_struct_flags): Handle soft-float.
656 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling.
657 (ffi_call_N32): Declare proper argument types.
658 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle
659 soft-float.
660
6612009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
662
663 * configure.ac (AC_PREREQ): Bump to 2.64.
664
6652009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
666
667 * Makefile.am (install-html, install-pdf): Remove.
668 * Makefile.in: Regenerate.
669
670 * Makefile.in: Regenerate.
671 * aclocal.m4: Regenerate.
672 * configure: Regenerate.
673 * fficonfig.h.in: Regenerate.
674 * include/Makefile.in: Regenerate.
675 * man/Makefile.in: Regenerate.
676 * testsuite/Makefile.in: Regenerate.
677
6782009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
679
680 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
681
6822009-07-24 Dave Korn <dave.korn.cygwin@gmail.com>
683
684 PR libffi/40807
685 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending
686 return types for X86_WIN32.
687 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types.
688 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV,
689 _ffi_closure_STDCALL): Likewise.
690
691 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin.
692 (dlmmap, dlmunmap): Also use these functions on Cygwin.
693
6942009-07-11 Richard Sandiford <rdsandiford@googlemail.com>
695
696 PR testsuite/40699
697 PR testsuite/40707
698 PR testsuite/40709
699 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and
700 2009-06-30 commits.
701
7022009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com>
703
704 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path
705 to "" before adding paths. (This reinstates an assignment that
706 was removed by my 2009-06-30 commit, but changes the initial
707 value from "." to "".)
708
7092009-07-01 H.J. Lu <hongjiu.lu@intel.com>
710
711 PR testsuite/40601
712 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set
713 gccdir. Adjust ld_library_path for gcc only if gccdir isn't
714 empty.
715
7162009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com>
717
718 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "."
719 to ld_library_path. Use add_path. Add just find_libgcc_s
720 to ld_library_path, not every libgcc multilib directory.
721
7222009-06-16 Wim Lewis <wiml@hhhh.org>
723
724 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are
725 supposed to be callee-saved.
726 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of
727 return buffer for odd-size structs.
728
7292009-06-16 Andreas Tobler <a.tobler@schweiz.org>
730
731 PR libffi/40444
732 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add
733 allow_stack_execute for Darwin.
734
7352009-06-16 Andrew Haley <aph@redhat.com>
736
737 * configure.ac (TARGETDIR): Add missing blank lines.
738 * configure: Regenerate.
739
7402009-06-16 Andrew Haley <aph@redhat.com>
741
742 * testsuite/libffi.call/cls_align_sint64.c,
743 testsuite/libffi.call/cls_align_uint64.c,
744 testsuite/libffi.call/cls_longdouble_va.c,
745 testsuite/libffi.call/cls_ulonglong.c,
746 testsuite/libffi.call/return_ll1.c,
747 testsuite/libffi.call/stret_medium2.c: Fix printf format
748 specifiers.
749 * testsuite/libffi.call/ffitest.h,
750 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
751
7522009-06-15 Andrew Haley <aph@redhat.com>
753
754 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
755 * testsuite/libffi.call/err_bad_abi.c: Likewise.
Anthony Green0cfe60e2009-12-29 10:06:04 -0500756
Anthony Greenc6dddbd2009-10-04 08:11:33 -04007572009-06-12 Andrew Haley <aph@redhat.com>
758
759 * Makefile.am: Remove info_TEXINFOS.
760
7612009-06-12 Andrew Haley <aph@redhat.com>
762
763 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
764 testsuite/libffi.call/cls_align_uint64.c,
765 testsuite/libffi.call/cls_ulonglong.c,
766 testsuite/libffi.call/return_ll1.c,
767 testsuite/libffi.call/stret_medium2.c: Fix printf format
768 specifiers.
769 testsuite/libffi.special/unwindtest.cc: include stdint.h.
770
7712009-06-11 Timothy Wall <twall@users.sf.net>
772
773 * Makefile.am,
Anthony Green0cfe60e2009-12-29 10:06:04 -0500774 configure.ac,
775 include/ffi.h.in,
776 include/ffi_common.h,
777 src/closures.c,
778 src/dlmalloc.c,
779 src/x86/ffi.c,
780 src/x86/ffitarget.h,
781 src/x86/win64.S (new),
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400782 README: Added win64 support (mingw or MSVC)
Anthony Green0cfe60e2009-12-29 10:06:04 -0500783 * Makefile.in,
784 include/Makefile.in,
785 man/Makefile.in,
786 testsuite/Makefile.in,
787 configure,
788 aclocal.m4: Regenerated
789 * ltcf-c.sh: properly escape cygwin/w32 path
790 * man/ffi_call.3: Clarify size requirements for return value.
791 * src/x86/ffi64.c: Fix filename in comment.
792 * src/x86/win32.S: Remove unused extern.
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400793
Anthony Green0cfe60e2009-12-29 10:06:04 -0500794 * testsuite/libffi.call/closure_fn0.c,
795 testsuite/libffi.call/closure_fn1.c,
796 testsuite/libffi.call/closure_fn2.c,
797 testsuite/libffi.call/closure_fn3.c,
798 testsuite/libffi.call/closure_fn4.c,
799 testsuite/libffi.call/closure_fn5.c,
800 testsuite/libffi.call/closure_fn6.c,
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400801 testsuite/libffi.call/closure_stdcall.c,
802 testsuite/libffi.call/cls_12byte.c,
803 testsuite/libffi.call/cls_16byte.c,
804 testsuite/libffi.call/cls_18byte.c,
805 testsuite/libffi.call/cls_19byte.c,
806 testsuite/libffi.call/cls_1_1byte.c,
807 testsuite/libffi.call/cls_20byte.c,
808 testsuite/libffi.call/cls_20byte1.c,
809 testsuite/libffi.call/cls_24byte.c,
810 testsuite/libffi.call/cls_2byte.c,
811 testsuite/libffi.call/cls_3_1byte.c,
812 testsuite/libffi.call/cls_3byte1.c,
813 testsuite/libffi.call/cls_3byte2.c,
814 testsuite/libffi.call/cls_4_1byte.c,
815 testsuite/libffi.call/cls_4byte.c,
816 testsuite/libffi.call/cls_5_1_byte.c,
817 testsuite/libffi.call/cls_5byte.c,
818 testsuite/libffi.call/cls_64byte.c,
819 testsuite/libffi.call/cls_6_1_byte.c,
820 testsuite/libffi.call/cls_6byte.c,
821 testsuite/libffi.call/cls_7_1_byte.c,
822 testsuite/libffi.call/cls_7byte.c,
823 testsuite/libffi.call/cls_8byte.c,
824 testsuite/libffi.call/cls_9byte1.c,
825 testsuite/libffi.call/cls_9byte2.c,
826 testsuite/libffi.call/cls_align_double.c,
827 testsuite/libffi.call/cls_align_float.c,
828 testsuite/libffi.call/cls_align_longdouble.c,
829 testsuite/libffi.call/cls_align_longdouble_split.c,
830 testsuite/libffi.call/cls_align_longdouble_split2.c,
831 testsuite/libffi.call/cls_align_pointer.c,
832 testsuite/libffi.call/cls_align_sint16.c,
833 testsuite/libffi.call/cls_align_sint32.c,
834 testsuite/libffi.call/cls_align_sint64.c,
835 testsuite/libffi.call/cls_align_uint16.c,
836 testsuite/libffi.call/cls_align_uint32.c,
837 testsuite/libffi.call/cls_align_uint64.c,
838 testsuite/libffi.call/cls_dbls_struct.c,
839 testsuite/libffi.call/cls_double.c,
840 testsuite/libffi.call/cls_double_va.c,
841 testsuite/libffi.call/cls_float.c,
842 testsuite/libffi.call/cls_longdouble.c,
843 testsuite/libffi.call/cls_longdouble_va.c,
844 testsuite/libffi.call/cls_multi_schar.c,
845 testsuite/libffi.call/cls_multi_sshort.c,
846 testsuite/libffi.call/cls_multi_sshortchar.c,
847 testsuite/libffi.call/cls_multi_uchar.c,
848 testsuite/libffi.call/cls_multi_ushort.c,
849 testsuite/libffi.call/cls_multi_ushortchar.c,
850 testsuite/libffi.call/cls_pointer.c,
851 testsuite/libffi.call/cls_pointer_stack.c,
852 testsuite/libffi.call/cls_schar.c,
853 testsuite/libffi.call/cls_sint.c,
854 testsuite/libffi.call/cls_sshort.c,
855 testsuite/libffi.call/cls_uchar.c,
856 testsuite/libffi.call/cls_uint.c,
857 testsuite/libffi.call/cls_ulonglong.c,
858 testsuite/libffi.call/cls_ushort.c,
859 testsuite/libffi.call/err_bad_abi.c,
860 testsuite/libffi.call/err_bad_typedef.c,
861 testsuite/libffi.call/float2.c,
862 testsuite/libffi.call/huge_struct.c,
863 testsuite/libffi.call/nested_struct.c,
864 testsuite/libffi.call/nested_struct1.c,
865 testsuite/libffi.call/nested_struct10.c,
866 testsuite/libffi.call/nested_struct2.c,
867 testsuite/libffi.call/nested_struct3.c,
868 testsuite/libffi.call/nested_struct4.c,
869 testsuite/libffi.call/nested_struct5.c,
870 testsuite/libffi.call/nested_struct6.c,
871 testsuite/libffi.call/nested_struct7.c,
872 testsuite/libffi.call/nested_struct8.c,
873 testsuite/libffi.call/nested_struct9.c,
874 testsuite/libffi.call/problem1.c,
875 testsuite/libffi.call/return_ldl.c,
876 testsuite/libffi.call/return_ll1.c,
877 testsuite/libffi.call/stret_large.c,
878 testsuite/libffi.call/stret_large2.c,
879 testsuite/libffi.call/stret_medium.c,
880 testsuite/libffi.call/stret_medium2.c,
Anthony Green0cfe60e2009-12-29 10:06:04 -0500881 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
882 of checking for MMAP. Use intptr_t instead of long casts.
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400883
8842009-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
885
886 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
887 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
888 * testsuite/libffi.call/err_bad_typedef.c: Likewise.
889
8902009-06-09 Andrew Haley <aph@redhat.com>
891
892 * src/x86/freebsd.S: Add missing file.
893
8942009-06-08 Andrew Haley <aph@redhat.com>
895
896 Import from libffi 3.0.8:
897
898 * doc/libffi.texi: New file.
899 * doc/libffi.info: Likewise.
900 * doc/stamp-vti: Likewise.
901 * man/Makefile.am: New file.
902 * man/ffi_call.3: New file.
903
904 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S,
905 src/dlmalloc.c.
906 (nodist_libffi_la_SOURCES): Add X86_FREEBSD.
907
908 * configure.ac: Bump version to 3.0.8.
909 parisc*-*-linux*: Add.
910 i386-*-freebsd* | i386-*-openbsd*: Add.
911 powerpc-*-beos*: Add.
912 AM_CONDITIONAL X86_FREEBSD: Add.
913 AC_CONFIG_FILES: Add man/Makefile.
914
915 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void).
916
9172009-06-08 Andrew Haley <aph@redhat.com>
918
919 * README: Import from libffi 3.0.8.
920
9212009-06-08 Andrew Haley <aph@redhat.com>
922
923 * testsuite/libffi.call/err_bad_abi.c: Add xfails.
924 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
925 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
926 * testsuite/libffi.call/err_bad_typedef.c: Add xfails.
927
928 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
929 * testsuite/libffi.call/stret_medium.c: Likewise.
930 * testsuite/libffi.call/stret_large2.c: Likewise.
931 * testsuite/libffi.call/stret_large.c: Likewise.
932
9332008-12-26 Timothy Wall <twall@users.sf.net>
934
Anthony Green0cfe60e2009-12-29 10:06:04 -0500935 * testsuite/libffi.call/cls_longdouble.c,
936 testsuite/libffi.call/cls_longdouble_va.c,
937 testsuite/libffi.call/cls_align_longdouble.c,
938 testsuite/libffi.call/cls_align_longdouble_split.c,
939 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
940 failures on x86_64 cygwin/mingw.
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400941
9422008-12-22 Timothy Wall <twall@users.sf.net>
943
Anthony Green0cfe60e2009-12-29 10:06:04 -0500944 * testsuite/libffi.call/closure_fn0.c,
945 testsuite/libffi.call/closure_fn1.c,
946 testsuite/libffi.call/closure_fn2.c,
947 testsuite/libffi.call/closure_fn3.c,
948 testsuite/libffi.call/closure_fn4.c,
949 testsuite/libffi.call/closure_fn5.c,
950 testsuite/libffi.call/closure_fn6.c,
951 testsuite/libffi.call/closure_loc_fn0.c,
952 testsuite/libffi.call/closure_stdcall.c,
953 testsuite/libffi.call/cls_align_pointer.c,
954 testsuite/libffi.call/cls_pointer.c,
955 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
956 pointer to integer (intptr_t).
957 * testsuite/libffi.call/cls_longdouble.c: disable for win64.
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400958
9592008-07-24 Anthony Green <green@redhat.com>
960
Anthony Green0cfe60e2009-12-29 10:06:04 -0500961 * testsuite/libffi.call/cls_dbls_struct.c,
962 testsuite/libffi.call/cls_double_va.c,
963 testsuite/libffi.call/cls_longdouble.c,
964 testsuite/libffi.call/cls_longdouble_va.c,
965 testsuite/libffi.call/cls_pointer.c,
966 testsuite/libffi.call/cls_pointer_stack.c,
967 testsuite/libffi.call/err_bad_abi.c: Clean up failures from
968 compiler warnings.
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400969
9702008-03-04 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -0500971 Blake Chaffin
972 hos@tamanegi.org
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400973
Anthony Green0cfe60e2009-12-29 10:06:04 -0500974 * testsuite/libffi.call/cls_align_longdouble_split2.c
975 testsuite/libffi.call/cls_align_longdouble_split.c
976 testsuite/libffi.call/cls_dbls_struct.c
977 testsuite/libffi.call/cls_double_va.c
978 testsuite/libffi.call/cls_longdouble.c
979 testsuite/libffi.call/cls_longdouble_va.c
980 testsuite/libffi.call/cls_pointer.c
981 testsuite/libffi.call/cls_pointer_stack.c
982 testsuite/libffi.call/err_bad_abi.c
983 testsuite/libffi.call/err_bad_typedef.c
984 testsuite/libffi.call/stret_large2.c
985 testsuite/libffi.call/stret_large.c
986 testsuite/libffi.call/stret_medium2.c
987 testsuite/libffi.call/stret_medium.c: New tests from Apple.
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400988
9892009-06-05 Andrew Haley <aph@redhat.com>
990
991 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from
992 libffi.
993
9942009-06-04 Andrew Haley <aph@redhat.com>
995
996 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out
997 stdcall changes.
998
9992008-02-26 Anthony Green <green@redhat.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001000 Thomas Heller <theller@ctypes.org>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001001
Anthony Green0cfe60e2009-12-29 10:06:04 -05001002 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
1003 comment.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001004
10052008-02-03 Timothy Wall <twall@users.sf.net>
1006
Anthony Green0cfe60e2009-12-29 10:06:04 -05001007 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
1008 offset based on code pointer, not data pointer.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001009
10102008-01-31 Timothy Wall <twall@users.sf.net>
1011
Anthony Green0cfe60e2009-12-29 10:06:04 -05001012 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
1013 closures.
1014 * src/x86/ffitarget.h: Increase size of trampoline for stdcall
1015 closures.
1016 * src/x86/win32.S: Add assembly for stdcall closure.
1017 * src/x86/ffi.c: Initialize stdcall closure trampoline.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001018
10192009-06-04 Andrew Haley <aph@redhat.com>
1020
1021 * include/ffi.h.in: Change void (*)() to void (*)(void).
1022 * src/x86/ffi.c: Likewise.
1023
10242009-06-04 Andrew Haley <aph@redhat.com>
1025
1026 * src/powerpc/ppc_closure.S: Insert licence header.
1027 * src/powerpc/linux64_closure.S: Likewise.
1028 * src/m68k/sysv.S: Likewise.
1029
1030 * src/sh64/ffi.c: Change void (*)() to void (*)(void).
1031 * src/powerpc/ffi.c: Likewise.
1032 * src/powerpc/ffi_darwin.c: Likewise.
1033 * src/m32r/ffi.c: Likewise.
1034 * src/sh64/ffi.c: Likewise.
1035 * src/x86/ffi64.c: Likewise.
1036 * src/alpha/ffi.c: Likewise.
1037 * src/alpha/osf.S: Likewise.
1038 * src/frv/ffi.c: Likewise.
1039 * src/s390/ffi.c: Likewise.
1040 * src/pa/ffi.c: Likewise.
1041 * src/pa/hpux32.S: Likewise.
1042 * src/ia64/unix.S: Likewise.
1043 * src/ia64/ffi.c: Likewise.
1044 * src/sparc/ffi.c: Likewise.
1045 * src/mips/ffi.c: Likewise.
1046 * src/sh/ffi.c: Likewise.
1047
10482008-02-15 David Daney <ddaney@avtrex.com>
1049
Anthony Green0cfe60e2009-12-29 10:06:04 -05001050 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
1051 Define (conditionally), and use it to include cachectl.h.
1052 (ffi_prep_closure_loc): Fix cache flushing.
1053 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001054
10552009-06-04 Andrew Haley <aph@redhat.com>
1056
1057 include/ffi.h.in,
1058 src/arm/ffitarget.h,
1059 src/arm/ffi.c,
1060 src/arm/sysv.S,
1061 src/powerpc/ffitarget.h,
1062 src/closures.c,
1063 src/sh64/ffitarget.h,
1064 src/sh64/ffi.c,
1065 src/sh64/sysv.S,
1066 src/types.c,
1067 src/x86/ffi64.c,
1068 src/x86/ffitarget.h,
1069 src/x86/win32.S,
1070 src/x86/darwin.S,
1071 src/x86/ffi.c,
1072 src/x86/sysv.S,
1073 src/x86/unix64.S,
1074 src/alpha/ffitarget.h,
1075 src/alpha/ffi.c,
1076 src/alpha/osf.S,
1077 src/m68k/ffitarget.h,
1078 src/frv/ffitarget.h,
1079 src/frv/ffi.c,
1080 src/s390/ffitarget.h,
1081 src/s390/sysv.S,
1082 src/cris/ffitarget.h,
1083 src/pa/linux.S,
1084 src/pa/ffitarget.h,
1085 src/pa/ffi.c,
1086 src/raw_api.c,
1087 src/ia64/ffitarget.h,
1088 src/ia64/unix.S,
1089 src/ia64/ffi.c,
1090 src/ia64/ia64_flags.h,
1091 src/java_raw_api.c,
1092 src/debug.c,
1093 src/sparc/v9.S,
1094 src/sparc/ffitarget.h,
1095 src/sparc/ffi.c,
1096 src/sparc/v8.S,
1097 src/mips/ffitarget.h,
1098 src/mips/n32.S,
1099 src/mips/o32.S,
1100 src/mips/ffi.c,
1101 src/prep_cif.c,
1102 src/sh/ffitarget.h,
1103 src/sh/ffi.c,
1104 src/sh/sysv.S: Update license text.
1105
11062009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
1107
1108 * src/x86/win32.S (_ffi_closure_STDCALL): New function.
1109 (.eh_frame): Add FDE for it.
1110
11112009-05-22 Dave Korn <dave.korn.cygwin@gmail.com>
1112
1113 * configure.ac: Also check if assembler supports pc-relative
1114 relocs on X86_WIN32 targets.
1115 * configure: Regenerate.
1116 * src/x86/win32.S (ffi_prep_args): Declare extern, not global.
1117 (_ffi_call_SYSV): Add missing function type symbol .def and
1118 add EH markup labels.
1119 (_ffi_call_STDCALL): Likewise.
1120 (_ffi_closure_SYSV): Likewise.
1121 (_ffi_closure_raw_SYSV): Likewise.
1122 (.eh_frame): Add hand-crafted EH data.
1123
11242009-04-09 Jakub Jelinek <jakub@redhat.com>
1125
1126 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to
1127 version 3 of the GNU General Public License and to point readers
1128 at the COPYING3 file and the FSF's license web page.
1129 * testsuite/libffi.call/call.exp: Likewise.
1130 * testsuite/libffi.special/special.exp: Likewise.
1131
11322009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1133
1134 * configure: Regenerate.
1135
11362008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1137
1138 PR libffi/26048
1139 * configure.ac (HAVE_AS_X86_PCREL): New test.
1140 * configure: Regenerate.
1141 * fficonfig.h.in: Regenerate.
1142 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate
1143 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET,
1144 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler.
1145 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1146 * src/x86/unix64.S (.Lstore_table): Move to .text section.
1147 (.Lload_table): Likewise.
1148 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL.
1149
11502008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1151
1152 * configure: Regenerate.
1153
11542008-11-21 Eric Botcazou <ebotcazou@adacore.com>
1155
1156 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for
1157 signed/unsigned int8/16 return values.
1158 * src/sparc/v8.S (ffi_call_v8): Likewise.
1159 (ffi_closure_v8): Likewise.
1160
11612008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
Anthony Green0cfe60e2009-12-29 10:06:04 -05001162 Steve Ellcey <sje@cup.hp.com>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001163
1164 * configure: Regenerate for new libtool.
1165 * Makefile.in: Ditto.
1166 * include/Makefile.in: Ditto.
1167 * aclocal.m4: Ditto.
1168
11692008-08-25 Andreas Tobler <a.tobler@schweiz.org>
1170
1171 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
1172 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
1173 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
1174 Adjust copyright notice.
1175 * src/powerpc/ffi.c: Add two new flags to indicate if we have one
1176 register or two register to use for FFI_SYSV structs.
1177 (ffi_prep_cif_machdep): Pass the right register flag introduced above.
1178 (ffi_closure_helper_SYSV): Fix the return type for
1179 FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
1180 Adjust copyright notice.
1181
11822008-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
1183
1184 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
1185 int.
1186
11872008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1188
1189 * configure: Regenerate.
1190 * include/Makefile.in: Regenerate.
1191 * testsuite/Makefile.in: Regenerate.
1192
11932008-06-07 Joseph Myers <joseph@codesourcery.com>
1194
1195 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
1196 powerpc-*-beos*): Remove.
1197 * configure: Regenerate.
1198
11992008-05-09 Julian Brown <julian@codesourcery.com>
1200
1201 * Makefile.am (LTLDFLAGS): New.
1202 (libffi_la_LDFLAGS): Use above.
1203 * Makefile.in: Regenerate.
1204
12052008-04-18 Paolo Bonzini <bonzini@gnu.org>
1206
1207 PR bootstrap/35457
1208 * aclocal.m4: Regenerate.
1209 * configure: Regenerate.
1210
12112008-03-26 Kaz Kojima <kkojima@gcc.gnu.org>
1212
1213 * src/sh/sysv.S: Add .note.GNU-stack on Linux.
1214 * src/sh64/sysv.S: Likewise.
1215
12162008-03-26 Daniel Jacobowitz <dan@debian.org>
1217
1218 * src/arm/sysv.S: Fix ARM comment marker.
1219
12202008-03-26 Jakub Jelinek <jakub@redhat.com>
1221
1222 * src/alpha/osf.S: Add .note.GNU-stack on Linux.
1223 * src/s390/sysv.S: Likewise.
1224 * src/powerpc/ppc_closure.S: Likewise.
1225 * src/powerpc/sysv.S: Likewise.
1226 * src/x86/unix64.S: Likewise.
1227 * src/x86/sysv.S: Likewise.
1228 * src/sparc/v8.S: Likewise.
1229 * src/sparc/v9.S: Likewise.
1230 * src/m68k/sysv.S: Likewise.
1231 * src/arm/sysv.S: Likewise.
1232
12332008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1234
1235 * aclocal.m4: Regenerate.
1236 * configure: Likewise.
1237 * Makefile.in: Likewise.
1238 * include/Makefile.in: Likewise.
1239 * testsuite/Makefile.in: Likewise.
1240
12412008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de>
1242 Andreas Tobler <a.tobler@schweiz.org>
1243
1244 * configure.ac: Add amd64-*-freebsd* target.
1245 * configure: Regenerate.
1246
12472008-01-30 H.J. Lu <hongjiu.lu@intel.com>
1248
1249 PR libffi/34612
1250 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
1251 returning struct.
1252
1253 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
1254 tests.
1255
12562008-01-24 David Edelsohn <edelsohn@gnu.org>
1257
1258 * configure: Regenerate.
1259
12602008-01-06 Andreas Tobler <a.tobler@schweiz.org>
1261
1262 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko.
1263
12642008-01-05 Andreas Tobler <a.tobler@schweiz.org>
1265
1266 PR testsuite/32843
1267 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for
1268 signed/unsigned int8/16 for X86_DARWIN.
1269 Updated copyright info.
1270 Handle one and two byte structs with special cif->flags.
1271 * src/x86/ffitarget.h: Add special types for one and two byte structs.
1272 Updated copyright info.
1273 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like
1274 sysv.S
1275 Remove code to pop args from the stack after call.
1276 Special-case signed/unsigned for int8/16, one and two byte structs.
1277 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1278 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1279 FFI_TYPE_SINT32.
1280 Updated copyright info.
1281
12822007-12-08 David Daney <ddaney@avtrex.com>
1283
Anthony Green0cfe60e2009-12-29 10:06:04 -05001284 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001285 SUBU, add with ADDU and use smaller code sequences.
1286
12872007-12-07 David Daney <ddaney@avtrex.com>
1288
1289 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return
1290 type.
1291
12922007-12-06 David Daney <ddaney@avtrex.com>
1293
1294 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already
1295 defined.
1296 (ffi_java_raw): New typedef.
1297 (ffi_java_raw_call, ffi_java_ptrarray_to_raw,
1298 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
1299 ffi_java_raw.
1300 (ffi_java_raw_closure) : Same.
1301 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
1302 parameter types.
1303 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with
1304 FFI_SIZEOF_JAVA_RAW.
1305 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
1306 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
1307 sizeof(ffi_java_raw) for alignment calculations.
1308 (ffi_java_ptrarray_to_raw): Same.
1309 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
Anthony Green0cfe60e2009-12-29 10:06:04 -05001310 if FFI_SIZEOF_JAVA_RAW == 4.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001311 (ffi_java_raw_to_rvalue): Same.
1312 (ffi_java_raw_call): Change type of raw to ffi_java_raw.
1313 (ffi_java_translate_args): Same.
1314 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
1315 parameter types.
1316 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.
1317
13182007-12-06 David Daney <ddaney@avtrex.com>
1319
Anthony Green0cfe60e2009-12-29 10:06:04 -05001320 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001321 pointer values.
1322
13232007-12-01 Andreas Tobler <a.tobler@schweiz.org>
1324
1325 PR libffi/31937
1326 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
1327 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
1328 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
1329 set the NUM_FPR_ARG_REGISTERS according to.
1330 Add support for potential soft-float support under hard-float
1331 architecture.
1332 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
1333 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
1334 to the FFI_LINUX_SOFT_FLOAT ABI.
1335 (ffi_prep_cif_machdep): Likewise.
1336 (ffi_closure_helper_SYSV): Likewise.
1337 * src/powerpc/ppc_closure.S: Make sure not to store float/double
1338 on archs where __NO_FPRS__ is true.
1339 Add FFI_TYPE_UINT128 support.
1340 * src/powerpc/sysv.S: Add support for soft-float long-double-128.
1341 Adjust copyright notice.
1342
13432007-11-25 Andreas Tobler <a.tobler@schweiz.org>
1344
1345 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ...
1346 * include/ffi_common.h: ... here.
1347 Update copyright.
1348
13492007-11-17 Andreas Tobler <a.tobler@schweiz.org>
1350
1351 * src/powerpc/sysv.S: Load correct cr to compare if we have long double.
1352 * src/powerpc/linux64.S: Likewise.
1353 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
1354 * testsuite/libffi.call/return_ldl.c: New test.
1355
13562007-09-04 <aph@redhat.com>
1357
1358 * src/arm/sysv.S (UNWIND): New.
1359 (Whole file): Conditionally compile unwinder directives.
1360 * src/arm/sysv.S: Add unwinder directives.
1361
1362 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes.
1363 Only treat r0 as a struct address if we're actually returning a
1364 struct by address.
1365 Only copy the bytes that are actually within a struct.
1366 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes
1367 is returned in r0, not passed by address.
1368 (ffi_call): Allocate a word-sized temporary for the case where
1369 a composite is returned in r0.
1370 (ffi_prep_incoming_args_SYSV): Align as necessary.
1371
13722007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk>
1373
Anthony Green0cfe60e2009-12-29 10:06:04 -05001374 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001375 directly using the sys_cacheflush syscall.
1376
13772007-07-27 Andrew Haley <aph@redhat.com>
1378
1379 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float.
1380
13812007-09-03 Maciej W. Rozycki <macro@linux-mips.org>
1382
1383 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS.
1384 * configure.ac: Likewise.
1385 * Makefile.in: Regenerate.
1386 * include/Makefile.in: Likewise.
1387 * testsuite/Makefile.in: Likewise.
1388 * configure: Likewise.
1389
13902007-08-24 David Daney <ddaney@avtrex.com>
1391
1392 * testsuite/libffi.call/return_sl.c: New test.
1393
13942007-08-10 David Daney <ddaney@avtrex.com>
1395
1396 * testsuite/libffi.call/cls_multi_ushort.c,
1397 testsuite/libffi.call/cls_align_uint16.c,
1398 testsuite/libffi.call/nested_struct1.c,
1399 testsuite/libffi.call/nested_struct3.c,
1400 testsuite/libffi.call/cls_7_1_byte.c,
1401 testsuite/libffi.call/nested_struct5.c,
1402 testsuite/libffi.call/cls_double.c,
1403 testsuite/libffi.call/nested_struct7.c,
1404 testsuite/libffi.call/cls_sint.c,
1405 testsuite/libffi.call/nested_struct9.c,
1406 testsuite/libffi.call/cls_20byte1.c,
1407 testsuite/libffi.call/cls_multi_sshortchar.c,
1408 testsuite/libffi.call/cls_align_sint64.c,
1409 testsuite/libffi.call/cls_3byte2.c,
1410 testsuite/libffi.call/cls_multi_schar.c,
1411 testsuite/libffi.call/cls_multi_uchar.c,
1412 testsuite/libffi.call/cls_19byte.c,
1413 testsuite/libffi.call/cls_9byte1.c,
1414 testsuite/libffi.call/cls_align_float.c,
1415 testsuite/libffi.call/closure_fn1.c,
1416 testsuite/libffi.call/problem1.c,
1417 testsuite/libffi.call/closure_fn3.c,
1418 testsuite/libffi.call/cls_sshort.c,
1419 testsuite/libffi.call/closure_fn5.c,
1420 testsuite/libffi.call/cls_align_double.c,
1421 testsuite/libffi.call/nested_struct.c,
1422 testsuite/libffi.call/cls_2byte.c,
1423 testsuite/libffi.call/nested_struct10.c,
1424 testsuite/libffi.call/cls_4byte.c,
1425 testsuite/libffi.call/cls_6byte.c,
1426 testsuite/libffi.call/cls_8byte.c,
1427 testsuite/libffi.call/cls_multi_sshort.c,
1428 testsuite/libffi.call/cls_align_sint16.c,
1429 testsuite/libffi.call/cls_align_uint32.c,
1430 testsuite/libffi.call/cls_20byte.c,
1431 testsuite/libffi.call/cls_float.c,
1432 testsuite/libffi.call/nested_struct2.c,
1433 testsuite/libffi.call/cls_5_1_byte.c,
1434 testsuite/libffi.call/nested_struct4.c,
1435 testsuite/libffi.call/cls_24byte.c,
1436 testsuite/libffi.call/nested_struct6.c,
1437 testsuite/libffi.call/cls_64byte.c,
1438 testsuite/libffi.call/nested_struct8.c,
1439 testsuite/libffi.call/cls_uint.c,
1440 testsuite/libffi.call/cls_multi_ushortchar.c,
1441 testsuite/libffi.call/cls_schar.c,
1442 testsuite/libffi.call/cls_uchar.c,
1443 testsuite/libffi.call/cls_align_uint64.c,
1444 testsuite/libffi.call/cls_ulonglong.c,
1445 testsuite/libffi.call/cls_align_longdouble.c,
1446 testsuite/libffi.call/cls_1_1byte.c,
1447 testsuite/libffi.call/cls_12byte.c,
1448 testsuite/libffi.call/cls_3_1byte.c,
1449 testsuite/libffi.call/cls_3byte1.c,
1450 testsuite/libffi.call/cls_4_1byte.c,
1451 testsuite/libffi.call/cls_6_1_byte.c,
1452 testsuite/libffi.call/cls_16byte.c,
1453 testsuite/libffi.call/cls_18byte.c,
1454 testsuite/libffi.call/closure_fn0.c,
1455 testsuite/libffi.call/cls_9byte2.c,
1456 testsuite/libffi.call/closure_fn2.c,
1457 testsuite/libffi.call/closure_fn4.c,
1458 testsuite/libffi.call/cls_ushort.c,
1459 testsuite/libffi.call/closure_fn6.c,
1460 testsuite/libffi.call/cls_5byte.c,
1461 testsuite/libffi.call/cls_align_pointer.c,
1462 testsuite/libffi.call/cls_7byte.c,
1463 testsuite/libffi.call/cls_align_sint32.c,
1464 testsuite/libffi.special/unwindtest_ffi_call.cc,
1465 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.
1466
14672007-08-10 David Daney <ddaney@avtrex.com>
1468
1469 PR libffi/28313
1470 * configure.ac: Don't treat mips64 as a special case.
1471 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S.
1472 * configure: Regenerate
1473 * Makefile.in: Ditto.
1474 * fficonfig.h.in: Ditto.
1475 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent.
1476 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros.
1477 (FFI_DEFAULT_ABI): Set for n64 case.
1478 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases.
1479 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE.
1480 (ffi_closure_N32): New function.
1481 (.eh_frame): New section
1482 * src/mips/o32.S: Clean up comments.
1483 (ffi_closure_O32): Pass ffi_closure parameter in $12.
1484 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of
1485 _MIPS_SIM == _ABIN32 throughout.
1486 (FFI_MIPS_STOP_HERE): New, use in place of
1487 ffi_stop_here.
1488 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite
1489 to support n32/n64 ABIs.
1490 (calc_n32_struct_flags): Rewrite.
1491 (calc_n32_return_struct_flags): Remove unused variable. Reverse
1492 position of flag bits.
1493 (ffi_prep_cif_machdep): Rewrite n32 portion.
1494 (ffi_call): Enable for n64. Add special handling for small structure
1495 return values.
1496 (ffi_prep_closure_loc): Add n32 and n64 support.
1497 (ffi_closure_mips_inner_O32): Add cast to silence warning.
1498 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions.
1499
15002007-08-08 David Daney <ddaney@avtrex.com>
1501
1502 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
1503 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
1504 specifiers.
1505 * testsuite/libffi.call/nested_struct1.c (main): Ditto.
1506 * testsuite/libffi.call/cls_sint.c (main): Ditto.
1507 * testsuite/libffi.call/nested_struct9.c (main): Ditto.
1508 * testsuite/libffi.call/cls_20byte1.c (main): Ditto.
1509 * testsuite/libffi.call/cls_9byte1.c (main): Ditto.
1510 * testsuite/libffi.call/closure_fn1.c (main): Ditto.
1511 * testsuite/libffi.call/closure_fn3.c (main): Ditto.
1512 * testsuite/libffi.call/return_dbl2.c (main): Ditto.
1513 * testsuite/libffi.call/cls_sshort.c (main): Ditto.
1514 * testsuite/libffi.call/return_fl3.c (main): Ditto.
1515 * testsuite/libffi.call/closure_fn5.c (main): Ditto.
1516 * testsuite/libffi.call/nested_struct.c (main): Ditto.
1517 * testsuite/libffi.call/nested_struct10.c (main): Ditto.
1518 * testsuite/libffi.call/return_ll1.c (main): Ditto.
1519 * testsuite/libffi.call/cls_8byte.c (main): Ditto.
1520 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
1521 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
1522 * testsuite/libffi.call/cls_20byte.c (main): Ditto.
1523 * testsuite/libffi.call/nested_struct2.c (main): Ditto.
1524 * testsuite/libffi.call/cls_24byte.c (main): Ditto.
1525 * testsuite/libffi.call/nested_struct6.c (main): Ditto.
1526 * testsuite/libffi.call/cls_uint.c (main): Ditto.
1527 * testsuite/libffi.call/cls_12byte.c (main): Ditto.
1528 * testsuite/libffi.call/cls_16byte.c (main): Ditto.
1529 * testsuite/libffi.call/closure_fn0.c (main): Ditto.
1530 * testsuite/libffi.call/cls_9byte2.c (main): Ditto.
1531 * testsuite/libffi.call/closure_fn2.c (main): Ditto.
1532 * testsuite/libffi.call/return_dbl1.c (main): Ditto.
1533 * testsuite/libffi.call/closure_fn4.c (main): Ditto.
1534 * testsuite/libffi.call/closure_fn6.c (main): Ditto.
1535 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto.
1536
15372007-08-07 Andrew Haley <aph@redhat.com>
1538
1539 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous
1540 checkin.
1541
15422007-08-06 Andrew Haley <aph@redhat.com>
1543
1544 PR testsuite/32843
1545 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8,
1546 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32,
1547 FFI_TYPE_SINT32.
1548
15492007-08-02 David Daney <ddaney@avtrex.com>
1550
1551 * testsuite/libffi.call/return_ul.c (main): Define return type as
1552 ffi_arg. Use proper printf conversion specifier.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001553
Anthony Greenc6dddbd2009-10-04 08:11:33 -040015542007-07-30 Andrew Haley <aph@redhat.com>
1555
1556 PR testsuite/32843
1557 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
1558 signed/unsigned int8/16.
1559 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
1560 Use a jump table.
1561 Remove code to pop args from the stack after call.
1562 Special-case signed/unsigned int8/16.
1563 * testsuite/libffi.call/return_sc.c (main): Revert.
1564
15652007-07-26 Richard Guenther <rguenther@suse.de>
1566
1567 PR testsuite/32843
1568 * testsuite/libffi.call/return_sc.c (main): Verify call
1569 result as signed char, not ffi_arg.
1570
15712007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1572
1573 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64.
1574 * configure: Regenerate.
1575
15762007-07-11 David Daney <ddaney@avtrex.com>
1577
1578 * src/mips/ffi.c: Don't include sys/cachectl.h.
1579 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of
1580 cacheflush().
1581
15822007-05-18 Aurelien Jarno <aurelien@aurel32.net>
1583
1584 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted
1585 from (ffi_prep_closure): ... this.
1586 (FFI_INIT_TRAMPOLINE): Adjust.
1587
15882005-12-31 Phil Blundell <pb@reciva.com>
1589
Anthony Green0cfe60e2009-12-29 10:06:04 -05001590 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV,
1591 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001592 * src/arm/sysv.S(ffi_closure_SYSV): Likewise.
1593 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1594 (FFI_CLOSURES): Enable closure support.
1595
15962007-07-03 Andrew Haley <aph@hedges.billgatliff.com>
1597
Anthony Green0cfe60e2009-12-29 10:06:04 -05001598 * testsuite/libffi.call/cls_multi_ushort.c,
1599 testsuite/libffi.call/cls_align_uint16.c,
1600 testsuite/libffi.call/nested_struct1.c,
1601 testsuite/libffi.call/nested_struct3.c,
1602 testsuite/libffi.call/cls_7_1_byte.c,
1603 testsuite/libffi.call/cls_double.c,
1604 testsuite/libffi.call/nested_struct5.c,
1605 testsuite/libffi.call/nested_struct7.c,
1606 testsuite/libffi.call/cls_sint.c,
1607 testsuite/libffi.call/nested_struct9.c,
1608 testsuite/libffi.call/cls_20byte1.c,
1609 testsuite/libffi.call/cls_multi_sshortchar.c,
1610 testsuite/libffi.call/cls_align_sint64.c,
1611 testsuite/libffi.call/cls_3byte2.c,
1612 testsuite/libffi.call/cls_multi_schar.c,
1613 testsuite/libffi.call/cls_multi_uchar.c,
1614 testsuite/libffi.call/cls_19byte.c,
1615 testsuite/libffi.call/cls_9byte1.c,
1616 testsuite/libffi.call/cls_align_float.c,
1617 testsuite/libffi.call/closure_fn1.c,
1618 testsuite/libffi.call/problem1.c,
1619 testsuite/libffi.call/closure_fn3.c,
1620 testsuite/libffi.call/cls_sshort.c,
1621 testsuite/libffi.call/closure_fn5.c,
1622 testsuite/libffi.call/cls_align_double.c,
1623 testsuite/libffi.call/cls_2byte.c,
1624 testsuite/libffi.call/nested_struct.c,
1625 testsuite/libffi.call/nested_struct10.c,
1626 testsuite/libffi.call/cls_4byte.c,
1627 testsuite/libffi.call/cls_6byte.c,
1628 testsuite/libffi.call/cls_8byte.c,
1629 testsuite/libffi.call/cls_multi_sshort.c,
1630 testsuite/libffi.call/cls_align_uint32.c,
1631 testsuite/libffi.call/cls_align_sint16.c,
1632 testsuite/libffi.call/cls_float.c,
1633 testsuite/libffi.call/cls_20byte.c,
1634 testsuite/libffi.call/cls_5_1_byte.c,
1635 testsuite/libffi.call/nested_struct2.c,
1636 testsuite/libffi.call/cls_24byte.c,
1637 testsuite/libffi.call/nested_struct4.c,
1638 testsuite/libffi.call/nested_struct6.c,
1639 testsuite/libffi.call/cls_64byte.c,
1640 testsuite/libffi.call/nested_struct8.c,
1641 testsuite/libffi.call/cls_uint.c,
1642 testsuite/libffi.call/cls_multi_ushortchar.c,
1643 testsuite/libffi.call/cls_schar.c,
1644 testsuite/libffi.call/cls_uchar.c,
1645 testsuite/libffi.call/cls_align_uint64.c,
1646 testsuite/libffi.call/cls_ulonglong.c,
1647 testsuite/libffi.call/cls_align_longdouble.c,
1648 testsuite/libffi.call/cls_1_1byte.c,
1649 testsuite/libffi.call/cls_12byte.c,
1650 testsuite/libffi.call/cls_3_1byte.c,
1651 testsuite/libffi.call/cls_3byte1.c,
1652 testsuite/libffi.call/cls_4_1byte.c,
1653 testsuite/libffi.call/cls_6_1_byte.c,
1654 testsuite/libffi.call/cls_16byte.c,
1655 testsuite/libffi.call/cls_18byte.c,
1656 testsuite/libffi.call/closure_fn0.c,
1657 testsuite/libffi.call/cls_9byte2.c,
1658 testsuite/libffi.call/closure_fn2.c,
1659 testsuite/libffi.call/closure_fn4.c,
1660 testsuite/libffi.call/cls_ushort.c,
1661 testsuite/libffi.call/closure_fn6.c,
1662 testsuite/libffi.call/cls_5byte.c,
1663 testsuite/libffi.call/cls_align_pointer.c,
1664 testsuite/libffi.call/cls_7byte.c,
1665 testsuite/libffi.call/cls_align_sint32.c,
1666 testsuite/libffi.special/unwindtest_ffi_call.cc,
1667 testsuite/libffi.special/unwindtest.cc: Enable for ARM.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001668
16692007-07-05 H.J. Lu <hongjiu.lu@intel.com>
1670
1671 * aclocal.m4: Regenerated.
1672
16732007-06-02 Paolo Bonzini <bonzini@gnu.org>
1674
1675 * configure: Regenerate.
1676
16772007-05-23 Steve Ellcey <sje@cup.hp.com>
1678
1679 * Makefile.in: Regenerate.
1680 * configure: Regenerate.
1681 * aclocal.m4: Regenerate.
1682 * include/Makefile.in: Regenerate.
1683 * testsuite/Makefile.in: Regenerate.
1684
16852007-05-10 Roman Zippel <zippel@linux-m68k.org>
1686
1687 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV,
1688 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support.
1689 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise.
1690 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise.
1691 (FFI_CLOSURES): Enable closure support.
1692
16932007-05-10 Roman Zippel <zippel@linux-m68k.org>
1694
1695 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test.
1696 * configure: Regenerate.
1697 * fficonfig.h.in: Regenerate.
1698 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC,
1699 CFI_OFFSET,CFI_DEF_CFA): New macros.
1700 (ffi_call_SYSV): Add callframe annotation.
1701
17022007-05-10 Roman Zippel <zippel@linux-m68k.org>
1703
1704 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix
1705 numerous test suite failures.
1706 * src/m68k/sysv.S (ffi_call_SYSV): Likewise.
1707
17082007-04-11 Paolo Bonzini <bonzini@gnu.org>
1709
1710 * Makefile.am (EXTRA_DIST): Bring up to date.
1711 * Makefile.in: Regenerate.
1712 * src/frv/eabi.S: Remove RCS keyword.
1713
17142007-04-06 Richard Henderson <rth@redhat.com>
1715
1716 * configure.ac: Tidy target case.
1717 (HAVE_LONG_DOUBLE): Allow the target to override.
1718 * configure: Regenerate.
1719 * include/ffi.h.in: Don't define ffi_type_foo if
1720 LIBFFI_HIDE_BASIC_TYPES is defined.
1721 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define
1722 to ffi_type_double.
1723 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define.
1724 (FFI_TYPEDEF, ffi_type_void): Mark the data const.
1725 (ffi_type_longdouble): Special case for Alpha. Don't define
1726 if long double == double.
1727
1728 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value.
1729 (ffi_prep_cif_machdep): Handle it as the 128-bit type.
1730 (ffi_call, ffi_closure_osf_inner): Likewise.
1731 (ffi_closure_osf_inner): Likewise. Mark hidden.
1732 (ffi_call_osf, ffi_closure_osf): Mark hidden.
1733 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition.
1734 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden.
1735 (load_table): Handle 128-bit long double.
1736
1737 * testsuite/libffi.call/float4.c: Add -mieee for alpha.
1738
17392007-04-06 Tom Tromey <tromey@redhat.com>
1740
1741 PR libffi/31491:
1742 * README: Fixed bug in example.
1743
17442007-04-03 Jakub Jelinek <jakub@redhat.com>
1745
1746 * src/closures.c: Include sys/statfs.h.
1747 (_GNU_SOURCE): Define on Linux.
1748 (FFI_MMAP_EXEC_SELINUX): Define.
1749 (selinux_enabled): New variable.
1750 (selinux_enabled_check): New function.
1751 (is_selinux_enabled): Define.
1752 (dlmmap): Use it.
1753
17542007-03-24 Uros Bizjak <ubizjak@gmail.com>
1755
1756 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static.
1757 Use 'volatile float sum' to create sum of floats to avoid false
1758 negative due to excess precision on ix86 targets.
Anthony Green0cfe60e2009-12-29 10:06:04 -05001759 (main): Ditto.
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001760
17612007-03-08 Alexandre Oliva <aoliva@redhat.com>
1762
1763 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous
1764 patch.
1765 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones.
1766
17672007-03-07 Alexandre Oliva <aoliva@redhat.com>
1768
1769 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New.
1770 (ffi_prep_closure_loc): New.
1771 (ffi_prep_raw_closure_loc): New.
1772 (ffi_prep_java_raw_closure_loc): New.
1773 * src/closures.c: New file.
1774 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment):
1775 Replace sflags with exec_offset.
1776 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset,
1777 sub_segment_exec_offset): New macros.
1778 (get_segment_flags, set_segment_flags, check_segment_merge): New
1779 macros.
1780 (is_mmapped_segment, is_extern_segment): Use get_segment_flags.
1781 (add_segment, sys_alloc, create_mspace, create_mspace_with_base,
1782 destroy_mspace): Use new macros.
1783 (sys_alloc): Silence warning.
1784 * Makefile.am (libffi_la_SOURCES): Add src/closures.c.
1785 * Makefile.in: Rebuilt.
1786 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in
1787 terms of ffi_prep_closure_loc.
1788 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted
1789 from...
1790 (ffi_prep_raw_closure): ... this. Re-implement in terms of the
1791 renamed version.
1792 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and
1793 adjusted from...
1794 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of
1795 the renamed version.
1796 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from
1797 (ffi_prep_closure): ... this.
1798 * src/pa/ffi.c: Likewise.
1799 * src/cris/ffi.c: Likewise. Adjust.
1800 * src/frv/ffi.c: Likewise.
1801 * src/ia64/ffi.c: Likewise.
1802 * src/mips/ffi.c: Likewise.
1803 * src/powerpc/ffi_darwin.c: Likewise.
1804 * src/s390/ffi.c: Likewise.
1805 * src/sh/ffi.c: Likewise.
1806 * src/sh64/ffi.c: Likewise.
1807 * src/sparc/ffi.c: Likewise.
1808 * src/x86/ffi64.c: Likewise.
1809 * src/x86/ffi.c: Likewise.
1810 (FFI_INIT_TRAMPOLINE): Adjust.
1811 (ffi_prep_raw_closure_loc): Renamed and adjusted from...
1812 (ffi_prep_raw_closure): ... this.
1813 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from
1814 (ffi_prep_closure): ... this.
1815 (flush_icache): Adjust.
1816
18172007-03-07 Alexandre Oliva <aoliva@redhat.com>
1818
1819 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug
1820 Lea's malloc.
1821
18222007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
1823
1824 * Makefile.am: Add dummy install-pdf target.
1825 * Makefile.in: Regenerate
1826
18272007-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
1828
1829 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep,
1830 ffi_closure_helper_SYSV): Add long double handling.
1831
18322007-02-02 Jakub Jelinek <jakub@redhat.com>
1833
1834 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2
1835 immediately after bctrl instruction.
1836
18372007-01-18 Alexandre Oliva <aoliva@redhat.com>
1838
1839 * Makefile.am (all-recursive, install-recursive,
1840 mostlyclean-recursive, clean-recursive, distclean-recursive,
1841 maintainer-clean-recursive): Add missing targets.
1842 * Makefile.in: Rebuilt.
1843
18442006-12-14 Andreas Tobler <a.tobler@schweiz.org>
1845
1846 * configure.ac: Add TARGET for x86_64-*-darwin*.
1847 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources
1848 for X86_DARWIN.
1849 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*.
1850 * src/x86/darwin64.S: New file for x86_64-*-darwin* support.
1851 * configure: Regenerate.
1852 * Makefile.in: Regenerate.
1853 * include/Makefile.in: Regenerate.
1854 * testsuite/Makefile.in: Regenerate.
1855 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for
1856 ffi_call only.
1857
18582006-12-13 Andreas Tobler <a.tobler@schweiz.org>
1859
1860 * aclocal.m4: Regenerate with aclocal -I .. as written in the
1861 Makefile.am.
1862
18632006-10-31 Geoffrey Keating <geoffk@apple.com>
1864
1865 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New.
1866 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for
1867 Darwin.
1868 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL.
1869 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL.
1870
18712006-10-10 Paolo Bonzini <bonzini@gnu.org>
1872 Sandro Tolaini <tolaini@libero.it>
1873
Anthony Green0cfe60e2009-12-29 10:06:04 -05001874 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001875 conditional.
1876 * configure: Regenerated.
1877 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case.
1878 (EXTRA_DIST): Add src/x86/darwin.S.
1879 * Makefile.in: Regenerated.
1880 * include/Makefile.in: Regenerated.
1881 * testsuite/Makefile.in: Regenerated.
1882
1883 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like
1884 X86_WIN32, and additionally align stack to 16 bytes.
1885 * src/x86/darwin.S: New, based on sysv.S.
1886 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs.
1887
18882006-09-12 David Daney <ddaney@avtrex.com>
1889
1890 PR libffi/23935
1891 * include/Makefile.am: Install both ffi.h and ffitarget.h in
1892 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include.
1893 * aclocal.m4: Regenerated for automake 1.9.6.
1894 * Makefile.in: Regenerated.
1895 * include/Makefile.in: Regenerated.
1896 * testsuite/Makefile.in: Regenerated.
1897
18982006-08-17 Andreas Tobler <a.tobler@schweiz.ch>
1899
1900 * include/ffi_common.h (struct): Revert accidental commit.
1901
19022006-08-15 Andreas Tobler <a.tobler@schweiz.ch>
1903
1904 * include/ffi_common.h: Remove lint directives.
1905 * include/ffi.h.in: Likewise.
1906
19072006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de>
1908
1909 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly
1910 for 32-bit architectures.
1911 * testsuite/libffi.call/return_ul.c: New test case.
1912
19132006-07-19 David Daney <ddaney@avtrex.com>
1914
1915 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips,
1916 xfail remains for mips64.
1917
19182006-05-23 Carlos O'Donell <carlos@codesourcery.com>
1919
1920 * Makefile.am: Add install-html target. Add install-html to .PHONY
1921 * Makefile.in: Regenerate.
1922 * aclocal.m4: Regenerate.
1923 * include/Makefile.in: Regenerate.
1924 * testsuite/Makefile.in: Regenerate.
1925
19262006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1927
1928 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from
1929 stack slot.
1930
19312006-04-22 Andreas Tobler <a.tobler@schweiz.ch>
1932
1933 * README: Remove notice about 'Crazy Comments'.
1934 * src/debug.c: Remove lint directives. Cleanup white spaces.
1935 * src/java_raw_api.c: Likewise.
1936 * src/prep_cif.c: Likewise.
1937 * src/raw_api.c: Likewise.
1938 * src/ffitest.c: Delete. No longer needed, all test cases migrated
1939 to the testsuite.
1940 * src/arm/ffi.c: Remove lint directives.
1941 * src/m32r/ffi.c: Likewise.
1942 * src/pa/ffi.c: Likewise.
1943 * src/powerpc/ffi.c: Likewise.
1944 * src/powerpc/ffi_darwin.c: Likewise.
1945 * src/sh/ffi.c: Likewise.
1946 * src/sh64/ffi.c: Likewise.
1947 * src/x86/ffi.c: Likewise.
1948 * testsuite/libffi.call/float2.c: Likewise.
1949 * testsuite/libffi.call/promotion.c: Likewise.
1950 * testsuite/libffi.call/struct1.c: Likewise.
1951
19522006-04-13 Andreas Tobler <a.tobler@schweiz.ch>
1953
1954 * src/pa/hpux32.S: Correct unwind offset calculation for
1955 ffi_closure_pa32.
1956 * src/pa/linux.S: Likewise.
1957
19582006-04-12 James E Wilson <wilson@specifix.com>
1959
1960 PR libgcj/26483
1961 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros.
1962 (hfa_type_load): Call stf_spill.
1963 (hfa_type_store): Call ldf_fill.
1964 (ffi_call): Adjust calls to above routines. Add local temps for
1965 macro result.
1966
19672006-04-10 Matthias Klose <doko@debian.org>
1968
1969 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib
1970 directory names containing underscores.
1971
19722006-04-07 James E Wilson <wilson@specifix.com>
1973
1974 * testsuite/libffi.call/float4.c: New testcase.
1975
19762006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1977 Andreas Tobler <a.tobler@schweiz.ch>
1978
1979 * Makefile.am: Add PA_HPUX port.
1980 * Makefile.in: Regenerate.
1981 * include/Makefile.in: Likewise.
1982 * testsuite/Makefile.in: Likewise.
1983 * configure.ac: Add PA_HPUX rules.
1984 * configure: Regenerate.
1985 * src/pa/ffitarget.h: Rename linux target to PA_LINUX.
1986 Add PA_HPUX and PA64_HPUX.
1987 Rename FFI_LINUX ABI to FFI_PA32 ABI.
1988 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets.
1989 (FFI_TYPE_SMALL_STRUCT2): Define.
1990 (FFI_TYPE_SMALL_STRUCT4): Likewise.
1991 (FFI_TYPE_SMALL_STRUCT8): Likewise.
1992 (FFI_TYPE_SMALL_STRUCT3): Redefine.
1993 (FFI_TYPE_SMALL_STRUCT5): Likewise.
1994 (FFI_TYPE_SMALL_STRUCT6): Likewise.
1995 (FFI_TYPE_SMALL_STRUCT7): Likewise.
1996 * src/pa/ffi.c (ROUND_DOWN): Delete.
1997 (fldw, fstw, fldd, fstd): Use '__asm__'.
1998 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2,
1999 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8.
2000 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment.
2001 Simplify incrementing of stack slot variable. Change type of local
2002 'n' to unsigned int.
2003 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long
2004 double on PA_HPUX.
2005 (ffi_prep_cif_machdep): Likewise.
2006 (ffi_call): Likewise.
2007 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change
2008 return type to ffi_status. Simplify incrementing of stack slot
2009 variable. Only copy floating point argument registers when PA_LINUX
2010 is true. Reformat debug statement.
2011 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and
2012 FFI_TYPE_SMALL_STRUCT8.
2013 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to
2014 declaration.
2015 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX.
2016 Add nops to cache flush. Add trampoline for PA_HPUX.
2017 * src/pa/hpux32.S: New file.
2018 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename
2019 ffi_prep_args_LINUX to ffi_prep_args_pa32.
2020 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle
2021 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order
2022 argument type checks so that common argument types appear first.
2023 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename
2024 ffi_closure_inner_LINUX to ffi_closure_inner_pa32.
2025
20262006-03-24 Alan Modra <amodra@bigpond.net.au>
2027
2028 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default
2029 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI.
2030 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of
2031 FFI_TYPE_LONGDOUBLE.
2032 (ffi_prep_args64): Assert using IBM extended double.
2033 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type.
2034 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args.
2035 (ffi_call): Handle FFI_LINUX.
2036 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs
2037 gpr3 return pointer as for struct return. Handle FFI_LINUX
2038 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf"
2039 unnecessarily.
2040 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2
2041 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table.
2042 Don't use r6 as pointer to results, instead use sp offset. Don't
2043 make a special call to load lr with case table address, instead
2044 use offset from previous call.
2045 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return.
2046 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double
2047 return.
2048
20492006-03-15 Kaz Kojima <kkojima@gcc.gnu.org>
2050
2051 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments
2052 passed with FP registers correctly.
2053 (ffi_closure_helper_SYSV): Likewise.
2054 * src/sh64/sysv.S: Likewise.
2055
20562006-03-01 Andreas Tobler <a.tobler@schweiz.ch>
2057
2058 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
2059 args and userdata unused.
2060 (closure_test_fn1): Mark cif and userdata unused.
2061 (main): Remove unused res.
2062
20632006-02-28 Andreas Tobler <a.tobler@schweiz.ch>
2064
2065 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
2066 -O2, -O3, -Os and the warning flags -W -Wall.
2067 * testsuite/libffi.special/special.exp: Likewise.
2068 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
2069 unused parameter unused for gcc or else do nothing.
2070 * testsuite/libffi.special/ffitestcxx.h: Likewise.
2071 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
2072 and userdata unused.
2073 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
2074 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
2075 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
2076 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
2077 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
2078 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
2079 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
2080 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
2081 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
2082 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
2083 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
2084 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
2085 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
2086 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
2087 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
2088 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
2089 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
2090 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
2091 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
2092 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
2093 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
2094 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
2095 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
2096 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
2097 Likewise.
2098 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
2099 Likewise.
2100 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
2101 Likewise.
2102 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
2103 void* to avoid compiler warning.
2104 (main): Likewise.
2105 (cls_struct_align_gn): Mark cif and userdata unused.
2106 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
2107 Likewise.
2108 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
2109 Likewise.
2110 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
2111 Likewise.
2112 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
2113 Likewise.
2114 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
2115 Likewise.
2116 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
2117 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
2118 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
2119 data unused.
2120 (main): Cast res_call to silence gcc.
2121 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
2122 data unused.
2123 (main): Cast res_call to silence gcc.
2124 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
2125 and data unused.
2126 (main): Cast res_call to silence gcc.
2127 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
2128 data unused.
2129 (main): Cast res_call to silence gcc.
2130 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
2131 data unused.
2132 (main): Cast res_call to silence gcc.
2133 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
2134 and data unused.
2135 (main): Cast res_call to silence gcc.
2136 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
2137 userdata unused.
2138 (cls_ret_schar_fn): Cast printf parameter to silence gcc.
2139 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
2140 userdata unused.
2141 (cls_ret_sint_fn): Cast printf parameter to silence gcc.
2142 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
2143 userdata unused.
2144 (cls_ret_sshort_fn): Cast printf parameter to silence gcc.
2145 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and
2146 userdata unused.
2147 (cls_ret_uchar_fn): Cast printf parameter to silence gcc.
2148 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
2149 userdata unused.
2150 (cls_ret_uint_fn): Cast printf parameter to silence gcc.
2151 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
2152 and userdata unused.
2153 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
2154 userdata unused.
2155 (cls_ret_ushort_fn): Cast printf parameter to silence gcc.
2156 * testsuite/libffi.call/float.c (floating): Remove unused parameter e.
2157 * testsuite/libffi.call/float1.c (main): Remove unused variable i.
2158 Cleanup white spaces.
2159 * testsuite/libffi.call/negint.c (checking): Remove unused variable i.
2160 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
2161 cif and userdata unused.
2162 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
2163 Likewise.
2164 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
2165 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
2166 formatters to silence gcc.
2167 (B_gn): Mark cif and userdata unused.
2168 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
2169 unused.
2170 * testsuite/libffi.call/nested_struct4.c: Mention related PR.
2171 (B_gn): Mark cif and userdata unused.
2172 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
2173 unused.
2174 * testsuite/libffi.call/nested_struct6.c: Mention related PR.
2175 (B_gn): Mark cif and userdata unused.
2176 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
2177 unused.
2178 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
2179 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
2180 * testsuite/libffi.call/problem1.c (stub): Likewise.
2181 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
2182 gcc.
2183 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
2184 in the last commit for this test case in the test case itself.
2185 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
2186 unused.
2187 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
2188 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
2189 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
2190 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
2191 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
2192 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.
2193
21942006-02-22 Kaz Kojima <kkojima@gcc.gnu.org>
2195
2196 * src/sh/sysv.S: Fix register numbers in the FDE for
2197 ffi_closure_SYSV.
2198
21992006-02-20 Andreas Tobler <a.tobler@schweiz.ch>
2200
2201 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static
2202 declaration to avoid a false negative on ix86. See PR323.
2203
22042006-02-18 Kaz Kojima <kkojima@gcc.gnu.org>
2205
2206 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable
2207 and cast integer to void * if needed. Update the pointer to
2208 the FP register saved area correctly.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002209
Anthony Greenc6dddbd2009-10-04 08:11:33 -040022102006-02-17 Andreas Tobler <a.tobler@schweiz.ch>
2211
2212 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630
2213 is fixed.
2214 * testsuite/libffi.call/nested_struct4.c: Likewise.
2215
22162006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
2217
2218 * testsuite/libffi.call/return_dbl.c: New test case.
2219 * testsuite/libffi.call/return_dbl1.c: Likewise.
2220 * testsuite/libffi.call/return_dbl2.c: Likewise.
2221 * testsuite/libffi.call/return_fl.c: Likewise.
2222 * testsuite/libffi.call/return_fl1.c: Likewise.
2223 * testsuite/libffi.call/return_fl2.c: Likewise.
2224 * testsuite/libffi.call/return_fl3.c: Likewise.
2225 * testsuite/libffi.call/closure_fn6.c: Likewise.
2226
2227 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
2228 definition.
2229 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
2230 here to be used by other test cases too.
2231
2232 * testsuite/libffi.call/nested_struct10.c: New test case.
2233 * testsuite/libffi.call/nested_struct9.c: Likewise.
2234 * testsuite/libffi.call/nested_struct8.c: Likewise.
2235 * testsuite/libffi.call/nested_struct7.c: Likewise.
2236 * testsuite/libffi.call/nested_struct6.c: Likewise.
2237 * testsuite/libffi.call/nested_struct5.c: Likewise.
2238 * testsuite/libffi.call/nested_struct4.c: Likewise.
2239
22402006-01-21 Andreas Tobler <a.tobler@schweiz.ch>
2241
2242 * configure.ac: Enable libffi for sparc64-*-freebsd*.
2243 * configure: Rebuilt.
2244
22452006-01-18 Jakub Jelinek <jakub@redhat.com>
2246
2247 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3,
2248 instead do the shifting inline.
2249 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5
2250 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4
2251 and 8 byte structs, for the remaining struct sizes don't call
2252 __lshrdi3, instead do the shifting inline.
2253
22542005-12-07 Thiemo Seufer <ths@networkno.de>
2255
2256 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add
2257 missing parentheses.
2258 * src/mips/o32.S (ffi_call_O32): Code formatting. Define
2259 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations.
2260 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2,
2261 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2,
2262 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2,
2263 FA_0_0_OFF2.
2264 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix
2265 endianness bugs.
2266 (ffi_prep_closure): Improve trampoline instruction scheduling.
2267 (ffi_closure_mips_inner_O32): Fix endianness bugs.
2268
22692005-12-03 Alan Modra <amodra@bigpond.net.au>
2270
2271 * src/powerpc/ffi.c: Formatting.
2272 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions.
2273 (ffi_prep_args64): Likewise.
2274
22752005-09-30 Geoffrey Keating <geoffk@apple.com>
2276
2277 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For
2278 darwin, use -shared-libgcc not -lgcc_s, and explain why.
2279
22802005-09-26 Tom Tromey <tromey@redhat.com>
2281
2282 * testsuite/libffi.call/float1.c (value_type): New typedef.
2283 (CANARY): New define.
2284 (main): Check for result buffer overflow.
2285 * src/powerpc/linux64.S: Handle linux64 long double returns.
2286 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant.
2287 (ffi_prep_cif_machdep): Handle linux64 long double returns.
2288
22892005-08-25 Alan Modra <amodra@bigpond.net.au>
2290
2291 PR target/23404
2292 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack
2293 homed fp args.
2294 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same.
2295
22962005-08-11 Jakub Jelinek <jakub@redhat.com>
2297
2298 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test.
2299 (AH_BOTTOM): Add FFI_HIDDEN definition.
2300 * configure: Rebuilt.
2301 * fficonfig.h.in: Rebuilt.
2302 * src/powerpc/ffi.c (hidden): Remove.
2303 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64,
2304 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden.
2305 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64,
2306 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden.
2307 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove,
2308 add FFI_HIDDEN to its prototype.
2309 (ffi_closure_SYSV_inner): New.
2310 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
2311 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New.
2312
23132005-08-10 Alfred M. Szmidt <ams@gnu.org>
2314
2315 PR libffi/21819:
2316 * configure: Rebuilt.
2317 * configure.ac: Handle i*86-*-gnu*.
2318
23192005-08-09 Jakub Jelinek <jakub@redhat.com>
2320
2321 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
2322 DW_CFA_offset_extended_sf rather than
2323 DW_CFA_GNU_negative_offset_extended.
2324 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
2325
23262005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
2327
2328 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
2329 on sh3.
2330 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument.
2331 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is
2332 partially on register.
2333 (ffi_closure_helper_SYSV): Likewise.
2334 (ffi_prep_cif_machdep): Don't set too many cif->flags.
2335
23362005-07-20 Kaz Kojima <kkojima@gcc.gnu.org>
2337
2338 * src/sh/ffi.c (ffi_call): Handle small structures correctly.
2339 Remove empty line.
2340 * src/sh64/ffi.c (simple_type): Remove.
2341 (return_type): Handle small structures correctly.
2342 (ffi_prep_args): Likewise.
2343 (ffi_call): Likewise.
2344 (ffi_closure_helper_SYSV): Likewise.
2345 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return.
2346 Emit position independent code if PIC and remove wrong datalabel
2347 prefixes from EH data.
2348
23492005-07-19 Andreas Tobler <a.tobler@schweiz.ch>
2350
2351 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD.
2352 * Makefile.in: Regenerate.
2353 * include/Makefile.in: Likewise.
2354 * testsuite/Makefile.in: Likewise.
2355 * configure.ac: Add POWERPC_FREEBSD rules.
2356 * configure: Regenerate.
2357 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules.
2358 (FFI_SYSV_TYPE_SMALL_STRUCT): Define.
2359 * src/powerpc/ffi.c: Add flags to handle small structure returns
2360 in ffi_call_SYSV.
2361 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI.
2362 Aka FFI_SYSV.
2363 (ffi_closure_helper_SYSV): Likewise.
2364 * src/powerpc/ppc_closure.S: Add return types for small structures.
2365 * src/powerpc/sysv.S: Add bits to handle small structures for
2366 final SYSV 4 ABI.
2367
23682005-07-10 Andreas Tobler <a.tobler@schweiz.ch>
2369
2370 * testsuite/libffi.call/cls_5_1_byte.c: New test file.
2371 * testsuite/libffi.call/cls_6_1_byte.c: Likewise.
2372 * testsuite/libffi.call/cls_7_1_byte.c: Likewise.
2373
23742005-07-05 Randolph Chung <tausq@debian.org>
2375
2376 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1
2377 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte
2378 structures. Kill compilation warnings.
2379 (ffi_closure_inner_LINUX): Print return values as hex in debug
2380 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3.
2381 Properly handle 5-7 byte structure returns.
2382 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1)
2383 (FFI_TYPE_SMALL_STRUCT2): Remove.
2384 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5)
2385 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define.
2386 * src/pa/linux.S: Mark source file as using PA1.1 assembly.
2387 (checksmst1, checksmst2): Remove.
2388 (checksmst3): Optimize handling of 3-byte struct returns.
2389 (checksmst567): Properly handle 5-7 byte struct returns.
2390
23912005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2392
2393 PR libgcj/21943
2394 * src/mips/n32.S: Enforce PIC code.
2395 * src/mips/o32.S: Likewise.
2396
23972005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2398
2399 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64.
2400 * configure: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002401
Anthony Greenc6dddbd2009-10-04 08:11:33 -040024022005-06-01 Alan Modra <amodra@bigpond.net.au>
2403
2404 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET
2405 to call ffi_closure_helper_SYSV. Append @local instead.
2406 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV.
2407
24082005-05-17 Kelley Cook <kcook@gcc.gnu.org>
2409
2410 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
2411 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
2412 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config.
2413 * aclocal.m4, configure, fficonfig.h.in, Makefile.in,
2414 include/Makefile.in, testsuite/Makefile.in: Regenerate.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002415
Anthony Greenc6dddbd2009-10-04 08:11:33 -040024162005-05-09 Mike Stump <mrs@apple.com>
2417
2418 * configure: Regenerate.
2419
24202005-05-08 Richard Henderson <rth@redhat.com>
2421
2422 PR libffi/21285
2423 * src/alpha/osf.S: Update unwind into to match code.
2424
24252005-05-04 Andreas Degert <ad@papyrus-gmbh.de>
2426 Richard Henderson <rth@redhat.com>
2427
2428 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in
2429 bit 11 of flags.
2430 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64.
2431 (ffi_prep_closure): Set carry bit if sse-used flag set.
2432 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument.
2433 Only load sse registers if ssecount non-zero.
2434 (ffi_closure_unix64): Only save sse registers if carry set on entry.
2435
24362005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org>
2437
2438 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*,
2439 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*.
2440 * configure: Regenerate.
2441
24422005-04-20 Hans-Peter Nilsson <hp@axis.com>
2443
2444 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use,
2445 have Tcl8.3-compatible intermediate variable.
2446
Anthony Green0cfe60e2009-12-29 10:06:04 -050024472005-04-18 Simon Posnjak <simon.posnjak@siol.net>
Anthony Greenc6dddbd2009-10-04 08:11:33 -04002448 Hans-Peter Nilsson <hp@axis.com>
2449
2450 * Makefile.am: Add CRIS support.
2451 * configure.ac: Likewise.
2452 * Makefile.in, configure, testsuite/Makefile.in,
2453 include/Makefile.in: Regenerate.
2454 * src/cris: New directory.
2455 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files.
2456 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__.
2457
2458 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with
2459 \r?\n in output tests.
2460
24612005-04-12 Mike Stump <mrs@apple.com>
2462
2463 * configure: Regenerate.
2464
24652005-03-30 Hans Boehm <Hans.Boehm@hp.com>
2466
2467 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI.
Anthony Green0cfe60e2009-12-29 10:06:04 -05002468
Anthony Greenc6dddbd2009-10-04 08:11:33 -040024692005-03-30 Steve Ellcey <sje@cup.hp.com>
2470
2471 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute.
2472 (ffi_sarg) Ditto.
2473 * src/ia64/unix.S (ffi_closure_unix): Extend gp
2474 to 64 bits in ILP32 mode.
2475 Load 64 bits even for short data.
2476
24772005-03-23 Mike Stump <mrs@apple.com>
2478
2479 * src/powerpc/darwin.S: Update for -m64 multilib.
2480 * src/powerpc/darwin_closure.S: Likewise.
2481
24822005-03-21 Zack Weinberg <zack@codesourcery.com>
2483
2484 * configure.ac: Do not invoke TL_AC_GCC_VERSION.
2485 Do not set tool_include_dir.
2486 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
2487 Regenerate.
2488 * include/Makefile.am: Set gcc_version and toollibffidir.
2489 * include/Makefile.in: Regenerate.
2490
24912005-02-22 Andrew Haley <aph@redhat.com>
2492
2493 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to
2494 odd-numbered register pairs for 64-bit integer types.
2495
24962005-02-23 Andreas Tobler <a.tobler@schweiz.ch>
2497
2498 PR libffi/20104
2499 * testsuite/libffi.call/return_ll1.c: New test case.
2500
25012005-02-11 Janis Johnson <janis187@us.ibm.com>
2502
2503 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options.
2504 * testsuite/libffi.call/float.c: Ditto.
2505 * testsuite/libffi.call/float2.c: Ditto.
2506 * testsuite/libffi.call/float3.c: Ditto.
2507
25082005-02-08 Andreas Tobler <a.tobler@schweiz.ch>
2509
2510 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv.
2511
25122005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2513
2514 * testsuite/libffi.special/special.exp (cxx_options): Add
2515 -shared-libgcc.
2516
25172004-12-31 Richard Henderson <rth@redhat.com>
2518
2519 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove.
2520 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and
2521 offset parameters with a type parameter; deduce size and structure
2522 alignment. Update all users.
2523
25242004-12-31 Richard Henderson <rth@redhat.com>
2525
2526 * src/types.c (FFI_TYPE_POINTER): Define with sizeof.
2527 (FFI_TYPE_LONGDOUBLE): Fix for ia64.
2528 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move
2529 into ffi_prep_closure.
2530 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite
2531 from scratch.
2532
25332004-12-27 Richard Henderson <rth@redhat.com>
2534
2535 * src/x86/unix64.S: Fix typo in unwind info.
2536
25372004-12-25 Richard Henderson <rth@redhat.com>
2538
2539 * src/x86/ffi64.c (struct register_args): Rename from stackLayout.
2540 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS.
2541 (merge_classes): Check for it.
2542 (SSE_CLASS_P): New.
2543 (classify_argument): Pass byte_offset by value; perform all updates
2544 inside struct case.
2545 (examine_argument): Add classes argument; handle
2546 X86_64_COMPLEX_X87_CLASS.
2547 (ffi_prep_args): Merge into ...
2548 (ffi_call): ... here. Share stack frame with ffi_call_unix64.
2549 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return.
2550 (ffi_fill_return_value): Remove.
2551 (ffi_prep_closure): Remove dead assert.
2552 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner.
2553 Rewrite to use struct register_args instead of va_list. Create
2554 flags for handling structure returns.
2555 * src/x86/unix64.S: Remove dead strings.
2556 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share
2557 stack frame with ffi_call. Handle structure returns properly.
2558 (float2sse, floatfloat2sse, double2sse): Remove.
2559 (sse2float, sse2double, sse2floatfloat): Remove.
2560 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite
2561 to handle structure returns properly.
2562
25632004-12-08 David Edelsohn <edelsohn@gnu.org>
2564
2565 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and
2566 PICFLAG.
2567 * Makefile.in: Regenerated.
2568
25692004-12-02 Richard Sandiford <rsandifo@redhat.com>
2570
2571 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.
2572 * configure, aclocal.m4, Makefile.in: Regenerate.
2573 * include/Makefile.in, testsuite/Makefile.in: Regenerate.
2574
25752004-11-29 Kelley Cook <kcook@gcc.gnu.org>
2576
2577 * configure: Regenerate for libtool change.
2578
25792004-11-25 Kelley Cook <kcook@gcc.gnu.org>
2580
2581 * configure: Regenerate for libtool reversion.
2582
25832004-11-24 Kelley Cook <kcook@gcc.gnu.org>
2584
2585 * configure: Regenerate for libtool change.
2586
25872004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2588
2589 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp.
2590
25912004-11-23 Richard Sandiford <rsandifo@redhat.com>
2592
2593 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead
2594 of jal. Use an absolute encoding for the frame information.
2595
25962004-11-23 Kelley Cook <kcook@gcc.gnu.org>
2597
2598 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS.
2599 * acinclude.m4: Delete logic for sincludes.
2600 * aclocal.m4, Makefile.in, configure: Regenerate.
2601 * include/Makefile: Likewise.
2602 * testsuite/Makefile: Likewise.
2603
26042004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
2605
2606 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers
2607 on a 8-byte boundary.
2608 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments.
2609
26102004-10-27 Richard Earnshaw <rearnsha@arm.com>
2611
2612 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
2613 long long values. Round stack allocation to a multiple of 8 bytes
2614 for ATPCS compatibility.
2615 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
2616 names. Handle returning long long types. Add Thumb and interworking
2617 support. Improve soft-float code.
2618
26192004-10-27 Richard Earnshaw <rearnsha@arm.com>
2620
2621 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function.
2622 (libffi_exit): New function.
2623 (libffi_init): Build the testglue wrapper if needed.
2624
26252004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr>
2626
2627 PR other/18138
2628 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc.
2629
26302004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2631
2632 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0.
2633
26342004-10-20 Kaz Kojima <kkojima@gcc.gnu.org>
2635
2636 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data.
2637 * testsuite/libffi.call/float3.c: New test case.
2638
26392004-10-18 Kaz Kojima <kkojima@gcc.gnu.org>
2640
2641 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for
2642 the function returning a structure pointed with R2.
2643 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to
2644 the structure return value if T bit set. Emit position
2645 independent code and EH data if PIC.
2646
26472004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2648
2649 * Makefile.am: Add m32r support.
2650 * configure.ac: Likewise.
2651 * Makefile.in: Regenerate.
2652 * confiugre: Regenerate.
2653 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF
2654 (uint64, sint64, double, longdouble)
2655 * src/m32r: New directory.
2656 * src/m32r/ffi.c: New file.
2657 * src/m32r/sysv.S: Likewise.
2658 * src/m32r/ffitarget.h: Likewise.
2659
26602004-10-02 Kaz Kojima <kkojima@gcc.gnu.org>
2661
2662 * testsuite/libffi.call/negint.c: New test case.
2663
26642004-09-14 H.J. Lu <hongjiu.lu@intel.com>
2665
2666 PR libgcj/17465
2667 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path.
2668 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH,
2669 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and
2670 DYLD_LIBRARY_PATH.
2671
26722004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
2673
2674 * testsuite/libffi.call/many_win32.c: Remove whitespaces.
2675 * testsuite/libffi.call/promotion.c: Likewise.
2676 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup
2677 whitespaces.
2678 * testsuite/libffi.call/return_sc.c: Likewise.
2679 * testsuite/libffi.call/return_uc.c: Likewise.
2680
26812004-09-05 Andreas Tobler <a.tobler@schweiz.ch>
2682
2683 * src/powerpc/darwin.S: Fix comments and identation.
2684 * src/powerpc/darwin_closure.S: Likewise.
2685
26862004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
2687
2688 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values.
2689 (ffi_prep_args): Handle longdouble arguments.
2690 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for
2691 longdouble.
2692 (ffi_closure_helper_DARWIN): Add closure handling for longdouble.
2693 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble
2694 values.
2695 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise.
2696 * src/types.c: Defined longdouble size and alignment for darwin.
2697
26982004-09-02 Andreas Tobler <a.tobler@schweiz.ch>
2699
2700 * src/powerpc/aix.S: Remove whitespaces.
2701 * src/powerpc/aix_closure.S: Likewise.
2702 * src/powerpc/asm.h: Likewise.
2703 * src/powerpc/ffi.c: Likewise.
2704 * src/powerpc/ffitarget.h: Likewise.
2705 * src/powerpc/linux64.S: Likewise.
2706 * src/powerpc/linux64_closure.S: Likewise.
2707 * src/powerpc/ppc_closure.S: Likewise.
2708 * src/powerpc/sysv.S: Likewise.
2709
27102004-08-30 Anthony Green <green@redhat.com>
2711
2712 * Makefile.am: Add frv support.
2713 * Makefile.in, testsuite/Makefile.in: Rebuilt.
2714 * configure.ac: Read configure.host.
2715 * configure.in: Read configure.host.
2716 * configure.host: New file. frv-elf needs libgloss.
2717 * include/ffi.h.in: Force ffi_closure to have a nice big (8)
2718 alignment. This is needed to frv and shouldn't harm the others.
2719 * include/ffi_common.h (ALIGN_DOWN): New macro.
2720 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files.
2721
27222004-08-24 David Daney <daney@avtrex.com>
2723
2724 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*.
2725 * testsuite/libffi.call/closure_fn1.c: Likewise.
2726 * testsuite/libffi.call/closure_fn2.c Likewise.
2727 * testsuite/libffi.call/closure_fn3.c: Likewise.
2728 * testsuite/libffi.call/closure_fn4.c: Likewise.
2729 * testsuite/libffi.call/closure_fn5.c: Likewise.
2730 * testsuite/libffi.call/cls_18byte.c: Likewise.
2731 * testsuite/libffi.call/cls_19byte.c: Likewise.
2732 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
2733 * testsuite/libffi.call/cls_20byte.c: Likewise.
2734 * testsuite/libffi.call/cls_20byte1.c: Likewise.
2735 * testsuite/libffi.call/cls_24byte.c: Likewise.
2736 * testsuite/libffi.call/cls_2byte.c: Likewise.
2737 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
2738 * testsuite/libffi.call/cls_3byte1.c: Likewise.
2739 * testsuite/libffi.call/cls_3byte2.c: Likewise.
2740 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
2741 * testsuite/libffi.call/cls_4byte.c: Likewise.
2742 * testsuite/libffi.call/cls_64byte.c: Likewise.
2743 * testsuite/libffi.call/cls_6byte.c: Likewise.
2744 * testsuite/libffi.call/cls_7byte.c: Likewise.
2745 * testsuite/libffi.call/cls_8byte.c: Likewise.
2746 * testsuite/libffi.call/cls_9byte1.c: Likewise.
2747 * testsuite/libffi.call/cls_9byte2.c: Likewise.
2748 * testsuite/libffi.call/cls_align_double.c: Likewise.
2749 * testsuite/libffi.call/cls_align_float.c: Likewise.
2750 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
2751 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
2752 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
2753 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
2754 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
2755 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
2756 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
2757 * testsuite/libffi.call/cls_align_uint64.c: Likewise.
2758 * testsuite/libffi.call/cls_double.c: Likewise.
2759 * testsuite/libffi.call/cls_float.c: Likewise.
2760 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
2761 * testsuite/libffi.call/cls_multi_sshort.c: Likewise.
2762 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
2763 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
2764 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
2765 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
2766 * testsuite/libffi.call/cls_schar.c: Likewise.
2767 * testsuite/libffi.call/cls_sint.c: Likewise.
2768 * testsuite/libffi.call/cls_sshort.c: Likewise.
2769 * testsuite/libffi.call/cls_uchar.c: Likewise.
2770 * testsuite/libffi.call/cls_uint.c: Likewise.
2771 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
2772 * testsuite/libffi.call/cls_ushort.c: Likewise.
2773 * testsuite/libffi.call/nested_struct.c: Likewise.
2774 * testsuite/libffi.call/nested_struct1.c: Likewise.
2775 * testsuite/libffi.call/nested_struct2.c: Likewise.
2776 * testsuite/libffi.call/nested_struct3.c: Likewise.
2777 * testsuite/libffi.call/problem1.c: Likewise.
2778 * testsuite/libffi.special/unwindtest.cc: Likewise.
2779 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value
2780 to zero.
2781 * testsuite/libffi.call/cls_16byte.c: Likewise.
2782 * testsuite/libffi.call/cls_5byte.c: Likewise.
2783
27842004-08-23 David Daney <daney@avtrex.com>
2785
2786 PR libgcj/13141
2787 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI.
2788 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation.
2789 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point
2790 parameters and return types.
2791 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI.
2792 (ffi_prep_closure): Ditto.
2793 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix
2794 alignment calculations.
2795 * src/mips/o32.S (ffi_closure_O32): Don't use floating point
2796 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant.
2797
27982004-08-14 Casey Marshall <csm@gnu.org>
2799
2800 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to
2801 contain `FFI_TYPE_UINT64' as return type for any 64-bit
2802 integer (O32 ABI only).
2803 (ffi_prep_closure): new function.
2804 (ffi_closure_mips_inner_O32): new function.
2805 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and
2806 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32.
2807 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return
2808 64 bit integers correctly.
2809 (ffi_closure_O32): new function.
2810 Added DWARF-2 unwind info for both functions.
2811
28122004-08-10 Andrew Haley <aph@redhat.com>
2813
2814 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments.
2815
28162004-08-01 Robert Millan <robertmh@gnu.org>
2817
2818 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu.
2819 * configure: Regenerate.
2820
28212004-07-30 Maciej W. Rozycki <macro@linux-mips.org>
2822
2823 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
2824 and mmap() explicitly instead of relying on preset autoconf cache
2825 variables.
2826 * aclocal.m4: Regenerate.
2827 * configure: Regenerate.
2828
28292004-07-11 Ulrich Weigand <uweigand@de.ibm.com>
2830
2831 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation.
2832 (ffi_check_float_struct): Remove unused prototype.
2833
28342004-06-30 Geoffrey Keating <geoffk@apple.com>
2835
2836 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment
2837 character on Darwin, use '\n\t' instead.
2838
28392004-06-26 Matthias Klose <doko@debian.org>
2840
2841 * libtool-version: Fix typo in revision/age.
2842
28432004-06-17 Matthias Klose <doko@debian.org>
2844
2845 * libtool-version: New.
2846 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname.
2847 * Makefile.in: Regenerate.
2848
28492004-06-15 Paolo Bonzini <bonzini@gnu.org>
2850
2851 * Makefile.am: Remove useless multilib rules.
2852 * Makefile.in: Regenerate.
2853 * aclocal.m4: Regenerate with automake 1.8.5.
2854 * configure.ac: Remove useless multilib configury.
2855 * configure: Regenerate.
2856
28572004-06-15 Paolo Bonzini <bonzini@gnu.org>
2858
2859 * .cvsignore: New file.
2860
28612004-06-10 Jakub Jelinek <jakub@redhat.com>
2862
2863 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break
2864 fp_done.
2865 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever
2866 changed from 8.
2867
28682004-06-06 Sean McNeil <sean@mcneil.com>
2869
2870 * configure.ac: Add x86_64-*-freebsd* support.
2871 * configure: Regenerate.
2872
28732004-04-26 Joe Buck <jbuck@welsh-buck.org>
2874
2875 Bug 15093
2876 * configure.ac: Test for existence of mmap and sys/mman.h before
2877 checking blacklist. Fix suggested by Jim Wilson.
2878 * configure: Regenerate.
2879
28802004-04-26 Matt Austern <austern@apple.com>
2881
2882 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial
2883 FDE location.
2884 * src/powerpc/darwin_closure.S: Likewise.
2885
28862004-04-24 Andreas Tobler <a.tobler@schweiz.ch>
2887
2888 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization
2889 error. Reported by Thomas Heller <theller@python.net>.
2890 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise.
2891 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise.
2892
28932004-03-20 Matthias Klose <doko@debian.org>
2894
2895 * src/pa/linux.S: Fix typo.
2896
28972004-03-19 Matthias Klose <doko@debian.org>
2898
2899 * Makefile.am: Update.
2900 * Makefile.in: Regenerate.
2901 * src/pa/ffi.h.in: Remove.
2902 * src/pa/ffitarget.h: New file.
2903
29042004-02-10 Randolph Chung <tausq@debian.org>
2905
2906 * Makefile.am: Add PA support.
2907 * Makefile.in: Regenerate.
2908 * include/Makefile.in: Regenerate.
2909 * configure.ac: Add PA target.
2910 * configure: Regenerate.
2911 * src/pa/ffi.c: New file.
2912 * src/pa/ffi.h.in: Add PA support.
2913 * src/pa/linux.S: New file.
2914 * prep_cif.c: Add PA support.
2915
29162004-03-16 Hosaka Yuji <hos@tamanegi.org>
2917
2918 * src/types.c: Fix alignment size of X86_WIN32 case int64 and
2919 double.
2920 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type
2921 with ecif->cif->flags.
2922 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type
2923 with cif->flags.
2924 (ffi_prep_cif_machdep): Add X86_WIN32 struct case.
2925 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32.
2926 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b,
2927 sc_retstruct2b): Add for 1 or 2-bytes struct case.
2928
29292004-03-15 Kelley Cook <kcook@gcc.gnu.org>
2930
2931 * configure.in: Rename file to ...
2932 * configure.ac: ... this.
2933 * fficonfig.h.in: Regenerate.
2934 * Makefile.in: Regenerate.
2935 * include/Makefile.in: Regenerate.
2936 * testsuite/Makefile.in: Regenerate.
2937
29382004-03-12 Matt Austern <austern@apple.com>
2939
2940 * src/powerpc/darwin.S: Fix EH information so it corresponds to
2941 changes in EH format resulting from addition of linkonce support.
2942 * src/powerpc/darwin_closure.S: Likewise.
2943
29442004-03-11 Andreas Tobler <a.tobler@schweiz.ch>
2945 Paolo Bonzini <bonzini@gnu.org>
2946
2947 * Makefile.am (AUTOMAKE_OPTIONS): Set them.
2948 Remove VPATH. Remove rules for object files. Remove multilib support.
2949 (AM_CCASFLAGS): Add.
2950 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER.
2951 (AC_PREREQ): Bump version to 2.59.
2952 (AC_INIT): Fill with version info and bug address.
2953 (ORIGINAL_LD_FOR_MULTILIBS): Remove.
2954 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE.
2955 De-precious CC so that the right flags are passed down to multilibs.
2956 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR.
2957 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES.
2958 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS.
2959 * configure: Rebuilt.
2960 * aclocal.m4: Likewise.
2961 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise.
2962 * fficonfig.h.in: Likewise.
2963
29642004-03-11 Andreas Schwab <schwab@suse.de>
2965
2966 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point
2967 arguments from fp registers only for the first 8 parameter slots.
2968 Don't convert a float parameter when passed in memory.
2969
29702004-03-09 Hans-Peter Nilsson <hp@axis.com>
2971
2972 * configure: Regenerate for config/accross.m4 correction.
2973
29742004-02-25 Matt Kraai <kraai@alumni.cmu.edu>
2975
2976 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change
2977 ecif->cif->bytes to bytes.
2978 (ffi_prep_cif_machdep): Add braces around nested if statement.
2979
29802004-02-09 Alan Modra <amodra@bigpond.net.au>
2981
2982 * src/types.c (pointer): POWERPC64 has 8 byte pointers.
2983
2984 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling.
2985 (ffi_closure_helper_LINUX64): Fix typo.
2986 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128
2987 for powerpc64-*-*.
2988 * testsuite/libffi.call/float.c: Likewise.
2989 * testsuite/libffi.call/float2.c: Likewise.
2990
29912004-02-08 Alan Modra <amodra@bigpond.net.au>
2992
2993 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct
2994 long double function return and long double arg handling.
2995 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var.
2996 Use "end_pfr" instead of "nf". Correct long double handling.
2997 Localise "temp".
2998 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double
2999 return value.
3000 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate
3001 space for long double return value. Adjust stack frame and offsets.
3002 Load f2 long double return.
3003
30042004-02-07 Alan Modra <amodra@bigpond.net.au>
3005
3006 * src/types.c: Use 16 byte long double for POWERPC64.
3007
30082004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3009
3010 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array
3011 when the structure return address is passed in %o0.
3012 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct.
3013 (ffi_v9_layout_struct): Align the field following a nested structure
3014 on a word boundary. Use memmove instead of memcpy.
3015 (ffi_call): Update call to ffi_V9_return_struct.
3016 (ffi_prep_closure): Define 'ctx' only for V8.
3017 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8
3018 and ffi_closure_sparc_inner_v9.
3019 (ffi_closure_sparc_inner_v8): Return long doubles by reference.
3020 Always skip the structure return address. For structures and long
3021 doubles, copy the argument directly.
3022 (ffi_closure_sparc_inner_v9): Skip the structure return address only
3023 if required. Shift the maximum floating-point slot accordingly. For
3024 big structures, copy the argument directly; otherwise, left-justify the
3025 argument and call ffi_v9_layout_struct to lay out the structure on
3026 the stack.
3027 * src/sparc/v8.S: Undef STACKFRAME before defining it.
3028 (ffi_closure_v8): Pass the structure return address. Update call to
3029 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling.
3030 Skip the 'unimp' insn when returning long doubles and structures.
3031 * src/sparc/v9.S: Undef STACKFRAME before defining it.
3032 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit
3033 FFI_TYPE_INT handling. Load structures both in integers and
3034 floating-point registers on return.
3035 * README: Update status of the SPARC port.
3036
30372004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
3038
3039 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value
3040 as of type ffi_arg.
3041 * testsuite/libffi.call/struct3.c (main): Fix CHECK.
3042
30432004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
3044
3045 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result
3046 value as of type ffi_arg, not unsigned int.
3047
30482004-01-21 Michael Ritzert <ritzert@t-online.de>
3049
3050 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead
3051 of the LHS.
3052
30532004-01-12 Andreas Tobler <a.tobler@schweiz.ch>
3054
3055 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for
3056 Solaris.
3057
30582004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3059
3060 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED
3061 to void *.
3062
30632003-12-10 Richard Henderson <rth@redhat.com>
3064
3065 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to
3066 size_t instead of int.
3067
30682003-12-04 Hosaka Yuji <hos@tamanegi.org>
3069
3070 * testsuite/libffi.call/many_win32.c: Include <float.h>.
3071 * testsuite/libffi.call/many_win32.c (main): Replace variable
3072 int i with unsigned long ul.
3073
3074 * testsuite/libffi.call/cls_align_uint64.c: New test case.
3075 * testsuite/libffi.call/cls_align_sint64.c: Likewise.
3076 * testsuite/libffi.call/cls_align_uint32.c: Likewise.
3077 * testsuite/libffi.call/cls_align_sint32.c: Likewise.
3078 * testsuite/libffi.call/cls_align_uint16.c: Likewise.
3079 * testsuite/libffi.call/cls_align_sint16.c: Likewise.
3080 * testsuite/libffi.call/cls_align_float.c: Likewise.
3081 * testsuite/libffi.call/cls_align_double.c: Likewise.
3082 * testsuite/libffi.call/cls_align_longdouble.c: Likewise.
3083 * testsuite/libffi.call/cls_align_pointer.c: Likewise.
3084
30852003-12-02 Hosaka Yuji <hos@tamanegi.org>
3086
3087 PR other/13221
3088 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV):
3089 Align arguments to 32 bits.
3090
30912003-12-01 Andreas Tobler <a.tobler@schweiz.ch>
3092
3093 PR other/13221
3094 * testsuite/libffi.call/cls_multi_sshort.c: New test case.
3095 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
3096 * testsuite/libffi.call/cls_multi_uchar.c: Likewise.
3097 * testsuite/libffi.call/cls_multi_schar.c: Likewise.
3098 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
3099 * testsuite/libffi.call/cls_multi_ushort.c: Likewise.
3100
3101 * testsuite/libffi.special/unwindtest.cc: Cosmetics.
3102
31032003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3104
3105 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>.
3106 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3107
31082003-11-22 Andreas Tobler <a.tobler@schweiz.ch>
3109
3110 * Makefile.in: Rebuilt.
3111 * configure: Likewise.
3112 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to
3113 the right type.
3114
31152003-11-21 Andreas Jaeger <aj@suse.de>
3116 Andreas Tobler <a.tobler@schweiz.ch>
3117
3118 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST.
3119 * configure.in: Call AC_FUNC_MMAP_BLACKLIST.
3120 * Makefile.in: Rebuilt.
3121 * aclocal.m4: Likewise.
3122 * configure: Likewise.
3123 * fficonfig.h.in: Likewise.
3124 * testsuite/lib/libffi-dg.exp: Add include dir.
3125 * testsuite/libffi.call/ffitest.h: Add MMAP definitions.
3126 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3127 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality
3128 for ffi_closure if available.
3129 * testsuite/libffi.call/closure_fn1.c: Likewise.
3130 * testsuite/libffi.call/closure_fn2.c: Likewise.
3131 * testsuite/libffi.call/closure_fn3.c: Likewise.
3132 * testsuite/libffi.call/closure_fn4.c: Likewise.
3133 * testsuite/libffi.call/closure_fn5.c: Likewise.
3134 * testsuite/libffi.call/cls_12byte.c: Likewise.
3135 * testsuite/libffi.call/cls_16byte.c: Likewise.
3136 * testsuite/libffi.call/cls_18byte.c: Likewise.
3137 * testsuite/libffi.call/cls_19byte.c: Likewise.
3138 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3139 * testsuite/libffi.call/cls_20byte.c: Likewise.
3140 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3141 * testsuite/libffi.call/cls_24byte.c: Likewise.
3142 * testsuite/libffi.call/cls_2byte.c: Likewise.
3143 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3144 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3145 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3146 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3147 * testsuite/libffi.call/cls_4byte.c: Likewise.
3148 * testsuite/libffi.call/cls_5byte.c: Likewise.
3149 * testsuite/libffi.call/cls_64byte.c: Likewise.
3150 * testsuite/libffi.call/cls_6byte.c: Likewise.
3151 * testsuite/libffi.call/cls_7byte.c: Likewise.
3152 * testsuite/libffi.call/cls_8byte.c: Likewise.
3153 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3154 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3155 * testsuite/libffi.call/cls_double.c: Likewise.
3156 * testsuite/libffi.call/cls_float.c: Likewise.
3157 * testsuite/libffi.call/cls_schar.c: Likewise.
3158 * testsuite/libffi.call/cls_sint.c: Likewise.
3159 * testsuite/libffi.call/cls_sshort.c: Likewise.
3160 * testsuite/libffi.call/cls_uchar.c: Likewise.
3161 * testsuite/libffi.call/cls_uint.c: Likewise.
3162 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3163 * testsuite/libffi.call/cls_ushort.c: Likewise.
3164 * testsuite/libffi.call/nested_struct.c: Likewise.
3165 * testsuite/libffi.call/nested_struct1.c: Likewise.
3166 * testsuite/libffi.call/nested_struct2.c: Likewise.
3167 * testsuite/libffi.call/nested_struct3.c: Likewise.
3168 * testsuite/libffi.call/problem1.c: Likewise.
3169 * testsuite/libffi.special/unwindtest.cc: Likewise.
3170
31712003-11-20 Andreas Tobler <a.tobler@schweiz.ch>
3172
3173 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional.
3174
31752003-11-19 Andreas Tobler <a.tobler@schweiz.ch>
3176
3177 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin.
3178 Add -lgcc_s to additional flags.
3179
31802003-11-12 Andreas Tobler <a.tobler@schweiz.ch>
3181
3182 * configure.in, include/Makefile.am: PR libgcj/11147, install
3183 the ffitarget.h header file in a gcc versioned and target
3184 dependent place.
3185 * configure: Regenerated.
3186 * Makefile.in, include/Makefile.in: Likewise.
3187 * testsuite/Makefile.in: Likewise.
3188
31892003-11-09 Andreas Tobler <a.tobler@schweiz.ch>
3190
3191 * testsuite/libffi.call/closure_fn0.c: Print result and check
3192 with dg-output to make debugging easier.
3193 * testsuite/libffi.call/closure_fn1.c: Likewise.
3194 * testsuite/libffi.call/closure_fn2.c: Likewise.
3195 * testsuite/libffi.call/closure_fn3.c: Likewise.
3196 * testsuite/libffi.call/closure_fn4.c: Likewise.
3197 * testsuite/libffi.call/closure_fn5.c: Likewise.
3198 * testsuite/libffi.call/cls_12byte.c: Likewise.
3199 * testsuite/libffi.call/cls_16byte.c: Likewise.
3200 * testsuite/libffi.call/cls_18byte.c: Likewise.
3201 * testsuite/libffi.call/cls_19byte.c: Likewise.
3202 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3203 * testsuite/libffi.call/cls_20byte.c: Likewise.
3204 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3205 * testsuite/libffi.call/cls_24byte.c: Likewise.
3206 * testsuite/libffi.call/cls_2byte.c: Likewise.
3207 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3208 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3209 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3210 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3211 * testsuite/libffi.call/cls_4byte.c: Likewise.
3212 * testsuite/libffi.call/cls_5byte.c: Likewise.
3213 * testsuite/libffi.call/cls_64byte.c: Likewise.
3214 * testsuite/libffi.call/cls_6byte.c: Likewise.
3215 * testsuite/libffi.call/cls_7byte.c: Likewise.
3216 * testsuite/libffi.call/cls_8byte.c: Likewise.
3217 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3218 * testsuite/libffi.call/cls_9byte2.c: Likewise.
3219 * testsuite/libffi.call/cls_double.c: Likewise.
3220 * testsuite/libffi.call/cls_float.c: Likewise.
3221 * testsuite/libffi.call/cls_schar.c: Likewise.
3222 * testsuite/libffi.call/cls_sint.c: Likewise.
3223 * testsuite/libffi.call/cls_sshort.c: Likewise.
3224 * testsuite/libffi.call/cls_uchar.c: Likewise.
3225 * testsuite/libffi.call/cls_uint.c: Likewise.
3226 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3227 * testsuite/libffi.call/cls_ushort.c: Likewise.
3228 * testsuite/libffi.call/problem1.c: Likewise.
3229
3230 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure
3231 static.
3232
32332003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
3234
3235 * testsuite/libffi.call/cls_9byte2.c: New test case.
3236 * testsuite/libffi.call/cls_9byte1.c: Likewise.
3237 * testsuite/libffi.call/cls_64byte.c: Likewise.
3238 * testsuite/libffi.call/cls_20byte1.c: Likewise.
3239 * testsuite/libffi.call/cls_19byte.c: Likewise.
3240 * testsuite/libffi.call/cls_18byte.c: Likewise.
3241 * testsuite/libffi.call/closure_fn4.c: Likewise.
3242 * testsuite/libffi.call/closure_fn5.c: Likewise.
3243 * testsuite/libffi.call/cls_schar.c: Likewise.
3244 * testsuite/libffi.call/cls_sint.c: Likewise.
3245 * testsuite/libffi.call/cls_sshort.c: Likewise.
3246 * testsuite/libffi.call/nested_struct2.c: Likewise.
3247 * testsuite/libffi.call/nested_struct3.c: Likewise.
3248
32492003-11-08 Andreas Tobler <a.tobler@schweiz.ch>
3250
3251 * testsuite/libffi.call/cls_double.c: Do a check on the result.
3252 * testsuite/libffi.call/cls_uchar.c: Likewise.
3253 * testsuite/libffi.call/cls_uint.c: Likewise.
3254 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3255 * testsuite/libffi.call/cls_ushort.c: Likewise.
3256 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces.
3257
32582003-11-06 Andreas Tobler <a.tobler@schweiz.ch>
3259
3260 * src/prep_cif.c (ffi_prep_cif): Move the validity check after
3261 the initialization.
3262
32632003-10-23 Andreas Tobler <a.tobler@schweiz.ch>
3264
3265 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace
3266 FFI_ASSERT(FALSE) with FFI_ASSERT(0).
3267
32682003-10-22 David Daney <ddaney@avtrex.com>
3269
3270 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with
3271 __attribute__((__mode__(__SI__))) and friends.
3272
32732003-10-22 Andreas Schwab <schwab@suse.de>
3274
3275 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true.
3276
32772003-10-21 Andreas Tobler <a.tobler@schweiz.ch>
3278
3279 * configure.in: AC_LINK_FILES(ffitarget.h).
3280 * configure: Regenerate.
3281 * Makefile.in: Likewise.
3282 * include/Makefile.in: Likewise.
3283 * testsuite/Makefile.in: Likewise.
3284 * fficonfig.h.in: Likewise.
3285
32862003-10-21 Paolo Bonzini <bonzini@gnu.org>
3287 Richard Henderson <rth@redhat.com>
3288
3289 Avoid that ffi.h includes fficonfig.h.
3290
3291 * Makefile.am (EXTRA_DIST): Include ffitarget.h files
3292 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
3293 (TARGET_SRC_MIPS_SGI): Removed.
3294 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX.
3295 (MIPS_SGI): Removed.
3296 (CLEANFILES): Removed.
3297 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New
3298 targets.
3299 * acconfig.h: Removed.
3300 * configure.in: Compute sizeofs only for double and long double.
3301 Use them to define and subst HAVE_LONG_DOUBLE. Include comments
3302 into AC_DEFINE instead of using acconfig.h. Create
3303 include/ffitarget.h instead of include/fficonfig.h. Rename
3304 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree.
3305 AC_DEFINE EH_FRAME_FLAGS.
3306 * include/Makefile.am (DISTCLEANFILES): New automake macro.
3307 (hack_DATA): Add ffitarget.h.
3308 * include/ffi.h.in: Remove all system specific definitions.
3309 Declare raw API even if it is not installed, why bother?
3310 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do
3311 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include
3312 ffitarget.h instead of fficonfig.h. Remove ALIGN macro.
3313 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead.
3314 * include/ffi_common.h (bool): Do not define.
3315 (ffi_assert): Accept failed assertion.
3316 (ffi_type_test): Return void and accept file/line.
3317 (FFI_ASSERT): Pass stringized failed assertion.
3318 (FFI_ASSERT_AT): New macro.
3319 (FFI_ASSERT_VALID_TYPE): New macro.
3320 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32,
3321 UINT64, SINT64): Define here with gcc's __attribute__ macro
3322 instead of in ffi.h
3323 (FLOAT32, ALIGN): Define here instead of in ffi.h
3324 * include/ffi-mips.h: Removed. Its content moved to
3325 src/mips/ffitarget.h after separating assembly and C sections.
3326 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c
3327 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c,
3328 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S,
3329 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c:
3330 SIZEOF_ARG -> FFI_SIZEOF_ARG.
3331 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+).
3332 * src/debug.c (ffi_assert): Accept stringized failed assertion.
3333 (ffi_type_test): Rewritten.
3334 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call
3335 FFI_ASSERT_VALID_TYPE.
3336 * src/alpha/ffitarget.h, src/arm/ffitarget.h,
3337 src/ia64/ffitarget.h, src/m68k/ffitarget.h,
3338 src/mips/ffitarget.h, src/powerpc/ffitarget.h,
3339 src/s390/ffitarget.h, src/sh/ffitarget.h,
3340 src/sh64/ffitarget.h, src/sparc/ffitarget.h,
3341 src/x86/ffitarget.h: New files.
3342 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S,
3343 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S,
3344 src/powerpc/aix.S, src/powerpc/darwin.S,
3345 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S,
3346 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S,
3347 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S,
3348 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S,
3349 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S:
3350 include fficonfig.h
3351
33522003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3353
3354 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external
3355 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32.
3356
33572003-10-19 Andreas Tobler <a.tobler@schweiz.ch>
3358
3359 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again.
3360 Used when FFI_DEBUG = 1.
3361
33622003-10-14 Alan Modra <amodra@bigpond.net.au>
3363
3364 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size
3365 and align.
3366
33672003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3368
3369 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs,
3370 FFI_MIPS_O32 for O32 ABI.
3371
33722003-10-01 Andreas Tobler <a.tobler@schweiz.ch>
3373
3374 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for
3375 SPARC64. Cleanup whitespaces.
3376
33772003-09-19 Andreas Tobler <a.tobler@schweiz.ch>
3378
3379 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm,
3380 strongarm, xscale. Cleanup whitespaces.
3381 * testsuite/libffi.call/closure_fn1.c: Likewise.
3382 * testsuite/libffi.call/closure_fn2.c: Likewise.
3383 * testsuite/libffi.call/closure_fn3.c: Likewise.
3384 * testsuite/libffi.call/cls_12byte.c: Likewise.
3385 * testsuite/libffi.call/cls_16byte.c: Likewise.
3386 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3387 * testsuite/libffi.call/cls_20byte.c: Likewise.
3388 * testsuite/libffi.call/cls_24byte.c: Likewise.
3389 * testsuite/libffi.call/cls_2byte.c: Likewise.
3390 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3391 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3392 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3393 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3394 * testsuite/libffi.call/cls_4byte.c: Likewise.
3395 * testsuite/libffi.call/cls_5byte.c: Likewise.
3396 * testsuite/libffi.call/cls_6byte.c: Likewise.
3397 * testsuite/libffi.call/cls_7byte.c: Likewise.
3398 * testsuite/libffi.call/cls_8byte.c: Likewise.
3399 * testsuite/libffi.call/cls_double.c: Likewise.
3400 * testsuite/libffi.call/cls_float.c: Likewise.
3401 * testsuite/libffi.call/cls_uchar.c: Likewise.
3402 * testsuite/libffi.call/cls_uint.c: Likewise.
3403 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3404 * testsuite/libffi.call/cls_ushort.c: Likewise.
3405 * testsuite/libffi.call/nested_struct.c: Likewise.
3406 * testsuite/libffi.call/nested_struct1.c: Likewise.
3407 * testsuite/libffi.call/problem1.c: Likewise.
3408 * testsuite/libffi.special/unwindtest.cc: Likewise.
3409 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces.
3410
34112003-09-18 David Edelsohn <edelsohn@gnu.org>
3412
3413 * src/powerpc/aix.S: Cleanup whitespaces.
3414 * src/powerpc/aix_closure.S: Likewise.
3415
34162003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
3417
3418 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting.
3419 * src/powerpc/darwin_closure.S: Likewise.
3420 * src/powerpc/ffi_darwin.c: Likewise.
3421
34222003-09-18 Andreas Tobler <a.tobler@schweiz.ch>
3423 David Edelsohn <edelsohn@gnu.org>
3424
3425 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF.
3426 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing
3427 parameter stack.
3428 * src/powerpc/darwin_closure.S: Likewise.
3429 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures
3430 according to the Darwin/AIX ABI.
3431 (ffi_prep_cif_machdep): Likewise.
3432 (ffi_closure_helper_DARWIN): Likewise.
3433 Remove the outgoing parameter stack logic. Simplify the evaluation
3434 of the different CASE types.
3435 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch
3436 statement in the trampoline code.
3437
34382003-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
3439
3440 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement
3441 for the register size.
3442 (ffi_closure_helper_SYSV): Handle the structure return value
3443 address correctly.
3444 (ffi_closure_helper_SYSV): Return the appropriate type when
3445 the registers are used for the structure return value.
3446 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for
3447 the 64-bit return value. Update copyright years.
3448
34492003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3450
3451 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in
3452 srcdir for ffi_mips.h.
3453
34542003-09-12 Alan Modra <amodra@bigpond.net.au>
3455
3456 * src/prep_cif.c (initialize_aggregate): Include tail padding in
3457 structure size.
3458 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct
3459 placement of float result.
3460 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct
3461 cast of "resp" for big-endian 64 bit machines.
3462
34632003-09-11 Alan Modra <amodra@bigpond.net.au>
3464
3465 * src/types.c (double, longdouble): Merge identical SH and ARM
3466 typedefs, and add POWERPC64.
3467 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for
3468 struct split over gpr and rest.
3469 (ffi_prep_cif_machdep): Correct intarg_count for structures.
3470 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets.
3471
34722003-09-09 Andreas Tobler <a.tobler@schweiz.ch>
3473
3474 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct
3475 passing correctly.
3476
34772003-09-09 Alan Modra <amodra@bigpond.net.au>
3478
3479 * configure: Regenerate.
3480
34812003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
3482
3483 * Makefile.am: Remove build rules for ffitest.
3484 * Makefile.in: Rebuilt.
3485
34862003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
3487
3488 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning
3489 about implicit declaration of abort().
3490
34912003-09-04 Andreas Tobler <a.tobler@schweiz.ch>
3492
3493 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411.
3494 * Makefile.in: Rebuilt.
3495 * configure.in: Add dejagnu test framework.
3496 * configure: Rebuilt.
3497
3498 * testsuite/Makefile.am: New file.
3499 * testsuite/Makefile.in: Built
3500 * testsuite/lib/libffi-dg.exp: New file.
3501 * testsuite/config/default.exp: Likewise.
3502 * testsuite/libffi.call/call.exp: Likewise.
3503 * testsuite/libffi.call/ffitest.h: Likewise.
3504 * testsuite/libffi.call/closure_fn0.c: Likewise.
3505 * testsuite/libffi.call/closure_fn1.c: Likewise.
3506 * testsuite/libffi.call/closure_fn2.c: Likewise.
3507 * testsuite/libffi.call/closure_fn3.c: Likewise.
3508 * testsuite/libffi.call/cls_1_1byte.c: Likewise.
3509 * testsuite/libffi.call/cls_3_1byte.c: Likewise.
3510 * testsuite/libffi.call/cls_4_1byte.c: Likewise.
3511 * testsuite/libffi.call/cls_2byte.c: Likewise.
3512 * testsuite/libffi.call/cls_3byte1.c: Likewise.
3513 * testsuite/libffi.call/cls_3byte2.c: Likewise.
3514 * testsuite/libffi.call/cls_4byte.c: Likewise.
3515 * testsuite/libffi.call/cls_5byte.c: Likewise.
3516 * testsuite/libffi.call/cls_6byte.c: Likewise.
3517 * testsuite/libffi.call/cls_7byte.c: Likewise.
3518 * testsuite/libffi.call/cls_8byte.c: Likewise.
3519 * testsuite/libffi.call/cls_12byte.c: Likewise.
3520 * testsuite/libffi.call/cls_16byte.c: Likewise.
3521 * testsuite/libffi.call/cls_20byte.c: Likewise.
3522 * testsuite/libffi.call/cls_24byte.c: Likewise.
3523 * testsuite/libffi.call/cls_double.c: Likewise.
3524 * testsuite/libffi.call/cls_float.c: Likewise.
3525 * testsuite/libffi.call/cls_uchar.c: Likewise.
3526 * testsuite/libffi.call/cls_uint.c: Likewise.
3527 * testsuite/libffi.call/cls_ulonglong.c: Likewise.
3528 * testsuite/libffi.call/cls_ushort.c: Likewise.
3529 * testsuite/libffi.call/float.c: Likewise.
3530 * testsuite/libffi.call/float1.c: Likewise.
3531 * testsuite/libffi.call/float2.c: Likewise.
3532 * testsuite/libffi.call/many.c: Likewise.
3533 * testsuite/libffi.call/many_win32.c: Likewise.
3534 * testsuite/libffi.call/nested_struct.c: Likewise.
3535 * testsuite/libffi.call/nested_struct1.c: Likewise.
3536 * testsuite/libffi.call/pyobjc-tc.c: Likewise.
3537 * testsuite/libffi.call/problem1.c: Likewise.
3538 * testsuite/libffi.call/promotion.c: Likewise.
3539 * testsuite/libffi.call/return_ll.c: Likewise.
3540 * testsuite/libffi.call/return_sc.c: Likewise.
3541 * testsuite/libffi.call/return_uc.c: Likewise.
3542 * testsuite/libffi.call/strlen.c: Likewise.
3543 * testsuite/libffi.call/strlen_win32.c: Likewise.
3544 * testsuite/libffi.call/struct1.c: Likewise.
3545 * testsuite/libffi.call/struct2.c: Likewise.
3546 * testsuite/libffi.call/struct3.c: Likewise.
3547 * testsuite/libffi.call/struct4.c: Likewise.
3548 * testsuite/libffi.call/struct5.c: Likewise.
3549 * testsuite/libffi.call/struct6.c: Likewise.
3550 * testsuite/libffi.call/struct7.c: Likewise.
3551 * testsuite/libffi.call/struct8.c: Likewise.
3552 * testsuite/libffi.call/struct9.c: Likewise.
3553 * testsuite/libffi.special/special.exp: New file.
3554 * testsuite/libffi.special/ffitestcxx.h: Likewise.
3555 * testsuite/libffi.special/unwindtest.cc: Likewise.
3556
3557
35582003-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
3559
3560 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update
3561 copyright years.
3562
35632003-08-02 Alan Modra <amodra@bigpond.net.au>
3564
3565 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc
3566 structure passing.
3567 (ffi_closure_helper_LINUX64): Likewise.
3568 * src/powerpc/linux64.S: Remove code writing to parm save area.
3569 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return
3570 address in lr from ffi_closure_helper_LINUX64 call to calculate
3571 table address. Optimize function tail.
3572
35732003-07-28 Andreas Tobler <a.tobler@schweiz.ch>
3574
3575 * src/sparc/ffi.c: Handle all floating point registers.
3576 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410.
3577
35782003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
3579
3580 * README: Note that libffi is not part of GCC. Update the project
3581 URL and status.
3582
35832003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3584
3585 * src/powerpc/ppc_closure.S: Include ffi.h.
3586
35872003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3588
3589 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives.
3590 Use C style comments.
3591
35922003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3593
3594 * Makefile.am: Add SHmedia support. Fix a typo of SH support.
3595 * Makefile.in: Regenerate.
3596 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target.
3597 * configure: Regenerate.
3598 * include/ffi.h.in: Add SHmedia support.
3599 * src/sh64/ffi.c: New file.
3600 * src/sh64/sysv.S: New file.
3601
36022003-05-16 Jakub Jelinek <jakub@redhat.com>
3603
3604 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
3605 should be read-only.
3606 * configure: Rebuilt.
3607 * fficonfig.h.in: Rebuilt.
3608 * include/ffi.h.in (EH_FRAME_FLAGS): Define.
3609 * src/alpha/osf.S: Use EH_FRAME_FLAGS.
3610 * src/powerpc/linux64.S: Likewise.
3611 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h.
3612 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding
3613 if -fpic/-fPIC/-mrelocatable.
3614 * src/powerpc/powerpc_closure.S: Likewise.
3615 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
3616 #write in .eh_frame flags.
3617 * src/sparc/v9.S: Likewise.
3618 * src/x86/unix64.S: Use EH_FRAME_FLAGS.
3619 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC.
3620 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h.
3621
36222003-05-07 Jeff Sturm <jsturm@one-point.com>
3623
3624 Fixes PR bootstrap/10656
3625 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler
3626 support for .register pseudo-op.
3627 * src/sparc/v8.S: Use it.
3628 * fficonfig.h.in: Rebuilt.
3629 * configure: Rebuilt.
3630
36312003-04-18 Jakub Jelinek <jakub@redhat.com>
3632
3633 * include/ffi.h.in (POWERPC64): Define if 64-bit.
3634 (enum ffi_abi): Add FFI_LINUX64 on POWERPC.
3635 Make it the default on POWERPC64.
3636 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64.
3637 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*.
3638 * configure: Rebuilt.
3639 * src/powerpc/ffi.c (hidden): Define.
3640 (ffi_prep_args_SYSV): Renamed from
3641 ffi_prep_args. Cast pointers to unsigned long to shut up warnings.
3642 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64,
3643 ASM_NEEDS_REGISTERS64): New.
3644 (ffi_prep_args64): New function.
3645 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI.
3646 (ffi_call): Likewise.
3647 (ffi_prep_closure): Likewise.
3648 (flush_icache): Surround by #ifndef POWERPC64.
3649 (ffi_dblfl): New union type.
3650 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems.
3651 (ffi_closure_helper_LINUX64): New function.
3652 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef
3653 __powerpc64__.
3654 * src/powerpc/sysv.S: Likewise.
3655 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV.
3656 * src/powerpc/linux64.S: New file.
3657 * src/powerpc/linux64_closure.S: New file.
3658 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and
3659 src/powerpc/linux64_closure.S.
3660 (TARGET_SRC_POWERPC): Likewise.
3661
3662 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2,
3663 closure_test_fn3): Fix result printing on big-endian 64-bit
3664 machines.
3665 (main): Print tst2_arg instead of uninitialized tst2_result.
3666
3667 * src/ffitest.c (main): Hide what closure pointer really points to
3668 from the compiler.
3669
36702003-04-16 Richard Earnshaw <rearnsha@arm.com>
3671
3672 * configure.in (arm-*-netbsdelf*): Add configuration.
3673 (configure): Regenerated.
3674
36752003-04-04 Loren J. Rittle <ljrittle@acm.org>
3676
3677 * include/Makefile.in: Regenerate.
3678
36792003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3680
3681 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32
3682 bit mode.
3683 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV):
3684 Receive closure pointer through parameter, read args using
3685 __builtin_dwarf_cfa.
3686 (FFI_INIT_TRAMPOLINE): Send closure reference through eax.
3687
36882003-03-12 Andreas Schwab <schwab@suse.de>
3689
3690 * configure.in: Avoid trailing /. in toolexeclibdir.
3691 * configure: Rebuilt.
3692
36932003-03-03 Andreas Tobler <a.tobler@schweiz.ch>
3694
3695 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries.
3696
36972003-02-06 Andreas Tobler <a.tobler@schweiz.ch>
3698
3699 * libffi/src/powerpc/darwin_closure.S:
3700 Fix alignement bug, allocate 8 bytes for the result.
3701 * libffi/src/powerpc/aix_closure.S:
3702 Likewise.
3703 * libffi/src/powerpc/ffi_darwin.c:
3704 Update stackframe description for aix/darwin_closure.S.
3705
37062003-02-06 Jakub Jelinek <jakub@redhat.com>
3707
3708 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility
3709 attribute.
3710
37112003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>,
3712 Andreas Schwab <schwab@suse.de>
3713
3714 * configure.in: Adjust command to source config-ml.in to account
3715 for changes to the libffi_basedir definition.
3716 (libffi_basedir): Remove ${srcdir} from value and include trailing
3717 slash if nonempty.
3718
3719 * configure: Regenerate.
3720
37212003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3722
3723 * src/powerpc/ppc_closure.S: Recode to fit shared libs.
3724
37252003-01-28 Andrew Haley <aph@redhat.com>
3726
3727 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64.
3728 * src/x86/ffi64.c (ffi_prep_closure): New.
3729 (ffi_closure_UNIX64_inner): New.
3730 * src/x86/unix64.S (ffi_closure_UNIX64): New.
3731
37322003-01-27 Alexandre Oliva <aoliva@redhat.com>
3733
3734 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
3735 Remove USE_LIBDIR conditional.
3736 * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
3737 * Makefile.in, configure: Rebuilt.
3738
37392003-01027 David Edelsohn <edelsohn@gnu.org>
3740
3741 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo.
3742 * Makefile.in: Regenerate.
3743
37442003-01-22 Andrew Haley <aph@redhat.com>
3745
3746 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to
3747 unwind info.
3748
37492003-01-21 Andreas Tobler <a.tobler@schweiz.ch>
3750
3751 * src/powerpc/darwin.S: Add unwind info.
3752 * src/powerpc/darwin_closure.S: Likewise.
3753
37542003-01-14 Andrew Haley <aph@redhat.com>
3755
3756 * src/x86/ffi64.c (ffi_prep_args): Check for void retval.
3757 (ffi_prep_cif_machdep): Likewise.
3758 * src/x86/unix64.S: Add unwind info.
3759
37602003-01-14 Andreas Jaeger <aj@suse.de>
3761
3762 * src/ffitest.c (main): Only use ffi_closures if those are
3763 supported.
3764
37652003-01-13 Andreas Tobler <a.tobler@schweiz.ch>
3766
3767 * libffi/src/ffitest.c
3768 add closure testcases
3769
37702003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca>
3771
3772 * libffi/src/powerpc/ffi.c
3773 fix alignment bug for float (4 byte aligned iso 8 byte)
3774
37752003-01-09 Geoffrey Keating <geoffk@apple.com>
3776
3777 * src/powerpc/ffi_darwin.c: Remove RCS version string.
3778 * src/powerpc/darwin.S: Remove RCS version string.
3779
37802003-01-03 Jeff Sturm <jsturm@one-point.com>
3781
3782 * include/ffi.h.in: Add closure defines for SPARC, SPARC64.
3783 * src/ffitest.c (main): Use static storage for closure.
3784 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New.
3785 * src/sparc/v8.S (ffi_closure_v8): New.
3786 * src/sparc/v9.S (ffi_closure_v9): New.
3787
37882002-11-10 Ranjit Mathew <rmathew@hotmail.com>
3789
3790 * include/ffi.h.in: Added FFI_STDCALL ffi_type
3791 enumeration for X86_WIN32.
3792 * src/x86/win32.S: Added ffi_call_STDCALL function
3793 definition.
3794 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added
3795 switch cases for recognising FFI_STDCALL and
3796 calling ffi_call_STDCALL if target is X86_WIN32.
3797 * src/ffitest.c (my_stdcall_strlen/stdcall_many):
3798 stdcall versions of the "my_strlen" and "many"
3799 test functions (for X86_WIN32).
3800 Added test cases to test stdcall invocation using
3801 these functions.
3802
38032002-12-02 Kaz Kojima <kkojima@gcc.gnu.org>
3804
3805 * src/sh/sysv.S: Add DWARF2 unwind info.
3806
38072002-11-27 Ulrich Weigand <uweigand@de.ibm.com>
3808
3809 * src/s390/sysv.S (.eh_frame section): Make section read-only.
3810
38112002-11-26 Jim Wilson <wilson@redhat.com>
3812
3813 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64.
3814
38152002-11-23 H.J. Lu <hjl@gnu.org>
3816
3817 * acinclude.m4: Add dummy AM_PROG_LIBTOOL.
3818 Include ../config/accross.m4.
3819 * aclocal.m4; Rebuild.
3820 * configure: Likewise.
3821
38222002-11-15 Ulrich Weigand <uweigand@de.ibm.com>
3823
3824 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
3825
38262002-11-11 DJ Delorie <dj@redhat.com>
3827
3828 * configure.in: Look for common files in the right place.
3829
38302002-10-08 Ulrich Weigand <uweigand@de.ibm.com>
3831
3832 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret
3833 raw data as _Jv_word values, not ffi_raw.
3834 (ffi_java_ptrarray_to_raw): Likewise.
3835 (ffi_java_rvalue_to_raw): New function.
3836 (ffi_java_raw_call): Call it.
3837 (ffi_java_raw_to_rvalue): New function.
3838 (ffi_java_translate_args): Call it.
3839 * src/ffitest.c (closure_test_fn): Interpret return value
3840 as ffi_arg, not int.
3841 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing
3842 FFI_TYPE_POINTER case.
3843 (ffi_closure_helper_SYSV): Likewise. Also, assume return
3844 values extended to word size.
3845
38462002-10-02 Andreas Jaeger <aj@suse.de>
3847
3848 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output.
3849
38502002-10-01 Bo Thorsen <bo@smetana.suse.de>
3851
3852 * include/ffi.h.in: Fix i386 win32 compilation.
3853
38542002-09-30 Ulrich Weigand <uweigand@de.ibm.com>
3855
3856 * configure.in: Add s390x-*-linux-* target.
3857 * configure: Regenerate.
3858 * include/ffi.h.in: Define S390X for s390x targets.
3859 (FFI_CLOSURES): Define for s390/s390x.
3860 (FFI_TRAMPOLINE_SIZE): Likewise.
3861 (FFI_NATIVE_RAW_API): Likewise.
3862 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390.
3863 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x.
3864 * src/s390/ffi.c: Major rework of existing code. Add support for
3865 s390x targets. Add closure support.
3866 * src/s390/sysv.S: Likewise.
3867
38682002-09-29 Richard Earnshaw <rearnsha@arm.com>
3869
3870 * src/arm/sysv.S: Fix typo.
3871
38722002-09-28 Richard Earnshaw <rearnsha@arm.com>
3873
3874 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor
3875 has defined __USER_LABEL_PREFIX__, then use it in CNAME.
3876 (ffi_call_SYSV): Handle soft-float.
3877
38782002-09-27 Bo Thorsen <bo@suse.de>
3879
3880 * include/ffi.h.in: Fix multilib x86-64 support.
3881
38822002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3883
3884 * Makefile.am (all-multi): Fix multilib parallel build.
3885
38862002-07-19 Kaz Kojima <kkojima@gcc.gnu.org>
3887
3888 * configure.in (sh[34]*-*-linux*): Add brackets.
3889 * configure: Regenerate.
3890
38912002-07-18 Kaz Kojima <kkojima@gcc.gnu.org>
3892
3893 * Makefile.am: Add SH support.
3894 * Makefile.in: Regenerate.
3895 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target.
3896 * configure: Regenerate.
3897 * include/ffi.h.in: Add SH support.
3898 * src/sh/ffi.c: New file.
3899 * src/sh/sysv.S: New file.
3900 * src/types.c: Add SH support.
3901
39022002-07-16 Bo Thorsen <bo@suse.de>
3903
3904 * src/x86/ffi64.c: New file that adds x86-64 support.
3905 * src/x86/unix64.S: New file that handles argument setup for
3906 x86-64.
3907 * src/x86/sysv.S: Don't use this on x86-64.
3908 * src/x86/ffi.c: Don't use this on x86-64.
3909 Remove unused vars.
3910 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation
3911 for x86-64.
3912 * src/ffitest.c (struct6): New test that tests a special case in
3913 the x86-64 ABI.
3914 (struct7): Likewise.
3915 (struct8): Likewise.
3916 (struct9): Likewise.
3917 (closure_test_fn): Silence warning about this when it's not used.
3918 (main): Add the new tests.
3919 (main): Fix a couple of wrong casts and silence some compiler warnings.
3920 * include/ffi.h.in: Add x86-64 ABI definition.
3921 * fficonfig.h.in: Regenerate.
3922 * Makefile.am: Add x86-64 support.
3923 * configure.in: Likewise.
3924 * Makefile.in: Regenerate.
3925 * configure: Likewise.
3926
39272002-06-24 Bo Thorsen <bo@suse.de>
3928
3929 * src/types.c: Merge settings for similar architectures.
3930 Add x86-64 sizes and alignments.
3931
39322002-06-23 Bo Thorsen <bo@suse.de>
3933
3934 * src/arm/ffi.c (ffi_prep_args): Remove unused vars.
3935 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise.
3936 * src/mips/ffi.c (ffi_prep_args): Likewise.
3937 * src/m68k/ffi.c (ffi_prep_args): Likewise.
3938
39392002-07-18 H.J. Lu (hjl@gnu.org)
3940
3941 * Makefile.am (TARGET_SRC_MIPS_LINUX): New.
3942 (libffi_la_SOURCES): Support MIPS_LINUX.
3943 (libffi_convenience_la_SOURCES): Likewise.
3944 * Makefile.in: Regenerated.
3945
3946 * configure.in (mips64*-*): Skip.
3947 (mips*-*-linux*): New.
3948 * configure: Regenerated.
3949
3950 * src/mips/ffi.c: Include <sgidefs.h>.
3951
39522002-06-06 Ulrich Weigand <uweigand@de.ibm.com>
3953
3954 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info.
3955
39562002-05-27 Roger Sayle <roger@eyesopen.com>
3957
3958 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn.
3959
39602002-05-27 Bo Thorsen <bo@suse.de>
3961
3962 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and
3963 fix formatting.
3964
39652002-05-13 Andreas Tobler <a.tobler@schweiz.ch>
3966
3967 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at
3968 beginning of function (for older apple cc).
3969
39702002-05-08 Alexandre Oliva <aoliva@redhat.com>
3971
3972 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at
3973 script entry, and set LD to it when configuring multilibs.
3974 * configure: Rebuilt.
3975
39762002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
3977
3978 * configure.in (sparc64-*-netbsd*): Add target.
3979 (sparc-*-netbsdelf*): Likewise.
3980 * configure: Regenerate.
3981
39822002-04-28 David S. Miller <davem@redhat.com>
3983
3984 * configure.in, configure: Fix SPARC test in previous change.
3985
39862002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
3987
3988 * Makefile.am: Add Linux for S/390 support.
3989 * Makefile.in: Regenerate.
3990 * configure.in: Add Linux for S/390 support.
3991 * configure: Regenerate.
3992 * include/ffi.h.in: Add Linux for S/390 support.
3993 * src/s390/ffi.c: New file from libffi CVS tree.
3994 * src/s390/sysv.S: New file from libffi CVS tree.
3995
39962002-04-28 Jakub Jelinek <jakub@redhat.com>
3997
3998 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working
3999 %r_disp32().
4000 * src/sparc/v8.S: Use it.
4001 * src/sparc/v9.S: Likewise.
4002 * fficonfig.h.in: Rebuilt.
4003 * configure: Rebuilt.
4004
40052002-04-08 Hans Boehm <Hans_Boehm@hp.com>
4006
4007 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE
4008 correctly.
4009 * src/ia64/unix.S: Add unwind information. Fix comments.
4010 Save sp in a way that's compatible with unwind info.
4011 (ffi_call_unix): Correctly restore sp in all cases.
4012 * src/ia64/ffi.c: Add, fix comments.
4013
40142002-04-08 Jakub Jelinek <jakub@redhat.com>
4015
4016 * src/sparc/v8.S: Make .eh_frame dependent on target word size.
4017
40182002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
4019
4020 * configure.in (alpha*-*-netbsd*): Add target.
4021 * configure: Regenerate.
4022
40232002-04-04 Jeff Sturm <jsturm@one-point.com>
4024
4025 * src/sparc/v8.S: Add unwind info.
4026 * src/sparc/v9.S: Likewise.
4027
40282002-03-30 Krister Walfridsson <cato@df.lth.se>
4029
4030 * configure.in: Enable i*86-*-netbsdelf*.
4031 * configure: Rebuilt.
4032
40332002-03-29 David Billinghurst <David.Billinghurst@riotinto.com>
4034
4035 PR other/2620
4036 * src/mips/n32.s: Delete
4037 * src/mips/o32.s: Delete
4038
40392002-03-21 Loren J. Rittle <ljrittle@acm.org>
4040
4041 * configure.in: Enable alpha*-*-freebsd*.
4042 * configure: Rebuilt.
4043
40442002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4045
4046 * Makefile.am: libfficonvenience -> libffi_convenience.
4047 * Makefile.in: Rebuilt.
4048
4049 * Makefile.am: Define ffitest_OBJECTS.
4050 * Makefile.in: Rebuilt.
4051
40522002-03-07 Andreas Tobler <toa@pop.agri.ch>
4053 David Edelsohn <edelsohn@gnu.org>
4054
4055 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files.
4056 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S.
4057 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S.
4058 * Makefile.in: Regenerate.
4059 * include/ffi.h.in: Add AIX and Darwin closure definitions.
4060 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function.
4061 (flush_icache, flush_range): New functions.
4062 (ffi_closure_helper_DARWIN): New function.
4063 * src/powerpc/aix_closure.S: New file.
4064 * src/powerpc/darwin_closure.S: New file.
4065
40662002-02-24 Jeff Sturm <jsturm@one-point.com>
4067
4068 * include/ffi.h.in: Add typedef for ffi_arg.
4069 * src/ffitest.c (main): Declare rint with ffi_arg.
4070
40712002-02-21 Andreas Tobler <toa@pop.agri.ch>
4072
4073 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate
4074 number of GPRs for floating-point arguments.
4075
40762002-01-31 Anthony Green <green@redhat.com>
4077
4078 * configure: Rebuilt.
4079 * configure.in: Replace CHECK_SIZEOF and endian tests with
4080 cross-compiler friendly macros.
4081 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New
4082 macros.
4083
40842002-01-18 David Edelsohn <edelsohn@gnu.org>
4085
4086 * src/powerpc/darwin.S (_ffi_call_AIX): New.
4087 * src/powerpc/aix.S (ffi_call_DARWIN): New.
4088
40892002-01-17 David Edelsohn <edelsohn@gnu.org>
4090
4091 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files.
4092 (TARGET_SRC_POWERPC_AIX): New.
4093 (POWERPC_AIX): New stanza.
4094 * Makefile.in: Regenerate.
4095 * configure.in: Add AIX case.
4096 * configure: Regenerate.
4097 * include/ffi.h.in (ffi_abi): Add FFI_AIX.
4098 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame
4099 size. Fix "long double" support.
4100 (ffi_call): Add FFI_AIX case.
4101 * src/powerpc/aix.S: New.
4102
41032001-10-09 John Hornkvist <john@toastedmarshmallow.com>
4104
4105 Implement Darwin PowerPC ABI.
4106 * configure.in: Handle powerpc-*-darwin*.
4107 * Makefile.am: Set source files for POWERPC_DARWIN.
4108 * configure: Rebuilt.
4109 * Makefile.in: Rebuilt.
4110 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for
4111 POWERPC_DARWIN.
4112 * src/powerpc/darwin.S: New file.
4113 * src/powerpc/ffi_darwin.c: New file.
4114
41152001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
4116
4117 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate".
4118
41192001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4120
4121 * src/x86/sysv.S: Avoid gas-only .balign directive.
4122 Use C style comments.
4123
41242001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4125
4126 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
4127 Fixes PR bootstrap/3563.
4128
41292001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4130
4131 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF.
4132
41332001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4134
4135 * configure.in: Recognize sparc*-sun-* host.
4136 * configure: Regenerate.
4137
41382001-06-06 Andrew Haley <aph@redhat.com>
4139
4140 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF.
4141
41422001-06-03 Andrew Haley <aph@redhat.com>
4143
4144 * src/alpha/osf.S: Add unwind info.
4145 * src/powerpc/sysv.S: Add unwind info.
4146 * src/powerpc/ppc_closure.S: Likewise.
4147
41482000-05-31 Jeff Sturm <jsturm@one-point.com>
4149
4150 * configure.in: Fix AC_ARG_ENABLE usage.
4151 * configure: Rebuilt.
4152
41532001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
4154
4155 * configure.in: Remove warning about beta code.
4156 * configure: Rebuilt.
4157
41582001-04-25 Hans Boehm <Hans_Boehm@hp.com>
4159
4160 * src/ia64/unix.S: Restore stack pointer when returning from
4161 ffi_closure_UNIX.
4162 * src/ia64/ffi.c: Fix typo in comment.
4163
41642001-04-18 Jim Wilson <wilson@redhat.com>
4165
4166 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2
4167 to eliminate RAW DV.
4168
41692001-04-12 Bryce McKinlay <bryce@albatross.co.nz>
4170
4171 * Makefile.am: Make a libtool convenience library.
4172 * Makefile.in: Rebuilt.
4173
41742001-03-29 Bryce McKinlay <bryce@albatross.co.nz>
4175
4176 * configure.in: Use different syntax for subdirectory creation.
4177 * configure: Rebuilt.
4178
41792001-03-27 Jon Beniston <jon@beniston.com>
4180
4181 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW).
4182 * configure: Rebuilt.
4183 * Makefile.am: Added X86_WIN32 target support.
4184 * Makefile.in: Rebuilt.
4185
4186 * include/ffi.h.in: Added X86_WIN32 target support.
4187
4188 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets.
4189 * src/types.c: Added X86_WIN32 target support.
4190
4191 * src/x86/win32.S: New file. Based on sysv.S, but with EH
4192 stuff removed and made to work with CygWin's gas.
4193
41942001-03-26 Bryce McKinlay <bryce@albatross.co.nz>
4195
4196 * configure.in: Make target subdirectory in build dir.
4197 * Makefile.am: Override suffix based rules to specify correct output
4198 subdirectory.
4199 * Makefile.in: Rebuilt.
4200 * configure: Rebuilt.
4201
42022001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
4203
4204 * src/powerpc/ppc_closure.S: New file.
4205 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug
4206 involving long long and register pairs.
4207 (ffi_prep_closure): New function.
4208 (flush_icache): Likewise.
4209 (ffi_closure_helper_SYSV): Likewise.
4210 * include/ffi.h.in (FFI_CLOSURES): Define on PPC.
4211 (FFI_TRAMPOLINE_SIZE): Likewise.
4212 (FFI_NATIVE_RAW_API): Likewise.
4213 * Makefile.in: Rebuilt.
4214 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S.
4215 (TARGET_SRC_POWERPC): Likewise.
4216
42172001-03-19 Tom Tromey <tromey@redhat.com>
4218
4219 * Makefile.in: Rebuilt.
4220 * Makefile.am (ffitest_LDFLAGS): New macro.
4221
42222001-03-02 Nick Clifton <nickc@redhat.com>
4223
4224 * include/ffi.h.in: Remove RCS ident string.
4225 * include/ffi_mips.h: Remove RCS ident string.
4226 * src/debug.c: Remove RCS ident string.
4227 * src/ffitest.c: Remove RCS ident string.
4228 * src/prep_cif.c: Remove RCS ident string.
4229 * src/types.c: Remove RCS ident string.
4230 * src/alpha/ffi.c: Remove RCS ident string.
4231 * src/alpha/osf.S: Remove RCS ident string.
4232 * src/arm/ffi.c: Remove RCS ident string.
4233 * src/arm/sysv.S: Remove RCS ident string.
4234 * src/mips/ffi.c: Remove RCS ident string.
4235 * src/mips/n32.S: Remove RCS ident string.
4236 * src/mips/o32.S: Remove RCS ident string.
4237 * src/sparc/ffi.c: Remove RCS ident string.
4238 * src/sparc/v8.S: Remove RCS ident string.
4239 * src/sparc/v9.S: Remove RCS ident string.
4240 * src/x86/ffi.c: Remove RCS ident string.
4241 * src/x86/sysv.S: Remove RCS ident string.
4242
42432001-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
4244
4245 * include/ffi.h.in: Change sourceware.cygnus.com references to
4246 gcc.gnu.org.
4247
42482000-12-09 Richard Henderson <rth@redhat.com>
4249
4250 * src/alpha/ffi.c (ffi_call): Simplify struct return test.
4251 (ffi_closure_osf_inner): Index rather than increment avalue
4252 and arg_types. Give ffi_closure_osf the raw return value type.
4253 * src/alpha/osf.S (ffi_closure_osf): Handle return value type
4254 promotion.
4255
42562000-12-07 Richard Henderson <rth@redhat.com>
4257
4258 * src/raw_api.c (ffi_translate_args): Fix typo.
4259 (ffi_prep_closure): Likewise.
4260
4261 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and
4262 FFI_TRAMPOLINE_SIZE.
4263 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal
4264 cif->bytes for new ffi_call_osf implementation.
4265 (ffi_prep_args): Absorb into ...
4266 (ffi_call): ... here. Do all stack allocation here and
4267 avoid a callback function.
4268 (ffi_prep_closure, ffi_closure_osf_inner): New.
4269 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback.
4270 (ffi_closure_osf): New.
4271
42722000-09-10 Alexandre Oliva <aoliva@redhat.com>
4273
4274 * config.guess, config.sub, install-sh: Removed.
4275 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise.
4276 * Makefile.in: Rebuilt.
4277
4278 * acinclude.m4: Include libtool macros from the top level.
4279 * aclocal.m4, configure: Rebuilt.
4280
42812000-08-22 Alexandre Oliva <aoliva@redhat.com>
4282
4283 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set.
4284 * configure: Rebuilt.
4285
42862000-05-11 Scott Bambrough <scottb@netwinder.org>
4287
4288 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to
4289 memory correctly. Use conditional instructions, not branches where
4290 possible.
4291
42922000-05-04 Tom Tromey <tromey@cygnus.com>
4293
4294 * configure: Rebuilt.
4295 * configure.in: Match `arm*-*-linux-*'.
4296 From Chris Dornan <cdornan@arm.com>.
4297
42982000-04-28 Jakub Jelinek <jakub@redhat.com>
4299
4300 * Makefile.am (SUBDIRS): Define.
4301 (AM_MAKEFLAGS): Likewise.
4302 (Multilib support.): Add section.
4303 * Makefile.in: Rebuilt.
4304 * ltconfig (extra_compiler_flags, extra_compiler_flags_value):
4305 New variables. Set for gcc using -print-multi-lib. Export them
4306 to libtool.
4307 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths.
4308 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options
4309 for -shared links.
4310 (extra_compiler_flags_value, extra_compiler_flags): Check these
4311 for extra compiler options which need to be passed down in
4312 compiler_flags.
4313
43142000-04-16 Anthony Green <green@redhat.com>
4315
4316 * configure: Rebuilt.
4317 * configure.in: Change i*86-pc-linux* to i*86-*-linux*.
4318
43192000-04-14 Jakub Jelinek <jakub@redhat.com>
4320
4321 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds.
4322 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define.
4323 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args.
4324 Replace all void * sizeofs with sizeof(int).
4325 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is
4326 different than DOUBLE.
4327 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere).
4328 (ffi_prep_args_v9): New function.
4329 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8.
4330 (ffi_V9_return_struct): New function.
4331 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from
4332 32bit code (not yet cross-arch calls).
4333 * src/sparc/v8.S: Add struct return delay nop.
4334 Handle long long.
4335 * src/sparc/v9.S: New file.
4336 * src/prep_cif.c (ffi_prep_cif): Return structure pointer
4337 is used on sparc64 only for structures larger than 32 bytes.
4338 Pass by reference for structures is done for structure arguments
4339 larger than 16 bytes.
4340 * src/ffitest.c (main): Use 64bit rint on sparc64.
4341 Run long long tests on sparc.
4342 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and
4343 sparc64.
4344 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits
4345 on sparc64.
4346 * configure.in (sparc-*-linux*): New supported target.
4347 (sparc64-*-linux*): Likewise.
4348 * configure: Rebuilt.
4349 * Makefile.am: Add v9.S to SPARC files.
4350 * Makefile.in: Likewise.
4351 (LINK): Surround $(CCLD) into double quotes, so that multilib
4352 compiles work correctly.
4353
43542000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com>
4355
4356 * configure: Rebuilt.
4357 * configure.in: (i*86-*-solaris*): New libffi target. Patch
4358 proposed by Bryce McKinlay.
4359
43602000-03-20 Tom Tromey <tromey@cygnus.com>
4361
4362 * Makefile.in: Hand edit for java_raw_api.lo.
4363
43642000-03-08 Bryce McKinlay <bryce@albatross.co.nz>
4365
4366 * config.guess, config.sub: Update from the gcc tree.
4367 Fix for PR libgcj/168.
4368
43692000-03-03 Tom Tromey <tromey@cygnus.com>
4370
4371 * Makefile.in: Fixed ia64 by hand.
4372
4373 * configure: Rebuilt.
4374 * configure.in (--enable-multilib): New option.
4375 (libffi_basedir): New subst.
4376 (AC_OUTPUT): Added multilib code.
4377
43782000-03-02 Tom Tromey <tromey@cygnus.com>
4379
4380 * Makefile.in: Rebuilt.
4381 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as
4382 directory name.
4383
43842000-02-25 Hans Boehm <boehm@acm.org>
4385
4386 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New
4387 files.
4388 * src/raw_api.c (ffi_translate_args): Fixed typo in argument
4389 list.
4390 (ffi_prep_raw_closure): Use ffi_translate_args, not
4391 ffi_closure_translate.
4392 * src/java_raw_api.c: New file.
4393 * src/ffitest.c (closure_test_fn): New function.
4394 (main): Define `rint' as long long on IA64. Added new test when
4395 FFI_CLOSURES is defined.
4396 * include/ffi.h.in (ALIGN): Use size_t, not unsigned.
4397 (ffi_abi): Recognize IA64.
4398 (ffi_raw): Added `flt' field.
4399 Added "Java raw API" code.
4400 * configure.in: Recognize ia64.
4401 * Makefile.am (TARGET_SRC_IA64): New macro.
4402 (libffi_la_common_SOURCES): Added java_raw_api.c.
4403 (libffi_la_SOURCES): Define in IA64 case.
4404
44052000-01-04 Tom Tromey <tromey@cygnus.com>
4406
4407 * Makefile.in: Rebuilt with newer automake.
4408
44091999-12-31 Tom Tromey <tromey@cygnus.com>
4410
4411 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src.
4412
44131999-09-01 Tom Tromey <tromey@cygnus.com>
4414
4415 * include/ffi.h.in: Removed PACKAGE and VERSION defines and
4416 undefs.
4417 * fficonfig.h.in: Rebuilt.
4418 * configure: Rebuilt.
4419 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE.
4420 Use AM_PROG_LIBTOOL (automake 1.4 compatibility).
4421 * acconfig.h: Don't #undef PACKAGE or VERSION.
4422
44231999-08-09 Anthony Green <green@cygnus.com>
4424
4425 * include/ffi.h.in: Try to work around messy header problem
4426 with PACKAGE and VERSION.
4427
4428 * configure: Rebuilt.
4429 * configure.in: Change version to 2.00-beta.
4430
4431 * fficonfig.h.in: Rebuilt.
4432 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define.
4433
4434 * src/x86/ffi.c (ffi_raw_call): Rename.
4435
44361999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp>
4437
4438 * src/x86/ffi.c (ffi_closure_SYSV): New function.
4439 (ffi_prep_incoming_args_SYSV): Ditto.
4440 (ffi_prep_closure): Ditto.
4441 (ffi_closure_raw_SYSV): Ditto.
4442 (ffi_prep_raw_closure): More ditto.
4443 (ffi_call_raw): Final ditto.
4444
4445 * include/ffi.h.in: Add definitions for closure and raw API.
4446
4447 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for
4448 FFI_TYPE_UINT64.
4449
4450 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c
4451
4452 * src/raw_api.c: New file.
4453
4454 * include/ffi.h.in (ffi_raw): New type.
4455 (UINT_ARG, SINT_ARG): New defines.
4456 (ffi_closure, ffi_raw_closure): New types.
4457 (ffi_prep_closure, ffi_prep_raw_closure): New declarations.
4458
4459 * configure.in: Add check for endianness and sizeof void*.
4460
4461 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument,
4462 instead of directly.
4463
4464 * configure: Rebuilt.
4465
4466Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com>
4467
4468 * configure.in: Add x86 and powerpc BeOS configurations.
4469 From Makoto Kato <m_kato@ga2.so-net.ne.jp>.
4470
44711999-05-09 Anthony Green <green@cygnus.com>
4472
4473 * configure.in: Add warning about this being beta code.
4474 Remove src/Makefile.am from the picture.
4475 * configure: Rebuilt.
4476
4477 * Makefile.am: Move logic from src/Makefile.am. Add changes
4478 to support libffi as a target library.
4479 * Makefile.in: Rebuilt.
4480
4481 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh:
4482 Upgraded to new autoconf, automake, libtool.
4483
4484 * README: Tweaks.
4485
4486 * LICENSE: Update copyright date.
4487
4488 * src/Makefile.am, src/Makefile.in: Removed.
4489
44901998-11-29 Anthony Green <green@cygnus.com>
4491
4492 * include/ChangeLog: Removed.
4493 * src/ChangeLog: Removed.
4494 * src/mips/ChangeLog: Removed.
4495 * src/sparc/ChangeLog: Remboved.
4496 * src/x86/ChangeLog: Removed.
4497
4498 * ChangeLog.v1: Created.