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