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