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