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