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