12014-03-16 Josh Triplett <josh@joshtriplett.org> 2 3 * ChangeLog: Archive to ChangeLog.libffi-3.1 and delete. Future 4 changelogs will come from git, with autogenerated snapshots shipped in 5 distributed tarballs. 6 72014-03-16 Josh Triplett <josh@joshtriplett.org> 8 9 Add support for stdcall, thiscall, and fastcall on non-Windows 10 x86-32. 11 12 Linux supports the stdcall calling convention, either via 13 functions explicitly declared with the stdcall attribute, or via 14 code compiled with -mrtd which effectively makes stdcall the 15 default. 16 17 This introduces FFI_STDCALL, FFI_THISCALL, and FFI_FASTCALL on 18 non-Windows x86-32 platforms, as non-default calling conventions. 19 20 * Makefile.am: Compile in src/x86/win32.S on non-Windows x86-32. 21 * src/x86/ffitarget.h: Add FFI_STDCALL, FFI_THISCALL, and 22 FFI_FASTCALL on non-Windows x86-32. Increase trampoline size to 23 accomodate these calling conventions, and unify some ifdeffery. 24 * src/x86/ffi.c: Add support for FFI_STDCALL, FFI_THISCALL, and 25 FFI_FASTCALL on non-Windows x86-32 platforms; update ifdeffery. 26 * src/x86/win32.S: Support compiling on non-Windows x86-32 27 platforms. On those platforms, avoid redefining the SYSV symbols 28 already provided by src/x86/sysv.S. 29 * testsuite/libffi.call/closure_stdcall.c: Run on non-Windows. 30 #define __stdcall if needed. 31 * testsuite/libffi.call/closure_thiscall.c: Run on non-Windows. 32 #define __fastcall if needed. 33 * testsuite/libffi.call/fastthis1_win32.c: Run on non-Windows. 34 * testsuite/libffi.call/fastthis2_win32.c: Ditto. 35 * testsuite/libffi.call/fastthis3_win32.c: Ditto. 36 * testsuite/libffi.call/many2_win32.c: Ditto. 37 * testsuite/libffi.call/many_win32.c: Ditto. 38 * testsuite/libffi.call/strlen2_win32.c: Ditto. 39 * testsuite/libffi.call/strlen_win32.c: Ditto. 40 * testsuite/libffi.call/struct1_win32.c: Ditto. 41 * testsuite/libffi.call/struct2_win32.c: Ditto. 42 432014-03-16 Josh Triplett <josh@joshtriplett.org> 44 45 * prep_cif.c: Remove unnecessary ifdef for X86_WIN32. 46 ffi_prep_cif_core had a special case for X86_WIN32, checking for 47 FFI_THISCALL in addition to the FFI_FIRST_ABI-to-FFI_LAST_ABI 48 range before returning FFI_BAD_ABI. However, on X86_WIN32, 49 FFI_THISCALL already falls in that range, making the special case 50 unnecessary. Remove it. 51 522014-03-16 Josh Triplett <josh@joshtriplett.org> 53 54 * testsuite/libffi.call/closure_stdcall.c, 55 testsuite/libffi.call/closure_thiscall.c: Remove fragile stack 56 pointer checks. These files included inline assembly to save the 57 stack pointer before and after the call, and compare the values. 58 However, compilers can and do leave the stack in different states 59 for these two pieces of inline assembly, such as by saving a 60 temporary value on the stack across the call; observed with gcc 61 -Os, and verified as spurious through careful inspection of 62 disassembly. 63 642014-03-16 Josh Triplett <josh@joshtriplett.org> 65 66 * testsuite/libffi.call/many.c: Avoid spurious failure due to 67 excess floating-point precision. 68 * testsuite/libffi.call/many_win32.c: Ditto. 69 702014-03-16 Josh Triplett <josh@joshtriplett.org> 71 72 * libtool-ldflags: Re-add. 73 742014-03-16 Josh Triplett <josh@joshtriplett.org> 75 76 * Makefile.in, aclocal.m4, compile, config.guess, config.sub, 77 configure, depcomp, include/Makefile.in, install-sh, 78 libtool-ldflags, ltmain.sh, m4/libtool.m4, m4/ltoptions.m4, 79 m4/ltsugar.m4, m4/ltversion.m4, m4/lt~obsolete.m4, 80 man/Makefile.in, mdate-sh, missing, testsuite/Makefile.in: Delete 81 autogenerated files from version control. 82 * .gitignore: Add autogenerated files. 83 * autogen.sh: New script to generate the autogenerated files. 84 * README: Document requirement to run autogen.sh when building 85 directly from version control. 86 * .travis.yml: Run autogen.sh 87 882014-03-14 Anthony Green <green@moxielogic.com> 89 90 * configure, Makefile.in: Rebuilt. 91 922014-03-10 Mike Hommey <mh+mozilla@glandium.org> 93 94 * configure.ac: Allow building for mipsel with Android NDK r8. 95 * Makefile.am (AM_MAKEFLAGS): Replace double quotes with single 96 quotes. 97 982014-03-10 Landry Breuil <landry@openbsd.org> 99 100 * configure.ac: Ensure the linker supports @unwind sections in libffi. 101 1022014-03-01 Anthony Green <green@moxielogic.com> 103 104 * Makefile.am (EXTRA_DIST): Replace old scripts with 105 generate-darwin-source-and-headers.py. 106 * Makefile.in: Rebuilt. 107 1082014-02-28 Anthony Green <green@moxielogic.com> 109 110 * Makefile.am (AM_CFLAGS): Reintroduce missing -DFFI_DEBUG for 111 --enable-debug builds. 112 * Makefile.in: Rebuilt. 113 1142014-02-28 Makoto Kato <m_kato@ga2.so-net.ne.jp> 115 116 * src/closures.c: Fix build failure when using clang for Android. 117 1182014-02-28 Marcin Wojdyr <wojdyr@gmail.com> 119 120 * libffi.pc.in (toolexeclibdir): use -L${toolexeclibdir} instead 121 of -L${libdir}. 122 1232014-02-28 Paulo Pizarro <paulo.pizarro@gmail.com> 124 125 * src/bfin/sysv.S: Calling functions in shared libraries requires 126 considering the GOT. 127 1282014-02-28 Josh Triplett <josh@joshtriplett.org> 129 130 * src/x86/ffi64.c (classify_argument): Handle case where 131 FFI_TYPE_LONGDOUBLE == FFI_TYPE_DOUBLE. 132 1332014-02-28 Anthony Green <green@moxielogic.com> 134 135 * ltmain.sh: Generate with libtool-2.4.2.418. 136 * m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4: Ditto. 137 * configure: Rebuilt. 138 1392014-02-28 Dominik Vogt <vogt@linux.vnet.ibm.com> 140 141 * configure.ac (AC_ARG_ENABLE struct): Fix typo in help 142 message. 143 (AC_ARG_ENABLE raw_api): Ditto. 144 * configure, fficonfig.h.in: Rebuilt. 145 1462014-02-28 Will Newton <will.newton@linaro.org> 147 148 * src/arm/sysv.S: Initialize IP register with FP. 149 1502014-02-28 Yufeng Zhang <yufeng.zhang@arm.com> 151 152 * src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the 153 main CFA reg; update cfi_rel_offset. 154 1552014-02-15 Marcus Comstedt <marcus@mc.pp.se> 156 157 * src/powerpc/ffi_linux64.c, src/powerpc/linux64_closure.S: Remove 158 assumption on contents of r11 in closure. 159 1602014-02-09 Heiher <r@hev.cc> 161 162 * src/mips/n32.S: Fix call floating point va function. 163 1642014-01-21 Zachary Waldowski <zach@waldowski.me> 165 166 * src/aarch64/ffi.c: Fix missing semicolons on assertions under 167 debug mode. 168 1692013-12-30 Zachary Waldowski <zach@waldowski.me> 170 171 * .gitignore: Exclude darwin_* generated source and build_* trees. 172 * src/aarch64/ffi.c, src/arm/ffi.c, src/x86/ffi.c: Inhibit Clang 173 previous prototype warnings. 174 * src/arm/ffi.c: Prevent NULL dereference, fix short type warning 175 * src/dlmalloc.c: Fix warnings from set_segment_flags return type, 176 and the native use of size_t for malloc on platforms 177 * src/arm/sysv.S: Use unified syntax. Clang clean-ups for 178 ARM_FUNC_START. 179 * generate-osx-source-and-headers.py: Remove. 180 * build-ios.sh: Remove. 181 * libffi.xcodeproj/project.pbxproj: Rebuild targets. Include 182 x86_64+aarch64 pieces in library. Export headers properly. 183 * src/x86/ffi64.c: More Clang warning clean-ups. 184 * src/closures.c (open_temp_exec_file_dir): Use size_t. 185 * src/prep_cif.c (ffi_prep_cif_core): Cast ALIGN result. 186 * src/aarch64/sysv.S: Use CNAME for global symbols. Only use 187 .size for ELF targets. 188 * src/aarch64/ffi.c: Clean up for double == long double. Clean up 189 from Clang warnings. Use Clang cache invalidation builtin. Use 190 size_t in place of unsigned in many places. Accommodate for 191 differences in Apple AArch64 ABI. 192 1932013-12-02 Daniel Rodríguez Troitiño <drodrigueztroitino@yahoo.es> 194 195 * generate-darwin-source-and-headers.py: Clean up, modernize, 196 merged version of previous scripts. 197 1982013-11-21 Anthony Green <green@moxielogic.com> 199 200 * configure, Makefile.in, include/Makefile.in, include/ffi.h.in, 201 man/Makefile.in, testsuite/Makefile.in, fficonfig.h.in: Rebuilt. 202 2032013-11-21 Alan Modra <amodra@gmail.com> 204 205 * Makefile.am (EXTRA_DIST): Add new src/powerpc files. 206 (nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise. 207 * configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc. 208 * include/ffi.h.in (ffi_prep_types): Declare. 209 * src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types. 210 * src/types.c (FFI_NONCONST_TYPEDEF): Define and use for 211 HAVE_LONG_DOUBLE_VARIANT. 212 * src/powerpc/ffi_powerpc.h: New file. 213 * src/powerpc/ffi.c: Split into.. 214 * src/powerpc/ffi_sysv.c: ..new file, and.. 215 * src/powerpc/ffi_linux64.c: ..new file, rewriting parts. 216 * src/powerpc/ffitarget.h (enum ffi_abi): Rewrite powerpc ABI 217 selection as bits controlling features. 218 * src/powerpc/linux64.S: For consistency, use POWERPC64 rather 219 than __powerpc64__. 220 * src/powerpc/linux64_closure.S: Likewise. 221 * src/powerpc/ppc_closure.S: Likewise. Move .note.FNU-stack 222 inside guard. 223 * src/powerpc/sysv.S: Likewise. 224 * configure: Regenerate. 225 * fficonfig.h.in: Regenerate. 226 * Makefile.in: Regenerate. 227 2282013-11-20 Alan Modra <amodra@gmail.com> 229 230 * src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use 231 NUM_FPR_ARG_REGISTERS64 and NUM_GPR_ARG_REGISTERS64 not their 232 32-bit versions for 64-bit code. 233 * src/powerpc/linux64_closure.S: Don't use the return value area 234 as a parameter save area on ELFv2. 235 2362013-11-18 Iain Sandoe <iain@codesourcery.com> 237 238 * src/powerpc/darwin.S (EH): Correct use of pcrel FDE encoding. 239 * src/powerpc/darwin_closure.S (EH): Likewise. Modernise picbase 240 labels. 241 2422013-11-18 Anthony Green <green@moxielogic.com> 243 244 * src/arm/ffi.c (ffi_call): Hoist declaration of temp to top of 245 function. 246 * src/arm/ffi.c (ffi_closure_inner): Moderize function declaration 247 to appease compiler. 248 Thanks for Gregory P. Smith <greg@krypto.org>. 249 2502013-11-18 Anthony Green <green@moxielogic.com> 251 252 * README (tested): Mention PowerPC ELFv2. 253 2542013-11-16 Alan Modra <amodra@gmail.com> 255 256 * src/powerpc/ppc_closure.S: Move errant #endif to where it belongs. 257 Don't bl .Luint128. 258 2592013-11-16 Alan Modra <amodra@gmail.com> 260 261 * src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use #if _CALL_ELF 262 test to select parameter save sizing for ELFv2 vs. ELFv1. 263 * src/powerpc/ffitarget.h (FFI_V2_TYPE_FLOAT_HOMOG, 264 FFI_V2_TYPE_DOUBLE_HOMOG, FFI_V2_TYPE_SMALL_STRUCT): Define. 265 (FFI_TRAMPOLINE_SIZE): Define variant for ELFv2. 266 * src/powerpc/ffi.c (FLAG_ARG_NEEDS_PSAVE): Define. 267 (discover_homogeneous_aggregate): New function. 268 (ffi_prep_args64): Adjust start of param save area for ELFv2. 269 Handle homogenous floating point struct parms. 270 (ffi_prep_cif_machdep_core): Adjust space calculation for ELFv2. 271 Handle ELFv2 return values. Set FLAG_ARG_NEEDS_PSAVE. Handle 272 homogenous floating point structs. 273 (ffi_call): Increase size of smst_buffer for ELFv2. Handle ELFv2. 274 (flush_icache): Compile for ELFv2. 275 (ffi_prep_closure_loc): Set up ELFv2 trampoline. 276 (ffi_closure_helper_LINUX64): Don't return all structs directly 277 to caller. Handle homogenous floating point structs. Handle 278 ELFv2 struct return values. 279 * src/powerpc/linux64.S (ffi_call_LINUX64): Set up r2 for 280 ELFv2. Adjust toc save location. Call function pointer using 281 r12. Handle FLAG_RETURNS_SMST. Don't predict branches. 282 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Set up r2 283 for ELFv2. Define ELFv2 versions of STACKFRAME, PARMSAVE, and 284 RETVAL. Handle possibly missing parameter save area. Handle 285 ELFv2 return values. 286 (.note.GNU-stack): Move inside outer #ifdef. 287 2882013-11-16 Alan Modra <amodra@gmail.com> 289 290 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Revert 2013-02-08 291 change. Do not consume an int arg when returning a small struct 292 for FFI_SYSV ABI. 293 (ffi_call): Only use bounce buffer when FLAG_RETURNS_SMST. 294 Properly copy bounce buffer to destination. 295 * src/powerpc/sysv.S: Revert 2013-02-08 change. 296 * src/powerpc/ppc_closure.S: Remove stray '+'. 297 2982013-11-16 Alan Modra <amodra@gmail.com> 299 300 * src/powerpc/ffi.c (ffi_prep_args64): Align struct parameters 301 according to __STRUCT_PARM_ALIGN__. 302 (ffi_prep_cif_machdep_core): Likewise. 303 (ffi_closure_helper_LINUX64): Likewise. 304 3052013-11-16 Alan Modra <amodra@gmail.com> 306 307 * src/powerpc/linux64.S (ffi_call_LINUX64): Tweak restore of r28. 308 (.note.GNU-stack): Move inside outer #ifdef. 309 * src/powerpc/linux64_closure.S (STACKFRAME, PARMSAVE, 310 RETVAL): Define and use throughout. 311 (ffi_closure_LINUX64): Save fprs before buying stack. 312 (.note.GNU-stack): Move inside outer #ifdef. 313 3142013-11-16 Alan Modra <amodra@gmail.com> 315 316 * src/powerpc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define. 317 (FFI_EXTRA_CIF_FIELDS): Define. 318 * src/powerpc/ffi.c (ffi_prep_args64): Save fprs as per the 319 ABI, not to both fpr and param save area. 320 (ffi_prep_cif_machdep_core): Renamed from ffi_prep_cif_machdep. 321 Keep initial flags. Formatting. Remove dead FFI_LINUX_SOFT_FLOAT 322 code. 323 (ffi_prep_cif_machdep, ffi_prep_cif_machdep_var): New functions. 324 (ffi_closure_helper_LINUX64): Pass floating point as per ABI, 325 not to both fpr and parameter save areas. 326 327 * libffi/testsuite/libffi.call/cls_double_va.c (main): Correct 328 function cast and don't call ffi_prep_cif. 329 * libffi/testsuite/libffi.call/cls_longdouble_va.c (main): Likewise. 330 3312013-11-15 Andrew Haley <aph@redhat.com> 332 333 * doc/libffi.texi (Closure Example): Fix the sample code. 334 * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt. 335 3362013-11-15 Andrew Haley <aph@redhat.com> 337 338 * testsuite/libffi.call/va_struct1.c (main): Fix broken test. 339 * testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise 340 * testsuite/libffi.call/cls_struct_va1.c (test_fn): Likewise. 341 * testsuite/libffi.call/va_1.c (main): Likewise. 342 3432013-11-14 David Schneider <david.schneider@bivab.de> 344 345 * src/arm/ffi.c: Fix register allocation for mixed float and 346 doubles. 347 * testsuite/libffi.call/cls_many_mixed_float_double.c: Testcase 348 for many mixed float and double arguments. 349 3502013-11-13 Alan Modra <amodra@gmail.com> 351 352 * doc/libffi.texi (Simple Example): Correct example code. 353 * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt. 354 3552013-11-13 Anthony Green <green@moxielogic.com> 356 357 * include/ffi_common.h: Respect HAVE_ALLOCA_H for GNU compiler 358 based build. (Thanks to tmr111116 on github) 359 3602013-11-09 Anthony Green <green@moxielogic.com> 361 362 * m4/libtool.m4: Refresh. 363 * configure, Makefile.in: Rebuilt. 364 * README: Add more notes about next release. 365 3662013-11-09 Shigeharu TAKENO <shige@iee.niit.ac.jp> 367 368 * m4/ax_gcc_archflag.m4 (ax_gcc_arch): Don't recognize 369 UltraSPARC-IIi as ultrasparc3. 370 3712013-11-06 Mark Kettenis <kettenis@gnu.org> 372 373 * src/x86/freebsd.S (ffi_call_SYSV): Align the stack pointer to 374 16-bytes. 375 3762013-11-06 Konstantin Belousov <kib@freebsd.org> 377 378 * src/x86/freebsd.S (ffi_closure_raw_SYSV): Mark the assembler 379 source as not requiring executable stack. 380 3812013-11-02 Anthony Green <green@moxielogic.com> 382 383 * doc/libffi.texi (The Basics): Clarify return value buffer size 384 requirements. Also, NULL result buffer pointers are no longer 385 supported. 386 * doc/libffi.info: Rebuilt. 387 3882013-11-02 Mischa Jonker <mjonker@synopsys.com> 389 390 * Makefile.am (nodist_libffi_la_SOURCES): Fix build error. 391 * Makefile.in: Rebuilt. 392 3932013-11-02 David Schneider <david.schneider@bivab.de> 394 395 * src/arm/ffi.c: more robust argument handling for closures on arm hardfloat 396 * testsuite/libffi.call/many_mixed.c: New file. 397 * testsuite/libffi.call/cls_many_mixed_args.c: More tests. 398 3992013-11-02 Vitaly Budovski 400 401 * src/x86/ffi.c (ffi_prep_cif_machdep): Don't align stack for win32. 402 4032013-10-23 Mark H Weaver <mhw@netris.org> 404 405 * src/mips/ffi.c: Fix handling of uint32_t arguments on the 406 MIPS N32 ABI. 407 4082013-10-13 Sandra Loosemore <sandra@codesourcery.com> 409 410 * README: Add Nios II to table of supported platforms. 411 * Makefile.am (EXTRA_DIST): Add nios2 files. 412 (nodist_libffi_la_SOURCES): Likewise. 413 * Makefile.in: Regenerated. 414 * configure.ac (nios2*-linux*): New host. 415 (NIOS2): Add AM_CONDITIONAL. 416 * configure: Regenerated. 417 * src/nios2/ffi.c: New. 418 * src/nios2/ffitarget.h: New. 419 * src/nios2/sysv.S: New. 420 * src/prep_cif.c (initialize_aggregate): Handle extra structure 421 alignment via FFI_AGGREGATE_ALIGNMENT. 422 (ffi_prep_cif_core): Conditionalize structure return for NIOS2. 423 4242013-10-10 Sandra Loosemore <sandra@codesourcery.com> 425 426 * testsuite/libffi.call/cls_many_mixed_args.c (cls_ret_double_fn): 427 Fix uninitialized variable. 428 4292013-10-11 Marcus Shawcroft <marcus.shawcroft@arm.com> 430 431 * testsuite/libffi.call/many.c (many): Replace * with +. 432 4332013-10-08 Ondřej Bílka <neleai@seznam.cz> 434 435 * src/aarch64/ffi.c, src/aarch64/sysv.S, src/arm/ffi.c, 436 src/arm/gentramp.sh, src/bfin/sysv.S, src/closures.c, 437 src/dlmalloc.c, src/ia64/ffi.c, src/microblaze/ffi.c, 438 src/microblaze/sysv.S, src/powerpc/darwin_closure.S, 439 src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/sh/ffi.c, 440 src/tile/tile.S, testsuite/libffi.call/nested_struct11.c: Fix 441 spelling errors. 442 4432013-10-08 Anthony Green <green@moxielogic.com> 444 445 * aclocal.m4, compile, config.guess, config.sub, depcomp, 446 install-sh, mdate-sh, missing, texinfo.tex: Update from upstream. 447 * configure.ac: Update version to 3.0.14-rc0. 448 * Makefile.in, configure, Makefile.in, include/Makefile.in, 449 man/Makefile.in, testsuite/Makefile.in: Rebuilt. 450 * README: Mention M88K and VAX. 451 4522013-07-15 Miod Vallat <miod@openbsd.org> 453 454 * Makefile.am, 455 configure.ac, 456 src/m88k/ffi.c, 457 src/m88k/ffitarget.h, 458 src/m88k/obsd.S, 459 src/vax/elfbsd.S, 460 src/vax/ffi.c, 461 src/vax/ffitarget.h: Add m88k and vax support. 462 4632013-06-24 Alan Modra <amodra@gmail.com> 464 465 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration 466 before statements. 467 (ffi_prep_args64): Support little-endian. 468 (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise. 469 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise. 470 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise. 471 4722013-06-12 Mischa Jonker <mjonker@synopsys.com> 473 474 * configure.ac: Add support for ARC. 475 * Makefile.am: Likewise. 476 * README: Add ARC details. 477 * src/arc/arcompact.S: New. 478 * src/arc/ffi.c: Likewise. 479 * src/arc/ffitarget.h: Likewise. 480 4812013-03-28 David Schneider <david.schneider@bivab.de> 482 483 * src/arm/ffi.c: Fix support for ARM hard-float calling convention. 484 * src/arm/sysv.S: call different methods for SYSV and VFP ABIs. 485 * testsuite/libffi.call/cls_many_mixed_args.c: testcase for a closure with 486 mixed arguments, many doubles. 487 * testsuite/libffi.call/many_double.c: testcase for calling a function using 488 more than 8 doubles. 489 * testcase/libffi.call/many.c: use absolute value to check result against an 490 epsilon 491 4922013-03-17 Anthony Green <green@moxielogic.com> 493 494 * README: Update for 3.0.13. 495 * configure.ac: Ditto. 496 * configure: Rebuilt. 497 * doc/*: Update version. 498 4992013-03-17 Dave Korn <dave.korn.cygwin@gmail.com> 500 501 * src/closures.c (is_emutramp_enabled 502 [!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default definition outside 503 enclosing #if scope. 504 5052013-03-17 Anthony Green <green@moxielogic.com> 506 507 * configure.ac: Only modify toolexecdir in certain cases. 508 * configure: Rebuilt. 509 5102013-03-16 Gilles Talis <gilles.talis@gmail.com> 511 512 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Don't use 513 fparg_count,etc on __NO_FPRS__ targets. 514 5152013-03-16 Alan Hourihane <alanh@fairlite.co.uk> 516 517 * src/m68k/sysv.S (epilogue): Don't use extb instruction on 518 m680000 machines. 519 5202013-03-16 Alex Gaynor <alex.gaynor@gmail.com> 521 522 * src/x86/ffi.c (ffi_prep_cif_machdep): Always align stack. 523 5242013-03-13 Markos Chandras <markos.chandras@imgtec.com> 525 526 * configure.ac: Add support for Imagination Technologies Meta. 527 * Makefile.am: Likewise. 528 * README: Add Imagination Technologies Meta details. 529 * src/metag/ffi.c: New. 530 * src/metag/ffitarget.h: Likewise. 531 * src/metag/sysv.S: Likewise. 532 5332013-02-24 Andreas Schwab <schwab@linux-m68k.org> 534 535 * doc/libffi.texi (Structures): Fix missing category argument of 536 @deftp. 537 5382013-02-11 Anthony Green <green@moxielogic.com> 539 540 * configure.ac: Update release number to 3.0.12. 541 * configure: Rebuilt. 542 * README: Update release info. 543 5442013-02-10 Anthony Green <green@moxielogic.com> 545 546 * README: Add Moxie. 547 * src/moxie/ffi.c: Created. 548 * src/moxie/eabi.S: Created. 549 * src/moxie/ffitarget.h: Created. 550 * Makefile.am (nodist_libffi_la_SOURCES): Add Moxie. 551 * Makefile.in: Rebuilt. 552 * configure.ac: Add Moxie. 553 * configure: Rebuilt. 554 * testsuite/libffi.call/huge_struct.c: Disable format string 555 warnings for moxie*-*-elf tests. 556 5572013-02-10 Anthony Green <green@moxielogic.com> 558 559 * Makefile.am (LTLDFLAGS): Fix reference. 560 * Makefile.in: Rebuilt. 561 5622013-02-10 Anthony Green <green@moxielogic.com> 563 564 * README: Update supported platforms. Update test results link. 565 5662013-02-09 Anthony Green <green@moxielogic.com> 567 568 * testsuite/libffi.call/negint.c: Remove forced -O2. 569 * testsuite/libffi.call/many2.c (foo): Remove GCCism. 570 * testsuite/libffi.call/ffitest.h: Add default PRIuPTR definition. 571 572 * src/sparc/v8.S (ffi_closure_v8): Import ancient ulonglong 573 closure return type fix developed by Martin v. Löwis for cpython 574 fork. 575 5762013-02-08 Andreas Tobler <andreast@fgznet.ch> 577 578 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct 579 support. 580 * src/powerpc/sysv.S: Ditto. 581 5822013-02-08 Anthony Green <green@moxielogic.com> 583 584 * testsuite/libffi.call/cls_longdouble.c: Remove xfail for 585 arm*-*-*. 586 5872013-02-08 Anthony Green <green@moxielogic.com> 588 589 * src/sparc/ffi.c (ffi_prep_closure_loc): Fix cache flushing for GCC. 590 5912013-02-08 Matthias Klose <doko@ubuntu.com> 592 593 * man/ffi_prep_cif.3: Clean up for debian linter. 594 5952013-02-08 Peter Bergner <bergner@vnet.ibm.com> 596 597 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Account for FP args pushed 598 on the stack. 599 6002013-02-08 Anthony Green <green@moxielogic.com> 601 602 * Makefile.am (EXTRA_DIST): Add missing files. 603 * testsuite/Makefile.am (EXTRA_DIST): Ditto. 604 * Makefile.in: Rebuilt. 605 6062013-02-08 Anthony Green <green@moxielogic.com> 607 608 * configure.ac: Move sparc asm config checks to within functions 609 for compatibility with sun tools. 610 * configure: Rebuilt. 611 * src/sparc/ffi.c (ffi_prep_closure_loc): Flush cache on v9 612 systems. 613 * src/sparc/v8.S (ffi_flush_icache): Implement a sparc v9 cache 614 flusher. 615 6162013-02-08 Nathan Rossi <nathan.rossi@xilinx.com> 617 618 * src/microblaze/ffi.c (ffi_closure_call_SYSV): Fix handling of 619 small big-endian structures. 620 (ffi_prep_args): Ditto. 621 6222013-02-07 Anthony Green <green@moxielogic.com> 623 624 * src/sparc/v8.S (ffi_call_v8): Fix typo from last patch 625 (effectively hiding ffi_call_v8). 626 6272013-02-07 Anthony Green <green@moxielogic.com> 628 629 * configure.ac: Update bug reporting address. 630 * configure.in: Rebuild. 631 632 * src/sparc/v8.S (ffi_flush_icache): Out-of-line cache flusher for 633 Sun compiler. 634 * src/sparc/ffi.c (ffi_call): Remove warning. 635 Call ffi_flush_icache for non-GCC builds. 636 (ffi_prep_closure_loc): Use ffi_flush_icache. 637 638 * Makefile.am (EXTRA_DIST): Add libtool-ldflags. 639 * Makefile.in: Rebuilt. 640 * libtool-ldflags: New file. 641 6422013-02-07 Daniel Schepler <dschepler@gmail.com> 643 644 * configure.ac: Correctly identify x32 systems as 64-bit. 645 * m4/libtool.m4: Remove libtool expr error. 646 * aclocal.m4, configure: Rebuilt. 647 6482013-02-07 Anthony Green <green@moxielogic.com> 649 650 * configure.ac: Fix GCC usage test. 651 * configure: Rebuilt. 652 * README: Mention LLVM/GCC x86_64 issue. 653 * testsuite/Makefile.in: Rebuilt. 654 6552013-02-07 Anthony Green <green@moxielogic.com> 656 657 * testsuite/libffi.call/cls_double_va.c (main): Replace // style 658 comments with /* */ for xlc compiler. 659 * testsuite/libffi.call/stret_large.c (main): Ditto. 660 * testsuite/libffi.call/stret_large2.c (main): Ditto. 661 * testsuite/libffi.call/nested_struct1.c (main): Ditto. 662 * testsuite/libffi.call/huge_struct.c (main): Ditto. 663 * testsuite/libffi.call/float_va.c (main): Ditto. 664 * testsuite/libffi.call/cls_struct_va1.c (main): Ditto. 665 * testsuite/libffi.call/cls_pointer_stack.c (main): Ditto. 666 * testsuite/libffi.call/cls_pointer.c (main): Ditto. 667 * testsuite/libffi.call/cls_longdouble_va.c (main): Ditto. 668 6692013-02-06 Anthony Green <green@moxielogic.com> 670 671 * man/ffi_prep_cif.3: Clean up for debian lintian checker. 672 6732013-02-06 Anthony Green <green@moxielogic.com> 674 675 * Makefile.am (pkgconfigdir): Add missing pkgconfig install bits. 676 * Makefile.in: Rebuild. 677 6782013-02-02 Mark H Weaver <mhw@netris.org> 679 680 * src/x86/ffi64.c (ffi_call): Sign-extend integer arguments passed 681 via general purpose registers. 682 6832013-01-21 Nathan Rossi <nathan.rossi@xilinx.com> 684 685 * README: Add MicroBlaze details. 686 * Makefile.am: Add MicroBlaze support. 687 * configure.ac: Likewise. 688 * src/microblaze/ffi.c: New. 689 * src/microblaze/ffitarget.h: Likewise. 690 * src/microblaze/sysv.S: Likewise. 691 6922013-01-21 Nathan Rossi <nathan.rossi@xilinx.com> 693 * testsuite/libffi.call/return_uc.c: Fixed issue. 694 6952013-01-21 Chris Zankel <chris@zankel.net> 696 697 * README: Add Xtensa support. 698 * Makefile.am: Likewise. 699 * configure.ac: Likewise. 700 * Makefile.in Regenerate. 701 * configure: Likewise. 702 * src/prep_cif.c: Handle Xtensa. 703 * src/xtensa: New directory. 704 * src/xtensa/ffi.c: New file. 705 * src/xtensa/ffitarget.h: Ditto. 706 * src/xtensa/sysv.S: Ditto. 707 7082013-01-11 Anthony Green <green@moxielogic.com> 709 710 * src/powerpc/ffi_darwin.c (ffi_prep_args): Replace // style 711 comments with /* */ for xlc compiler. 712 * src/powerpc/aix.S (ffi_call_AIX): Ditto. 713 * testsuite/libffi.call/ffitest.h (allocate_mmap): Delete 714 deprecated inline function. 715 * testsuite/libffi.special/ffitestcxx.h: Ditto. 716 * README: Add update for AIX support. 717 7182013-01-11 Anthony Green <green@moxielogic.com> 719 720 * configure.ac: Robustify pc relative reloc check. 721 * m4/ax_cc_maxopt.m4: Don't -malign-double. This is an ABI 722 changing option for 32-bit x86. 723 * aclocal.m4, configure: Rebuilt. 724 * README: Update supported target list. 725 7262013-01-10 Anthony Green <green@moxielogic.com> 727 728 * README (tested): Add Compiler column to table. 729 7302013-01-10 Anthony Green <green@moxielogic.com> 731 732 * src/x86/ffi64.c (struct register_args): Make sse array and array 733 of unions for sunpro compiler compatibility. 734 7352013-01-10 Anthony Green <green@moxielogic.com> 736 737 * configure.ac: Test target platform size_t size. Handle both 32 738 and 64-bit builds for x86_64-* and i?86-* targets (allowing for 739 CFLAG option to change default settings). 740 * configure, aclocal.m4: Rebuilt. 741 7422013-01-10 Anthony Green <green@moxielogic.com> 743 744 * testsuite/libffi.special/special.exp: Only run exception 745 handling tests when using GNU compiler. 746 747 * m4/ax_compiler_vendor.m4: New file. 748 * configure.ac: Test for compiler vendor and don't use 749 AX_CFLAGS_WARN_ALL with the sun compiler. 750 * aclocal.m4, configure: Rebuilt. 751 7522013-01-10 Anthony Green <green@moxielogic.com> 753 754 * include/ffi_common.h: Don't use GCCisms to define types when 755 building with the SUNPRO compiler. 756 7572013-01-10 Anthony Green <green@moxielogic.com> 758 759 * configure.ac: Put local.exp in the right place. 760 * configure: Rebuilt. 761 762 * src/x86/ffi.c: Update comment about regparm function attributes. 763 * src/x86/sysv.S (ffi_closure_SYSV): The SUNPRO compiler requires 764 that all function arguments be passed on the stack (no regparm 765 support). 766 7672013-01-08 Anthony Green <green@moxielogic.com> 768 769 * configure.ac: Generate local.exp. This sets CC_FOR_TARGET 770 when we are using the vendor compiler. 771 * testsuite/Makefile.am (EXTRA_DEJAGNU_SITE_CONFIG): Point to 772 ../local.exp. 773 * configure, testsuite/Makefile.in: Rebuilt. 774 775 * testsuite/libffi.call/call.exp: Run tests with different 776 options, depending on whether or not we are using gcc or the 777 vendor compiler. 778 * testsuite/lib/libffi.exp (libffi-init): Set using_gcc based on 779 whether or not we are building/testing with gcc. 780 7812013-01-08 Anthony Green <green@moxielogic.com> 782 783 * configure.ac: Switch x86 solaris target to X86 by default. 784 * configure: Rebuilt. 785 7862013-01-08 Anthony Green <green@moxielogic.com> 787 788 * configure.ac: Fix test for read-only eh_frame. 789 * configure: Rebuilt. 790 7912013-01-08 Anthony Green <green@moxielogic.com> 792 793 * src/x86/sysv.S, src/x86/unix64.S: Only emit DWARF unwind info 794 when building with the GNU toolchain. 795 * testsuite/libffi.call/ffitest.h (CHECK): Fix for Solaris vendor 796 compiler. 797 7982013-01-07 Thorsten Glaser <tg@mirbsd.org> 799 800 * testsuite/libffi.call/cls_uchar_va.c, 801 testsuite/libffi.call/cls_ushort_va.c, 802 testsuite/libffi.call/va_1.c: Testsuite fixes. 803 8042013-01-07 Thorsten Glaser <tg@mirbsd.org> 805 806 * src/m68k/ffi.c (CIF_FLAGS_SINT8, CIF_FLAGS_SINT16): Define. 807 (ffi_prep_cif_machdep): Fix 8-bit and 16-bit signed calls. 808 * src/m68k/sysv.S (ffi_call_SYSV, ffi_closure_SYSV): Ditto. 809 8102013-01-04 Anthony Green <green@moxielogic.com> 811 812 * Makefile.am (AM_CFLAGS): Don't automatically add -fexceptions 813 and -Wall. This is set in the configure script after testing for 814 GCC. 815 * Makefile.in: Rebuilt. 816 8172013-01-02 rofl0r <https://github.com/rofl0r> 818 819 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix build error on ppc 820 when long double == double. 821 8222013-01-02 Reini Urban <rurban@x-ray.at> 823 824 * Makefile.am (libffi_la_LDFLAGS): Add -no-undefined to LDFLAGS 825 (required for shared libs on cygwin/mingw). 826 * Makefile.in: Rebuilt. 827 8282012-10-31 Alan Modra <amodra@gmail.co> 829 830 * src/powerpc/linux64_closure.S: Add new ABI support. 831 * src/powerpc/linux64.S: Likewise. 832 8332012-10-30 Magnus Granberg <zorry@gentoo.org> 834 Pavel Labushev <pavel.labushev@runbox.ru> 835 836 * configure.ac: New options pax_emutramp 837 * configure, fficonfig.h.in: Regenerated 838 * src/closures.c: New function emutramp_enabled_check() and 839 checks. 840 8412012-10-30 Frederick Cheung <frederick.cheung@gmail.com> 842 843 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain 844 lion) and future version. 845 * configure: Rebuild. 846 8472012-10-30 James Greenhalgh <james.greenhalgh at arm.com> 848 Marcus Shawcroft <marcus.shawcroft at arm.com> 849 850 * README: Add details of aarch64 port. 851 * src/aarch64/ffi.c: New. 852 * src/aarch64/ffitarget.h: Likewise. 853 * src/aarch64/sysv.S: Likewise. 854 * Makefile.am: Support aarch64. 855 * configure.ac: Support aarch64. 856 * Makefile.in, configure: Rebuilt. 857 8582012-10-30 James Greenhalgh <james.greenhalgh at arm.com> 859 Marcus Shawcroft <marcus.shawcroft at arm.com> 860 861 * testsuite/lib/libffi.exp: Add support for aarch64. 862 * testsuite/libffi.call/cls_struct_va1.c: New. 863 * testsuite/libffi.call/cls_uchar_va.c: Likewise. 864 * testsuite/libffi.call/cls_uint_va.c: Likewise. 865 * testsuite/libffi.call/cls_ulong_va.c: Likewise. 866 * testsuite/libffi.call/cls_ushort_va.c: Likewise. 867 * testsuite/libffi.call/nested_struct11.c: Likewise. 868 * testsuite/libffi.call/uninitialized.c: Likewise. 869 * testsuite/libffi.call/va_1.c: Likewise. 870 * testsuite/libffi.call/va_struct1.c: Likewise. 871 * testsuite/libffi.call/va_struct2.c: Likewise. 872 * testsuite/libffi.call/va_struct3.c: Likewise. 873 8742012-10-12 Walter Lee <walt@tilera.com> 875 876 * Makefile.am: Add TILE-Gx/TILEPro support. 877 * configure.ac: Likewise. 878 * Makefile.in: Regenerate. 879 * configure: Likewise. 880 * src/prep_cif.c (ffi_prep_cif_core): Handle TILE-Gx/TILEPro. 881 * src/tile: New directory. 882 * src/tile/ffi.c: New file. 883 * src/tile/ffitarget.h: Ditto. 884 * src/tile/tile.S: Ditto. 885 8862012-10-12 Matthias Klose <doko@ubuntu.com> 887 888 * generate-osx-source-and-headers.py: Normalize whitespace. 889 8902012-09-14 David Edelsohn <dje.gcc@gmail.com> 891 892 * configure: Regenerated. 893 8942012-08-26 Andrew Pinski <apinski@cavium.com> 895 896 PR libffi/53014 897 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with 898 soft-float. 899 9002012-08-08 Uros Bizjak <ubizjak@gmail.com> 901 902 * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, 903 just return FFI_BAD_ABI when things are wrong. 904 9052012-07-18 H.J. Lu <hongjiu.lu@intel.com> 906 907 PR libffi/53982 908 PR libffi/53973 909 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32. 910 (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32. 911 9122012-05-16 H.J. Lu <hongjiu.lu@intel.com> 913 914 * configure: Regenerated. 915 9162012-05-05 Nicolas Lelong 917 918 * libffi.xcodeproj/project.pbxproj: Fixes. 919 * README: Update for iOS builds. 920 9212012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke@gmail.com> 922 923 * configure.ac: Add Blackfin/sysv support 924 * Makefile.am: Add Blackfin/sysv support 925 * src/bfin/ffi.c: Add Blackfin/sysv support 926 * src/bfin/ffitarget.h: Add Blackfin/sysv support 927 9282012-04-11 Anthony Green <green@moxielogic.com> 929 930 * Makefile.am (EXTRA_DIST): Add new script. 931 * Makefile.in: Rebuilt. 932 9332012-04-11 Zachary Waldowski <zwaldowski@gmail.com> 934 935 * generate-ios-source-and-headers.py, 936 libffi.xcodeproj/project.pbxproj: Support a Mac static library via 937 Xcode. Set iOS compatibility to 4.0. Move iOS trampoline 938 generation into an Xcode "run script" phase. Include both as 939 Xcode build scripts. Don't always regenerate config files. 940 9412012-04-10 Anthony Green <green@moxielogic.com> 942 943 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon. 944 9452012-04-06 Anthony Green <green@moxielogic.com> 946 947 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files. 948 * Makefile.in: Rebuilt. 949 9502012-04-06 Mike Lewis <mikelikespie@gmail.com> 951 952 * generate-ios-source-and-headers.py: New file. 953 * libffi.xcodeproj/project.pbxproj: New file. 954 * README: Update instructions on building iOS binary. 955 * build-ios.sh: Delete. 956 9572012-04-06 Anthony Green <green@moxielogic.com> 958 959 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU 960 compilers, then use it. 961 9622012-04-06 H.J. Lu <hongjiu.lu@intel.com> 963 964 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32. 965 9662012-04-06 Anthony Green <green@moxielogic.com> 967 968 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases. 969 * testsuite/Makefile.in: Rebuilt. 970 9712012-04-05 Zachary Waldowski <zwaldowski@gmail.com> 972 973 * include/ffi.h.in: Add missing trampoline table fields. 974 * src/arm/sysv.S: Fix ENTRY definition, and wrap symbol references 975 in CNAME. 976 * src/x86/ffi.c: Wrap Windows specific code in ifdefs. 977 9782012-04-02 Peter Bergner <bergner@vnet.ibm.com> 979 980 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp. 981 Silence casting pointer to integer of different size warning. 982 Delete goto to previously deleted label. 983 (ffi_call): Silence possibly undefined warning. 984 (ffi_closure_helper_SYSV): Declare variable type. 985 9862012-04-02 Peter Rosin <peda@lysator.liu.se> 987 988 * src/x86/win32.S (ffi_call_win32): Sign/zero extend the return 989 value in the Intel version as is already done for the AT&T version. 990 (ffi_closure_SYSV): Likewise. 991 (ffi_closure_raw_SYSV): Likewise. 992 (ffi_closure_STDCALL): Likewise. 993 9942012-03-29 Peter Rosin <peda@lysator.liu.se> 995 996 * src/x86/win32.S (ffi_closure_raw_THISCALL): Unify the frame 997 generation, fix the ENDP label and remove the surplus third arg 998 from the 'lea' insn. 999 10002012-03-29 Peter Rosin <peda@lysator.liu.se> 1001 1002 * src/x86/win32.S (ffi_closure_raw_SYSV): Make the 'stubraw' label 1003 visible outside the PROC, so that ffi_closure_raw_THISCALL can see 1004 it. Also instruct the assembler to add a frame to the function. 1005 10062012-03-23 Peter Rosin <peda@lysator.liu.se> 1007 1008 * Makefile.am (AM_CPPFLAGS): Add -DFFI_BUILDING. 1009 * Makefile.in: Rebuilt. 1010 * include/ffi.h.in [MSVC]: Add __declspec(dllimport) decorations 1011 to all data exports, when compiling libffi clients using MSVC. 1012 10132012-03-29 Peter Rosin <peda@lysator.liu.se> 1014 1015 * src/x86/ffitarget.h (ffi_abi): Add new ABI FFI_MS_CDECL and 1016 make it the default for MSVC. 1017 (FFI_TYPE_MS_STRUCT): New structure return convention. 1018 * src/x86/ffi.c (ffi_prep_cif_machdep): Tweak the structure 1019 return convention for FFI_MS_CDECL to be FFI_TYPE_MS_STRUCT 1020 instead of an ordinary FFI_TYPE_STRUCT. 1021 (ffi_prep_args): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT. 1022 (ffi_call): Likewise. 1023 (ffi_prep_incoming_args_SYSV): Likewise. 1024 (ffi_raw_call): Likewise. 1025 (ffi_prep_closure_loc): Treat FFI_MS_CDECL as FFI_SYSV. 1026 * src/x86/win32.S (ffi_closure_SYSV): For FFI_TYPE_MS_STRUCT, 1027 return a pointer to the result structure in eax and don't pop 1028 that pointer from the stack, the caller takes care of it. 1029 (ffi_call_win32): Treat FFI_TYPE_MS_STRUCT as FFI_TYPE_STRUCT. 1030 (ffi_closure_raw_SYSV): Likewise. 1031 10322012-03-22 Peter Rosin <peda@lysator.liu.se> 1033 1034 * testsuite/libffi.call/closure_stdcall.c [MSVC]: Add inline 1035 assembly version with Intel syntax. 1036 * testsuite/libffi.call/closure_thiscall.c [MSVC]: Likewise. 1037 10382012-03-23 Peter Rosin <peda@lysator.liu.se> 1039 1040 * testsuite/libffi.call/ffitest.h: Provide abstration of 1041 __attribute__((fastcall)) in the form of a __FASTCALL__ 1042 define. Define it to __fastcall for MSVC. 1043 * testsuite/libffi.call/fastthis1_win32.c: Use the above. 1044 * testsuite/libffi.call/fastthis2_win32.c: Likewise. 1045 * testsuite/libffi.call/fastthis3_win32.c: Likewise. 1046 * testsuite/libffi.call/strlen2_win32.c: Likewise. 1047 * testsuite/libffi.call/struct1_win32.c: Likewise. 1048 * testsuite/libffi.call/struct2_win32.c: Likewise. 1049 10502012-03-22 Peter Rosin <peda@lysator.liu.se> 1051 1052 * src/x86/win32.S [MSVC] (ffi_closure_THISCALL): Remove the manual 1053 frame on function entry, MASM adds one automatically. 1054 10552012-03-22 Peter Rosin <peda@lysator.liu.se> 1056 1057 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing 1058 bits in the MSVC headers. 1059 10602012-03-22 Peter Rosin <peda@lysator.liu.se> 1061 1062 * testsuite/libffi.call/cls_12byte.c: Adjust to the C89 style 1063 with no declarations after statements. 1064 * testsuite/libffi.call/cls_16byte.c: Likewise. 1065 * testsuite/libffi.call/cls_18byte.c: Likewise. 1066 * testsuite/libffi.call/cls_19byte.c: Likewise. 1067 * testsuite/libffi.call/cls_1_1byte.c: Likewise. 1068 * testsuite/libffi.call/cls_20byte.c: Likewise. 1069 * testsuite/libffi.call/cls_20byte1.c: Likewise. 1070 * testsuite/libffi.call/cls_24byte.c: Likewise. 1071 * testsuite/libffi.call/cls_2byte.c: Likewise. 1072 * testsuite/libffi.call/cls_3_1byte.c: Likewise. 1073 * testsuite/libffi.call/cls_3byte1.c: Likewise. 1074 * testsuite/libffi.call/cls_3byte2.c: Likewise. 1075 * testsuite/libffi.call/cls_4_1byte.c: Likewise. 1076 * testsuite/libffi.call/cls_4byte.c: Likewise. 1077 * testsuite/libffi.call/cls_5_1_byte.c: Likewise. 1078 * testsuite/libffi.call/cls_5byte.c: Likewise. 1079 * testsuite/libffi.call/cls_64byte.c: Likewise. 1080 * testsuite/libffi.call/cls_6_1_byte.c: Likewise. 1081 * testsuite/libffi.call/cls_6byte.c: Likewise. 1082 * testsuite/libffi.call/cls_7_1_byte.c: Likewise. 1083 * testsuite/libffi.call/cls_7byte.c: Likewise. 1084 * testsuite/libffi.call/cls_8byte.c: Likewise. 1085 * testsuite/libffi.call/cls_9byte1.c: Likewise. 1086 * testsuite/libffi.call/cls_9byte2.c: Likewise. 1087 * testsuite/libffi.call/cls_align_double.c: Likewise. 1088 * testsuite/libffi.call/cls_align_float.c: Likewise. 1089 * testsuite/libffi.call/cls_align_longdouble.c: Likewise. 1090 * testsuite/libffi.call/cls_align_longdouble_split.c: Likewise. 1091 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise. 1092 * testsuite/libffi.call/cls_align_pointer.c: Likewise. 1093 * testsuite/libffi.call/cls_align_sint16.c: Likewise. 1094 * testsuite/libffi.call/cls_align_sint32.c: Likewise. 1095 * testsuite/libffi.call/cls_align_sint64.c: Likewise. 1096 * testsuite/libffi.call/cls_align_uint16.c: Likewise. 1097 * testsuite/libffi.call/cls_align_uint32.c: Likewise. 1098 * testsuite/libffi.call/cls_align_uint64.c: Likewise. 1099 * testsuite/libffi.call/cls_dbls_struct.c: Likewise. 1100 * testsuite/libffi.call/cls_pointer_stack.c: Likewise. 1101 * testsuite/libffi.call/err_bad_typedef.c: Likewise. 1102 * testsuite/libffi.call/huge_struct.c: Likewise. 1103 * testsuite/libffi.call/nested_struct.c: Likewise. 1104 * testsuite/libffi.call/nested_struct1.c: Likewise. 1105 * testsuite/libffi.call/nested_struct10.c: Likewise. 1106 * testsuite/libffi.call/nested_struct2.c: Likewise. 1107 * testsuite/libffi.call/nested_struct3.c: Likewise. 1108 * testsuite/libffi.call/nested_struct4.c: Likewise. 1109 * testsuite/libffi.call/nested_struct5.c: Likewise. 1110 * testsuite/libffi.call/nested_struct6.c: Likewise. 1111 * testsuite/libffi.call/nested_struct7.c: Likewise. 1112 * testsuite/libffi.call/nested_struct8.c: Likewise. 1113 * testsuite/libffi.call/nested_struct9.c: Likewise. 1114 * testsuite/libffi.call/stret_large.c: Likewise. 1115 * testsuite/libffi.call/stret_large2.c: Likewise. 1116 * testsuite/libffi.call/stret_medium.c: Likewise. 1117 * testsuite/libffi.call/stret_medium2.c: Likewise. 1118 * testsuite/libffi.call/struct1.c: Likewise. 1119 * testsuite/libffi.call/struct1_win32.c: Likewise. 1120 * testsuite/libffi.call/struct2.c: Likewise. 1121 * testsuite/libffi.call/struct2_win32.c: Likewise. 1122 * testsuite/libffi.call/struct3.c: Likewise. 1123 * testsuite/libffi.call/struct4.c: Likewise. 1124 * testsuite/libffi.call/struct5.c: Likewise. 1125 * testsuite/libffi.call/struct6.c: Likewise. 1126 * testsuite/libffi.call/struct7.c: Likewise. 1127 * testsuite/libffi.call/struct8.c: Likewise. 1128 * testsuite/libffi.call/struct9.c: Likewise. 1129 * testsuite/libffi.call/testclosure.c: Likewise. 1130 11312012-03-21 Peter Rosin <peda@lysator.liu.se> 1132 1133 * testsuite/libffi.call/float_va.c (float_va_fn): Use %f when 1134 printing doubles (%lf is for long doubles). 1135 (main): Likewise. 1136 11372012-03-21 Peter Rosin <peda@lysator.liu.se> 1138 1139 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*] 1140 (set_ld_library_path_env_vars): Add the library search dir to PATH 1141 (and save PATH for later). 1142 (restore_ld_library_path_env_vars): Restore PATH. 1143 11442012-03-21 Peter Rosin <peda@lysator.liu.se> 1145 1146 * testsuite/lib/target-libpath.exp [*-*-cygwin*, *-*-mingw*] 1147 (set_ld_library_path_env_vars): Add the library search dir to PATH 1148 (and save PATH for later). 1149 (restore_ld_library_path_env_vars): Restore PATH. 1150 11512012-03-20 Peter Rosin <peda@lysator.liu.se> 1152 1153 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug. 1154 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label 1155 visible outside the PROC, so that ffi_closure_THISCALL can see it. 1156 11572012-03-20 Peter Rosin <peda@lysator.liu.se> 1158 1159 * testsuite/libffi.call/strlen2_win32.c (main): Remove bug. 1160 * src/x86/win32.S [MSVC] (ffi_closure_SYSV): Make the 'stub' label 1161 visible outside the PROC, so that ffi_closure_THISCALL can see it. 1162 11632012-03-19 Alan Hourihane <alanh@fairlite.co.uk> 1164 1165 * src/m68k/ffi.c: Add MINT support. 1166 * src/m68k/sysv.S: Ditto. 1167 11682012-03-06 Chung-Lin Tang <cltang@codesourcery.com> 1169 1170 * src/arm/ffi.c (ffi_call): Add __ARM_EABI__ guard around call to 1171 ffi_call_VFP(). 1172 (ffi_prep_closure_loc): Add __ARM_EABI__ guard around use of 1173 ffi_closure_VFP. 1174 * src/arm/sysv.S: Add __ARM_EABI__ guard around VFP code. 1175 11762012-03-19 chennam <csit@axway.com> 1177 1178 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure 1179 support. 1180 11812012-03-13 Kaz Kojima <kkojima@gcc.gnu.org> 1182 1183 * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, 1184 just return FFI_BAD_ABI when things are wrong. 1185 * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto. 1186 11872012-03-09 David Edelsohn <dje.gcc@gmail.com> 1188 1189 * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64 1190 change to return value of ffi_closure_helper_DARWIN and load type 1191 from return type. 1192 11932012-03-03 H.J. Lu <hongjiu.lu@intel.com> 1194 1195 * src/x86/ffi64.c (ffi_call): Cast the return value to unsigned 1196 long. 1197 (ffi_prep_closure_loc): Cast to 64bit address in trampoline. 1198 (ffi_closure_unix64_inner): Cast return pointer to unsigned long 1199 first. 1200 1201 * src/x86/ffitarget.h (FFI_SIZEOF_ARG): Defined to 8 for x32. 1202 (ffi_arg): Set to unsigned long long for x32. 1203 (ffi_sarg): Set to long long for x32. 1204 12052012-03-03 H.J. Lu <hongjiu.lu@intel.com> 1206 1207 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI. 1208 12092012-03-03 Andoni Morales Alastruey <ylatuya@gmail.com> 1210 1211 * configure.ac: Add -no-undefined for both 32- and 64-bit x86 1212 windows-like hosts. 1213 * configure: Rebuilt. 1214 12152012-02-27 Mikael Pettersson <mikpe@it.uu.se> 1216 1217 PR libffi/52223 1218 * Makefile.am (FLAGS_TO_PASS): Define. 1219 * Makefile.in: Regenerate. 1220 12212012-02-23 Anthony Green <green@moxielogic.com> 1222 1223 * src/*/ffitarget.h: Ensure that users never include ffitarget.h 1224 directly. 1225 12262012-02-23 Kai Tietz <ktietz@redhat.com> 1227 1228 PR libffi/52221 1229 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New 1230 prototype. 1231 (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for 1232 thiscall-convention. 1233 (ffi_raw_call): Use ffi_prep_args_raw. 1234 * src/x86/win32.S (ffi_closure_raw_THISCALL): Add 1235 implementation for stub. 1236 12372012-02-10 Kai Tietz <ktietz@redhat.com> 1238 1239 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64 1240 windows target. 1241 * configure: Regenerated. 1242 12432012-02-08 Kai Tietz <ktietz@redhat.com> 1244 1245 * src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32 1246 also FFI_THISCALL. 1247 * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype. 1248 (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code. 1249 (ffi_prep_closure_loc): Add FFI_THISCALL support. 1250 * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size. 1251 * src/x86/win32.S (ffi_closure_THISCALL): New closure code 1252 for thiscall-calling convention. 1253 * testsuite/libffi.call/closure_thiscall.c: New test. 1254 12552012-01-28 Kai Tietz <ktietz@redhat.com> 1256 1257 * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new 1258 argument to prototype for specify calling-convention. 1259 (ffi_call): Add support for stdcall/thiscall convention. 1260 (ffi_prep_args): Likewise. 1261 (ffi_raw_call): Likewise. 1262 * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and 1263 FFI_FASTCALL. 1264 * src/x86/win32.S (_ffi_call_win32): Add support for 1265 fastcall/thiscall calling-convention calls. 1266 * testsuite/libffi.call/fastthis1_win32.c: New test. 1267 * testsuite/libffi.call/fastthis2_win32.c: New test. 1268 * testsuite/libffi.call/fastthis3_win32.c: New test. 1269 * testsuite/libffi.call/strlen2_win32.c: New test. 1270 * testsuite/libffi.call/many2_win32.c: New test. 1271 * testsuite/libffi.call/struct1_win32.c: New test. 1272 * testsuite/libffi.call/struct2_win32.c: New test. 1273 12742012-01-23 Uros Bizjak <ubizjak@gmail.com> 1275 1276 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI. 1277 12782012-01-23 Anthony Green <green@moxielogic.com> 1279 Chris Young <cdyoung@ntlworld.com> 1280 1281 * configure.ac: Add Amiga support. 1282 * configure: Rebuilt. 1283 12842012-01-23 Dmitry Nadezhin <dmitry.nadezhin@gmail.com> 1285 1286 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions. 1287 12882012-01-23 Andreas Schwab <schwab@linux-m68k.org> 1289 1290 * src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain 1291 mc68000. Test for __HAVE_68881__ in addition to __MC68881__. 1292 12932012-01-19 Jakub Jelinek <jakub@redhat.com> 1294 1295 PR rtl-optimization/48496 1296 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations. 1297 12982012-01-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1299 1300 * configure.ac (i?86-*-*): Set TARGET to X86_64. 1301 * configure: Regenerate. 1302 13032011-12-07 Andrew Pinski <apinski@cavium.com> 1304 1305 PR libffi/50051 1306 * src/mips/n32.S: Add ".set mips4". 1307 13082011-11-21 Andreas Tobler <andreast@fgznet.ch> 1309 1310 * configure: Regenerate. 1311 13122011-11-12 David Gilbert <david.gilbert@linaro.org> 1313 1314 * doc/libffi.texi, include/ffi.h.in, include/ffi_common.h, 1315 man/Makefile.am, man/ffi.3, man/ffi_prep_cif.3, 1316 man/ffi_prep_cif_var.3, src/arm/ffi.c, src/arm/ffitarget.h, 1317 src/cris/ffi.c, src/prep_cif.c, 1318 testsuite/libffi.call/cls_double_va.c, 1319 testsuite/libffi.call/cls_longdouble_va.c, 1320 testsuite/libffi.call/float_va.c: Many changes to support variadic 1321 function calls. 1322 13232011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com> 1324 1325 * src/powerpc/ffi.c, src/powerpc/ffitarget.h, 1326 src/powerpc/ppc_closure.S, src/powerpc/sysv.S: Many changes for 1327 softfloat powerpc variants. 1328 13292011-11-12 Petr Salinger <Petr.Salinger@seznam.cz> 1330 1331 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support. 1332 * configure: Rebuilt. 1333 13342011-11-12 Timothy Wall <twall@users.sf.net> 1335 1336 * src/arm/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): Max 1337 alignment of 4 for wince on ARM. 1338 13392011-11-12 Kyle Moffett <Kyle.D.Moffett@boeing.com> 1340 Anthony Green <green@moxielogic.com> 1341 1342 * src/ppc/sysv.S, src/ppc/ffi.c: Remove use of ppc string 1343 instructions (not available on some cores, like the PPC440). 1344 13452011-11-12 Kimura Wataru <kimuraw@i.nifty.jp> 1346 1347 * m4/ax_enable_builddir: Change from string comparison to numeric 1348 comparison for wc output. 1349 * configure.ac: Enable FFI_MMAP_EXEC_WRIT for darwin11 aka Mac OS 1350 X 10.7. 1351 * configure: Rebuilt. 1352 13532011-11-12 Anthony Green <green@moxielogic.com> 1354 1355 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly 1356 files with debug info. 1357 * Makefile.in: Rebuilt. 1358 13592011-11-12 Jasper Lievisse Adriaanse <jasper@openbsd.org> 1360 1361 * README: Update list of supported OpenBSD systems. 1362 13632011-11-12 Anthony Green <green@moxielogic.com> 1364 1365 * libtool-version: Update. 1366 * Makefile.am (nodist_libffi_la_SOURCES): Add src/debug.c if 1367 FFI_DEBUG. 1368 (libffi_la_SOURCES): Remove src/debug.c 1369 (EXTRA_DIST): Add src/debug.c 1370 * Makefile.in: Rebuilt. 1371 * README: Update for 3.0.11. 1372 13732011-11-10 Richard Henderson <rth@redhat.com> 1374 1375 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check. 1376 * configure, aclocal.m4: Rebuild. 1377 13782011-09-04 Iain Sandoe <iains@gcc.gnu.org> 1379 1380 PR libffi/49594 1381 * src/powerpc/darwin_closure.S (stubs): Make the stub binding 1382 helper reference track the architecture pointer size. 1383 13842011-08-25 Andrew Haley <aph@redhat.com> 1385 1386 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly 1387 instructions. 1388 * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead. 1389 13902011-07-11 Andrew Haley <aph@redhat.com> 1391 1392 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache. 1393 13942011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1395 1396 * testsuite/libffi.call/cls_double_va.c: Move PR number to comment. 1397 * testsuite/libffi.call/cls_longdouble_va.c: Likewise. 1398 13992011-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1400 1401 PR libffi/46660 1402 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on 1403 mips-sgi-irix6*. 1404 * testsuite/libffi.call/cls_longdouble_va.c: Likewise. 1405 14062011-06-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1407 1408 * testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8, 1409 PRId8 instead of %hhu, %hhd. 1410 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8, 1411 PRIu8): Define. 1412 [__sgi__] (PRId8, PRIu8): Define. 1413 14142011-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1415 1416 * src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE): 1417 Define. 1418 Use them to handle ELF vs. ECOFF differences. 1419 [__osf__] (_GLOBAL__F_ffi_call_osf): Define. 1420 14212011-03-30 Timothy Wall <twall@users.sf.net> 1422 1423 * src/powerpc/darwin.S: Fix unknown FDE encoding. 1424 * src/powerpc/darwin_closure.S: ditto. 1425 14262011-02-25 Anthony Green <green@moxielogic.com> 1427 1428 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more 1429 32-bit ABIs. 1430 14312011-02-15 Anthony Green <green@moxielogic.com> 1432 1433 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math. 1434 * configure: Rebuilt. 1435 14362011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1437 1438 * configure: Regenerate. 1439 14402011-02-13 Anthony Green <green@moxielogic.com> 1441 1442 * include/ffi_common.h (UNLIKELY, LIKELY): Define. 1443 * src/x86/ffi64.c (UNLIKELY, LIKELY): Remove definition. 1444 * src/prep_cif.c (UNLIKELY, LIKELY): Remove definition. 1445 1446 * src/prep_cif.c (initialize_aggregate): Convert assertion into 1447 FFI_BAD_TYPEDEF return. Initialize arg size and alignment to 0. 1448 1449 * src/pa/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, 1450 just return FFI_BAD_ABI when things are wrong. 1451 * src/arm/ffi.c (ffi_prep_closure_loc): Ditto. 1452 * src/powerpc/ffi.c (ffi_prep_closure_loc): Ditto. 1453 * src/mips/ffi.c (ffi_prep_closure_loc): Ditto. 1454 * src/ia64/ffi.c (ffi_prep_closure_loc): Ditto. 1455 * src/avr32/ffi.c (ffi_prep_closure_loc): Ditto. 1456 14572011-02-11 Anthony Green <green@moxielogic.com> 1458 1459 * src/sparc/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, 1460 just return FFI_BAD_ABI when things are wrong. 1461 14622012-02-11 Eric Botcazou <ebotcazou@adacore.com> 1463 1464 * src/sparc/v9.S (STACKFRAME): Bump to 176. 1465 14662011-02-09 Stuart Shelton <srcshelton@gmail.com> 1467 1468 http://bugs.gentoo.org/show_bug.cgi?id=286911 1469 * src/mips/ffitarget.h: Clean up error messages. 1470 * src/java_raw_api.c (ffi_java_translate_args): Cast raw arg to 1471 ffi_raw*. 1472 * include/ffi.h.in: Add pragma for SGI compiler. 1473 14742011-02-09 Anthony Green <green@moxielogic.com> 1475 1476 * configure.ac: Add powerpc64-*-darwin* support. 1477 14782011-02-09 Anthony Green <green@moxielogic.com> 1479 1480 * README: Mention Interix. 1481 14822011-02-09 Jonathan Callen <abcd@gentoo.org> 1483 1484 * configure.ac: Add Interix to win32/cygwin/mingw case. 1485 * configure: Ditto. 1486 * src/closures.c: Treat Interix like Cygwin, instead of as a 1487 generic win32. 1488 14892011-02-09 Anthony Green <green@moxielogic.com> 1490 1491 * testsuite/libffi.call/err_bad_typedef.c: Remove xfail. 1492 * testsuite/libffi.call/err_bad_abi.c: Remove xfail. 1493 * src/x86/ffi64.c (UNLIKELY, LIKELY): Define. 1494 (ffi_prep_closure_loc): Check for bad ABI. 1495 * src/prep_cif.c (UNLIKELY, LIKELY): Define. 1496 (initialize_aggregate): Check for bad types. 1497 14982011-02-09 Landon Fuller <landonf@plausible.coop> 1499 1500 * Makefile.am (EXTRA_DIST): Add build-ios.sh, src/arm/gentramp.sh, 1501 src/arm/trampoline.S. 1502 (nodist_libffi_la_SOURCES): Add src/arc/trampoline.S. 1503 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Define. 1504 * src/arm/ffi.c (ffi_trampoline_table) 1505 (ffi_closure_trampoline_table_page, ffi_trampoline_table_entry) 1506 (FFI_TRAMPOLINE_CODELOC_CONFIG, FFI_TRAMPOLINE_CONFIG_PAGE_OFFSET) 1507 (FFI_TRAMPOLINE_COUNT, ffi_trampoline_lock, ffi_trampoline_tables) 1508 (ffi_trampoline_table_alloc, ffi_closure_alloc, ffi_closure_free): 1509 Define for FFI_EXEC_TRAMPOLINE_TABLE case (iOS). 1510 (ffi_prep_closure_loc): Handl FFI_EXEC_TRAMPOLINE_TABLE case 1511 separately. 1512 * src/arm/sysv.S: Handle Apple iOS host. 1513 * src/closures.c: Handle FFI_EXEC_TRAMPOLINE_TABLE case. 1514 * build-ios.sh: New file. 1515 * fficonfig.h.in, configure, Makefile.in: Rebuilt. 1516 * README: Mention ARM iOS. 1517 15182011-02-08 Oren Held <orenhe@il.ibm.com> 1519 1520 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid 1521 redefinition of mallinfo on HP-UX. 1522 15232011-02-08 Ginn Chen <ginn.chen@oracle.com> 1524 1525 * src/sparc/ffi.c (ffi_call): Make compatible with Solaris Studio 1526 aggregate return ABI. Flush cache. 1527 (ffi_prep_closure_loc): Flush cache. 1528 15292011-02-11 Anthony Green <green@moxielogic.com> 1530 1531 From Tom Honermann <tom.honermann@oracle.com>: 1532 * src/powerpc/aix.S (ffi_call_AIX): Support for xlc toolchain on 1533 AIX. Declare .ffi_prep_args. Insert nops after branch 1534 instructions so that the AIX linker can insert TOC reload 1535 instructions. 1536 * src/powerpc/aix_closure.S: Declare .ffi_closure_helper_DARWIN. 1537 15382011-02-08 Ed <ed@kdtc.net> 1539 1540 * src/powerpc/asm.h: Fix grammar nit in comment. 1541 15422011-02-08 Uli Link <ul.mcamafia@linkitup.de> 1543 1544 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use. 1545 15462011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1547 1548 PR libffi/46661 1549 * testsuite/libffi.call/cls_pointer.c (main): Cast void * to 1550 uintptr_t first. 1551 * testsuite/libffi.call/cls_pointer_stack.c (main): Likewise. 1552 15532011-02-08 Rafael Avila de Espindola <respindola@mozilla.com> 1554 1555 * configure.ac: Fix x86 test for pc related relocs. 1556 * configure: Rebuilt. 1557 15582011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com> 1559 1560 * libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing. 1561 Handle case when CPU variant does not have long double support. 1562 * libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire, 1563 and cores with soft floating point. 1564 15652011-02-07 Joel Sherrill <joel.sherrill@oarcorp.com> 1566 1567 * configure.ac: Add mips*-*-rtems* support. 1568 * configure: Regenerate. 1569 * src/mips/ffitarget.h: Ensure needed constants are available 1570 for targets which do not have sgidefs.h. 1571 15722011-01-26 Dave Korn <dave.korn.cygwin@gmail.com> 1573 1574 PR target/40125 1575 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs. 1576 * configure: Regenerate. 1577 15782010-12-18 Iain Sandoe <iains@gcc.gnu.org> 1579 1580 PR libffi/29152 1581 PR libffi/42378 1582 * src/powerpc/darwin_closure.S: Provide Darwin64 implementation, 1583 update comments. 1584 * src/powerpc/ffitarget.h (POWERPC_DARWIN64): New, 1585 (FFI_TRAMPOLINE_SIZE): Update for Darwin64. 1586 * src/powerpc/darwin.S: Provide Darwin64 implementation, 1587 update comments. 1588 * src/powerpc/ffi_darwin.c: Likewise. 1589 15902010-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1591 1592 * configure.ac (libffi_cv_as_ascii_pseudo_op): Use double 1593 backslashes. 1594 (libffi_cv_as_string_pseudo_op): Likewise. 1595 * configure: Regenerate. 1596 15972010-12-03 Chung-Lin Tang <cltang@codesourcery.com> 1598 1599 * src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive. 1600 (ffi_closure_VFP): Same. 1601 (ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp' 1602 directive. 1603 16042010-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1605 1606 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define. 1607 (PRIuPTR): Define. 1608 16092010-11-29 Richard Henderson <rth@redhat.com> 1610 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1611 1612 * src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define. 1613 (.eh_frame): Use FDE_ENCODING. 1614 (.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE. 1615 16162010-11-22 Jacek Caban <jacek@codeweavers.com> 1617 1618 * configure.ac: Check for symbol underscores on mingw-w64. 1619 * configure: Rebuilt. 1620 * src/x86/win64.S: Correctly access extern symbols in respect to 1621 underscores. 1622 16232010-11-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1624 1625 * testsuite/lib/libffi-dg.exp: Rename ... 1626 * testsuite/lib/libffi.exp: ... to this. 1627 * libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp. 1628 * libffi/testsuite/libffi.special/special.exp: Likewise. 1629 16302010-10-28 Chung-Lin Tang <cltang@codesourcery.com> 1631 1632 * src/arm/ffi.c (ffi_prep_args): Add VFP register argument handling 1633 code, new parameter, and return value. Update comments. 1634 (ffi_prep_cif_machdep): Add case for VFP struct return values. Add 1635 call to layout_vfp_args(). 1636 (ffi_call_SYSV): Update declaration. 1637 (ffi_call_VFP): New declaration. 1638 (ffi_call): Add VFP struct return conditions. Call ffi_call_VFP() 1639 when ABI is FFI_VFP. 1640 (ffi_closure_VFP): New declaration. 1641 (ffi_closure_SYSV_inner): Add new vfp_args parameter, update call to 1642 ffi_prep_incoming_args_SYSV(). 1643 (ffi_prep_incoming_args_SYSV): Update parameters. Add VFP argument 1644 case handling. 1645 (ffi_prep_closure_loc): Pass ffi_closure_VFP to trampoline 1646 construction under VFP hard-float. 1647 (rec_vfp_type_p): New function. 1648 (vfp_type_p): Same. 1649 (place_vfp_arg): Same. 1650 (layout_vfp_args): Same. 1651 * src/arm/ffitarget.h (ffi_abi): Add FFI_VFP. Define FFI_DEFAULT_ABI 1652 based on __ARM_PCS_VFP. 1653 (FFI_EXTRA_CIF_FIELDS): Define for adding VFP hard-float specific 1654 fields. 1655 (FFI_TYPE_STRUCT_VFP_FLOAT): Define internally used type code. 1656 (FFI_TYPE_STRUCT_VFP_DOUBLE): Same. 1657 * src/arm/sysv.S (ffi_call_SYSV): Change call of ffi_prep_args() to 1658 direct call. Move function pointer load upwards. 1659 (ffi_call_VFP): New function. 1660 (ffi_closure_VFP): Same. 1661 1662 * testsuite/lib/libffi-dg.exp (check-flags): New function. 1663 (dg-skip-if): New function. 1664 * testsuite/libffi.call/cls_double_va.c: Skip if target is arm*-*-* 1665 and compiler options include -mfloat-abi=hard. 1666 * testsuite/libffi.call/cls_longdouble_va.c: Same. 1667 16682010-10-01 Jakub Jelinek <jakub@redhat.com> 1669 1670 PR libffi/45677 1671 * src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is 1672 a multiple of 8. 1673 * testsuite/libffi.call/many2.c: New test. 1674 16752010-08-20 Mark Wielaard <mjw@redhat.com> 1676 1677 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r 1678 returns NULL. 1679 16802010-08-09 Andreas Tobler <andreast@fgznet.ch> 1681 1682 * configure.ac: Add target powerpc64-*-freebsd*. 1683 * configure: Regenerate. 1684 * testsuite/libffi.call/cls_align_longdouble_split.c: Pass 1685 -mlong-double-128 only to linux targets. 1686 * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise. 1687 * testsuite/libffi.call/cls_longdouble.c: Likewise. 1688 * testsuite/libffi.call/huge_struct.c: Likewise. 1689 16902010-08-05 Dan Witte <dwitte@mozilla.com> 1691 1692 * Makefile.am: Pass FFI_DEBUG define to msvcc.sh for linking to the 1693 debug CRT when --enable-debug is given. 1694 * configure.ac: Define it. 1695 * msvcc.sh: Translate -g and -DFFI_DEBUG appropriately. 1696 16972010-08-04 Dan Witte <dwitte@mozilla.com> 1698 1699 * src/x86/ffitarget.h: Add X86_ANY define for all x86/x86_64 1700 platforms. 1701 * src/x86/ffi.c: Remove redundant ifdef checks. 1702 * src/prep_cif.c: Push stack space computation into src/x86/ffi.c 1703 for X86_ANY so return value space doesn't get added twice. 1704 17052010-08-03 Neil Rashbrooke <neil@parkwaycc.co.uk> 1706 1707 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy. 1708 17092010-07-22 Dan Witte <dwitte@mozilla.com> 1710 1711 * src/*/ffitarget.h: Make FFI_LAST_ABI one past the last valid ABI. 1712 * src/prep_cif.c: Fix ABI assertion. 1713 * src/cris/ffi.c: Ditto. 1714 17152010-07-10 Evan Phoenix <evan@fallingsnow.net> 1716 1717 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug. 1718 17192010-07-07 Dan Horák <dan@danny.cz> 1720 1721 * include/ffi.h.in: Protect #define with #ifndef. 1722 * src/powerpc/ffitarget.h: Ditto. 1723 * src/s390/ffitarget.h: Ditto. 1724 * src/sparc/ffitarget.h: Ditto. 1725 17262010-07-07 Neil Roberts <neil@linux.intel.com> 1727 1728 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to 1729 16-bytes. 1730 17312010-07-02 Jakub Jelinek <jakub@redhat.com> 1732 1733 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes. 1734 * Makefile.in: Regenerated. 1735 17362010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1737 1738 * configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as 1739 output, too. 1740 (libffi_cv_as_ascii_pseudo_op): Check for .ascii. 1741 (libffi_cv_as_string_pseudo_op): Check for .string. 1742 * configure: Regenerate. 1743 * fficonfig.h.in: Regenerate. 1744 * src/x86/sysv.S (.eh_frame): Use .ascii, .string or error. 1745 17462010-05-11 Dan Witte <dwitte@mozilla.com> 1747 1748 * doc/libffi.tex: Document previous change. 1749 17502010-05-11 Makoto Kato <m_kato@ga2.so-net.ne.jp> 1751 1752 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value. 1753 17542010-05-05 Michael Kohler <michaelkohler@live.com> 1755 1756 * src/dlmalloc.c (dlfree): Fix spelling. 1757 * src/ia64/ffi.c (ffi_prep_cif_machdep): Ditto. 1758 * configure.ac: Ditto. 1759 * configure: Rebuilt. 1760 17612010-04-13 Dan Witte <dwitte@mozilla.com> 1762 1763 * msvcc.sh: Build with -W3 instead of -Wall. 1764 * src/powerpc/ffi_darwin.c: Remove build warnings. 1765 * src/x86/ffi.c: Ditto. 1766 * src/x86/ffitarget.h: Ditto. 1767 17682010-04-12 Dan Witte <dwitte@mozilla.com> 1769 Walter Meinl <wuno@lsvw.de> 1770 1771 * configure.ac: Add OS/2 support. 1772 * configure: Rebuilt. 1773 * src/closures.c: Ditto. 1774 * src/dlmalloc.c: Ditto. 1775 * src/x86/win32.S: Ditto. 1776 17772010-04-07 Jakub Jelinek <jakub@redhat.com> 1778 1779 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable. 1780 17812010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1782 1783 * Makefile.in: Regenerate. 1784 * aclocal.m4: Regenerate. 1785 * include/Makefile.in: Regenerate. 1786 * man/Makefile.in: Regenerate. 1787 * testsuite/Makefile.in: Regenerate. 1788 17892010-03-30 Dan Witte <dwitte@mozilla.com> 1790 1791 * msvcc.sh: Disable build warnings. 1792 * README (tested): Clarify windows build procedure. 1793 17942010-03-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1795 1796 * configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test. 1797 * configure: Regenerate. 1798 * fficonfig.h.in: Regenerate. 1799 * libffi/src/x86/unix64.S (.eh_frame) 1800 [HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type. 1801 18022010-03-14 Matthias Klose <doko@ubuntu.com> 1803 1804 * src/x86/ffi64.c: Fix typo in comment. 1805 * src/x86/ffi.c: Use /* ... */ comment style. 1806 18072010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1808 1809 * doc/libffi.texi (The Closure API): Fix typo. 1810 * doc/libffi.info: Remove. 1811 18122010-02-15 Matthias Klose <doko@ubuntu.com> 1813 1814 * src/arm/sysv.S (__ARM_ARCH__): Define for processor 1815 __ARM_ARCH_7EM__. 1816 18172010-01-15 Anthony Green <green@redhat.com> 1818 1819 * README: Add notes on building with Microsoft Visual C++. 1820 18212010-01-15 Daniel Witte <dwitte@mozilla.com> 1822 1823 * msvcc.sh: New file. 1824 1825 * src/x86/win32.S: Port assembly routines to MSVC and #ifdef. 1826 * src/x86/ffi.c: Tweak function declaration and remove excess 1827 parens. 1828 * include/ffi.h.in: Add __declspec(align(8)) to typedef struct 1829 ffi_closure. 1830 1831 * src/x86/ffi.c: Merge ffi_call_SYSV and ffi_call_STDCALL into new 1832 function ffi_call_win32 on X86_WIN32. 1833 * src/x86/win32.S (ffi_call_SYSV): Rename to ffi_call_win32. 1834 (ffi_call_STDCALL): Remove. 1835 1836 * src/prep_cif.c (ffi_prep_cif): Move stack space allocation code 1837 to ffi_prep_cif_machdep for x86. 1838 * src/x86/ffi.c (ffi_prep_cif_machdep): To here. 1839 18402010-01-15 Oliver Kiddle <okiddle@yahoo.co.uk> 1841 1842 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for 1843 Sun Studio compiler compatibility. 1844 18452010-01-12 Conrad Irwin <conrad.irwin@gmail.com> 1846 1847 * doc/libffi.texi: Add closure example. 1848 18492010-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1850 1851 PR libffi/40701 1852 * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL, 1853 PRIuLL, PRId64, PRIu64, PRIuPTR): Define. 1854 * testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on 1855 alpha*-dec-osf*. 1856 * testsuite/libffi.call/cls_align_uint64.c: Likewise. 1857 * testsuite/libffi.call/cls_ulonglong.c: Likewise. 1858 * testsuite/libffi.call/return_ll1.c: Likewise. 1859 * testsuite/libffi.call/stret_medium2.c: Likewise. 1860 * testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast 1861 MAP_FAILED to char *. 1862 18632010-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1864 1865 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__. 1866 18672009-12-31 Anthony Green <green@redhat.com> 1868 1869 * README: Update for libffi 3.0.9. 1870 18712009-12-27 Matthias Klose <doko@ubuntu.com> 1872 1873 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when 1874 appropriate. 1875 * configure: Rebuilt. 1876 18772009-12-26 Anthony Green <green@redhat.com> 1878 1879 * testsuite/libffi.call/cls_longdouble_va.c: Mark as xfail for 1880 avr32*-*-*. 1881 * testsuite/libffi.call/cls_double_va.c: Ditto. 1882 18832009-12-26 Andreas Tobler <a.tobler@schweiz.org> 1884 1885 * testsuite/libffi.call/ffitest.h: Conditionally include stdint.h 1886 and inttypes.h. 1887 * testsuite/libffi.special/unwindtest.cc: Ditto. 1888 18892009-12-26 Andreas Tobler <a.tobler@schweiz.org> 1890 1891 * configure.ac: Add amd64-*-openbsd*. 1892 * configure: Rebuilt. 1893 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Link 1894 openbsd programs with -lpthread. 1895 18962009-12-26 Anthony Green <green@redhat.com> 1897 1898 * testsuite/libffi.call/cls_double_va.c, 1899 testsuite/libffi.call/cls_longdouble.c, 1900 testsuite/libffi.call/cls_longdouble_va.c, 1901 testsuite/libffi.call/cls_pointer.c, 1902 testsuite/libffi.call/cls_pointer_stack.c: Remove xfail for 1903 mips*-*-* and arm*-*-*. 1904 * testsuite/libffi.call/cls_align_longdouble_split.c, 1905 testsuite/libffi.call/cls_align_longdouble_split2.c, 1906 testsuite/libffi.call/stret_medium2.c, 1907 testsuite/libffi.call/stret_medium.c, 1908 testsuite/libffi.call/stret_large.c, 1909 testsuite/libffi.call/stret_large2.c: Remove xfail for arm*-*-*. 1910 19112009-12-31 Kay Tietz <ktietz70@googlemail.com> 1912 1913 * testsuite/libffi.call/ffitest.h, 1914 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix 1915 definitions. 1916 19172009-12-31 Carlo Bramini <carlo.bramix@libero.it> 1918 1919 * configure.ac (AM_LTLDFLAGS): Define for windows hosts. 1920 * Makefile.am (libffi_la_LDFLAGS): Add AM_LTLDFLAGS. 1921 * configure: Rebuilt. 1922 * Makefile.in: Rebuilt. 1923 19242009-12-31 Anthony Green <green@redhat.com> 1925 Blake Chaffin. 1926 1927 * testsuite/libffi.call/huge_struct.c: New test case from Blake 1928 Chaffin @ Apple. 1929 19302009-12-28 David Edelsohn <edelsohn@gnu.org> 1931 1932 * src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to 1933 local variables. 1934 (aix_adjust_aggregate_sizes): New function. 1935 (ffi_prep_cif_machdep): Call it. 1936 19372009-12-26 Andreas Tobler <a.tobler@schweiz.org> 1938 1939 * configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets. 1940 * configure: Regenerate. 1941 * fficonfig.h.in: Likewise. 1942 * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for 1943 Solaris/x86. 1944 19452009-12-26 Andreas Schwab <schwab@linux-m68k.org> 1946 1947 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count 1948 when a float arguments is passed in memory. 1949 (ffi_closure_helper_SYSV): Mark general registers as used up when 1950 a 64bit or soft-float long double argument is passed in memory. 1951 19522009-12-25 Matthias Klose <doko@ubuntu.com> 1953 1954 * man/ffi_call.3: Fix #include in examples. 1955 * doc/libffi.texi: Add dircategory. 1956 19572009-12-25 Frank Everdij <f.p.x.everdij@tudelft.nl> 1958 1959 * include/ffi.h.in: Placed '__GNUC__' ifdef around 1960 '__attribute__((aligned(8)))' in ffi_closure, fixes compile for 1961 IRIX MIPSPro c99. 1962 * include/ffi_common.h: Added '__sgi' define to non 1963 '__attribute__((__mode__()))' integer typedefs. 1964 * src/mips/ffi.c (ffi_call, ffi_closure_mips_inner_O32, 1965 ffi_closure_mips_inner_N32): Added 'defined(_MIPSEB)' to BE check. 1966 (ffi_closure_mips_inner_O32, ffi_closure_mips_inner_N32): Added 1967 FFI_LONGDOUBLE support and alignment(N32 only). 1968 * src/mips/ffitarget.h: Corrected '#include <sgidefs.h>' for IRIX and 1969 fixed non '__attribute__((__mode__()))' integer typedefs. 1970 * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame' 1971 since they are Linux/GNU Assembler specific. 1972 19732009-12-25 Bradley Smith <brad@brad-smith.co.uk> 1974 1975 * configure.ac, Makefile.am, src/avr32/ffi.c, 1976 src/avr32/ffitarget.h, 1977 src/avr32/sysv.S: Add AVR32 port. 1978 * configure, Makefile.in: Rebuilt. 1979 19802009-12-21 Andreas Tobler <a.tobler@schweiz.org> 1981 1982 * configure.ac: Make i?86 build on FreeBSD and OpenBSD. 1983 * configure: Regenerate. 1984 19852009-12-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 1986 1987 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX. 1988 19892009-12-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 1990 1991 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE 1992 type on HP-UX. 1993 19942012-02-13 Kai Tietz <ktietz@redhat.com> 1995 1996 PR libffi/52221 1997 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall 1998 support for X86_WIN32. 1999 (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement. 2000 20012009-12-11 Eric Botcazou <ebotcazou@adacore.com> 2002 2003 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long 2004 double' arguments. 2005 20062009-12-11 Eric Botcazou <ebotcazou@adacore.com> 2007 2008 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10. 2009 20102009-12-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2011 2012 PR libffi/40700 2013 * src/closures.c [X86_64 && __sun__ && __svr4__] 2014 (FFI_MMAP_EXEC_WRIT): Define. 2015 20162009-12-08 David Daney <ddaney@caviumnetworks.com> 2017 2018 * testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-* 2019 * testsuite/libffi.call/cls_align_longdouble_split2.c: Same. 2020 * testsuite/libffi.call/stret_large.c: Same. 2021 * testsuite/libffi.call/cls_align_longdouble_split.c: Same. 2022 * testsuite/libffi.call/stret_large2.c: Same. 2023 * testsuite/libffi.call/stret_medium2.c: Same. 2024 20252009-12-07 David Edelsohn <edelsohn@gnu.org> 2026 2027 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump 2028 typo. 2029 20302009-12-05 David Edelsohn <edelsohn@gnu.org> 2031 2032 * src/powerpc/aix.S: Update AIX32 code to be consistent with AIX64 2033 code. 2034 * src/powerpc/aix_closure.S: Same. 2035 20362009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2037 2038 * Makefile.in: Regenerate. 2039 * configure: Regenerate. 2040 * include/Makefile.in: Regenerate. 2041 * man/Makefile.in: Regenerate. 2042 * testsuite/Makefile.in: Regenerate. 2043 20442009-12-04 David Edelsohn <edelsohn@gnu.org> 2045 2046 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match 2047 linux64_closure.S. 2048 20492009-12-04 Uros Bizjak <ubizjak@gmail.com> 2050 2051 PR libffi/41908 2052 * src/x86/ffi64.c (classify_argument): Update from 2053 gcc/config/i386/i386.c. 2054 (ffi_closure_unix64_inner): Do not use the address of two consecutive 2055 SSE registers directly. 2056 * testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail 2057 for x86_64 linux targets. 2058 20592009-12-04 David Edelsohn <edelsohn@gnu.org> 2060 2061 * src/powerpc/ffi_darwin.c (ffi_closure_helper_DARWIN): Increment 2062 pfr for long double split between fpr13 and stack. 2063 20642009-12-03 David Edelsohn <edelsohn@gnu.org> 2065 2066 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and 2067 fparg_count twice for long double. 2068 20692009-12-03 David Edelsohn <edelsohn@gnu.org> 2070 2071 PR libffi/42243 2072 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses. 2073 20742009-12-03 Uros Bizjak <ubizjak@gmail.com> 2075 2076 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string. 2077 Remove xfails for x86 linux targets. 2078 20792009-12-02 David Edelsohn <edelsohn@gnu.org> 2080 2081 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64 2082 case. 2083 20842009-12-01 David Edelsohn <edelsohn@gnu.org> 2085 2086 * src/powerpc/aix.S (ffi_call_AIX): Convert to more standard 2087 register usage. Call ffi_prep_args directly. Add long double 2088 return value support. 2089 * src/powerpc/ffi_darwin.c (ffi_prep_args): Double arg increment 2090 applies to FFI_TYPE_DOUBLE. Correct fpr_base increment typo. 2091 Separate FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases. 2092 (ffi_prep_cif_machdep): Only 16 byte stack alignment in 64 bit 2093 mode. 2094 (ffi_closure_helper_DARWIN): Remove nf and ng counters. Move temp 2095 into case. 2096 * src/powerpc/aix_closure.S: Maintain 16 byte stack alignment. 2097 Allocate result area between params and FPRs. 2098 20992009-11-30 David Edelsohn <edelsohn@gnu.org> 2100 2101 PR target/35484 2102 * src/powerpc/ffitarget.h (POWERPC64): Define for PPC64 Linux and 2103 AIX64. 2104 * src/powerpc/aix.S: Implement AIX64 version. 2105 * src/powerpc/aix_closure.S: Implement AIX64 version. 2106 (ffi_closure_ASM): Use extsb, lha and displament addresses. 2107 * src/powerpc/ffi_darwin.c (ffi_prep_args): Implement AIX64 2108 support. 2109 (ffi_prep_cif_machdep): Same. 2110 (ffi_call): Same. 2111 (ffi_closure_helper_DARWIN): Same. 2112 21132009-11-02 Andreas Tobler <a.tobler@schweiz.org> 2114 2115 PR libffi/41908 2116 * testsuite/libffi.call/testclosure.c: New test. 2117 21182009-09-28 Kai Tietz <kai.tietz@onevision.com> 2119 2120 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu 2121 assembly version use of ___chkstk. 2122 21232009-09-23 Matthias Klose <doko@ubuntu.com> 2124 2125 PR libffi/40242, PR libffi/41443 2126 * src/arm/sysv.S (__ARM_ARCH__): Define for processors 2127 __ARM_ARCH_6T2__, __ARM_ARCH_6M__, __ARM_ARCH_7__, 2128 __ARM_ARCH_7A__, __ARM_ARCH_7R__, __ARM_ARCH_7M__. 2129 Change the conditionals to __SOFTFP__ || __ARM_EABI__ 2130 for -mfloat-abi=softfp to work. 2131 21322009-09-17 Loren J. Rittle <ljrittle@acm.org> 2133 2134 PR testsuite/32843 (strikes again) 2135 * src/x86/ffi.c (ffi_prep_cif_machdep): Add X86_FREEBSD to 2136 enable proper extension on char and short. 2137 21382009-09-15 David Daney <ddaney@caviumnetworks.com> 2139 2140 * src/java_raw_api.c (ffi_java_raw_to_rvalue): Remove special 2141 handling for FFI_TYPE_POINTER. 2142 * src/mips/ffitarget.h (FFI_TYPE_STRUCT_D_SOFT, 2143 FFI_TYPE_STRUCT_F_SOFT, FFI_TYPE_STRUCT_DD_SOFT, 2144 FFI_TYPE_STRUCT_FF_SOFT, FFI_TYPE_STRUCT_FD_SOFT, 2145 FFI_TYPE_STRUCT_DF_SOFT, FFI_TYPE_STRUCT_SOFT): New defines. 2146 (FFI_N32_SOFT_FLOAT, FFI_N64_SOFT_FLOAT): New ffi_abi enumerations. 2147 (enum ffi_abi): Set FFI_DEFAULT_ABI for soft-float. 2148 * src/mips/n32.S (ffi_call_N32): Add handling for soft-float 2149 structure and pointer returns. 2150 (ffi_closure_N32): Add handling for pointer returns. 2151 * src/mips/ffi.c (ffi_prep_args, calc_n32_struct_flags, 2152 calc_n32_return_struct_flags): Handle soft-float. 2153 (ffi_prep_cif_machdep): Handle soft-float, fix pointer handling. 2154 (ffi_call_N32): Declare proper argument types. 2155 (ffi_call, copy_struct_N32, ffi_closure_mips_inner_N32): Handle 2156 soft-float. 2157 21582009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2159 2160 * configure.ac (AC_PREREQ): Bump to 2.64. 2161 21622009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2163 2164 * Makefile.am (install-html, install-pdf): Remove. 2165 * Makefile.in: Regenerate. 2166 2167 * Makefile.in: Regenerate. 2168 * aclocal.m4: Regenerate. 2169 * configure: Regenerate. 2170 * fficonfig.h.in: Regenerate. 2171 * include/Makefile.in: Regenerate. 2172 * man/Makefile.in: Regenerate. 2173 * testsuite/Makefile.in: Regenerate. 2174 21752011-08-22 Jasper Lievisse Adriaanse <jasper@openbsd.org> 2176 2177 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support. 2178 * configure: Rebuilt. 2179 21802009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2181 2182 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force. 2183 21842009-07-24 Dave Korn <dave.korn.cygwin@gmail.com> 2185 2186 PR libffi/40807 2187 * src/x86/ffi.c (ffi_prep_cif_machdep): Also use sign/zero-extending 2188 return types for X86_WIN32. 2189 * src/x86/win32.S (_ffi_call_SYSV): Handle omitted return types. 2190 (_ffi_call_STDCALL, _ffi_closure_SYSV, _ffi_closure_raw_SYSV, 2191 _ffi_closure_STDCALL): Likewise. 2192 2193 * src/closures.c (is_selinux_enabled): Define to const 0 for Cygwin. 2194 (dlmmap, dlmunmap): Also use these functions on Cygwin. 2195 21962009-07-11 Richard Sandiford <rdsandiford@googlemail.com> 2197 2198 PR testsuite/40699 2199 PR testsuite/40707 2200 PR testsuite/40709 2201 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and 2202 2009-06-30 commits. 2203 22042009-07-01 Richard Sandiford <r.sandiford@uk.ibm.com> 2205 2206 * testsuite/lib/libffi-dg.exp (libffi-init): Set ld_library_path 2207 to "" before adding paths. (This reinstates an assignment that 2208 was removed by my 2009-06-30 commit, but changes the initial 2209 value from "." to "".) 2210 22112009-07-01 H.J. Lu <hongjiu.lu@intel.com> 2212 2213 PR testsuite/40601 2214 * testsuite/lib/libffi-dg.exp (libffi-init): Properly set 2215 gccdir. Adjust ld_library_path for gcc only if gccdir isn't 2216 empty. 2217 22182009-06-30 Richard Sandiford <r.sandiford@uk.ibm.com> 2219 2220 * testsuite/lib/libffi-dg.exp (libffi-init): Don't add "." 2221 to ld_library_path. Use add_path. Add just find_libgcc_s 2222 to ld_library_path, not every libgcc multilib directory. 2223 22242009-06-16 Wim Lewis <wiml@hhhh.org> 2225 2226 * src/powerpc/ffi.c: Avoid clobbering cr3 and cr4, which are 2227 supposed to be callee-saved. 2228 * src/powerpc/sysv.S (small_struct_return_value): Fix overrun of 2229 return buffer for odd-size structs. 2230 22312009-06-16 Andreas Tobler <a.tobler@schweiz.org> 2232 2233 PR libffi/40444 2234 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add 2235 allow_stack_execute for Darwin. 2236 22372009-06-16 Andrew Haley <aph@redhat.com> 2238 2239 * configure.ac (TARGETDIR): Add missing blank lines. 2240 * configure: Regenerate. 2241 22422009-06-16 Andrew Haley <aph@redhat.com> 2243 2244 * testsuite/libffi.call/cls_align_sint64.c, 2245 testsuite/libffi.call/cls_align_uint64.c, 2246 testsuite/libffi.call/cls_longdouble_va.c, 2247 testsuite/libffi.call/cls_ulonglong.c, 2248 testsuite/libffi.call/return_ll1.c, 2249 testsuite/libffi.call/stret_medium2.c: Fix printf format 2250 specifiers. 2251 * testsuite/libffi.call/ffitest.h, 2252 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define. 2253 22542009-06-15 Andrew Haley <aph@redhat.com> 2255 2256 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere. 2257 * testsuite/libffi.call/err_bad_abi.c: Likewise. 2258 22592009-06-12 Andrew Haley <aph@redhat.com> 2260 2261 * Makefile.am: Remove info_TEXINFOS. 2262 22632009-06-12 Andrew Haley <aph@redhat.com> 2264 2265 * ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c, 2266 testsuite/libffi.call/cls_align_uint64.c, 2267 testsuite/libffi.call/cls_ulonglong.c, 2268 testsuite/libffi.call/return_ll1.c, 2269 testsuite/libffi.call/stret_medium2.c: Fix printf format 2270 specifiers. 2271 testsuite/libffi.special/unwindtest.cc: include stdint.h. 2272 22732009-06-11 Timothy Wall <twall@users.sf.net> 2274 2275 * Makefile.am, 2276 configure.ac, 2277 include/ffi.h.in, 2278 include/ffi_common.h, 2279 src/closures.c, 2280 src/dlmalloc.c, 2281 src/x86/ffi.c, 2282 src/x86/ffitarget.h, 2283 src/x86/win64.S (new), 2284 README: Added win64 support (mingw or MSVC) 2285 * Makefile.in, 2286 include/Makefile.in, 2287 man/Makefile.in, 2288 testsuite/Makefile.in, 2289 configure, 2290 aclocal.m4: Regenerated 2291 * ltcf-c.sh: properly escape cygwin/w32 path 2292 * man/ffi_call.3: Clarify size requirements for return value. 2293 * src/x86/ffi64.c: Fix filename in comment. 2294 * src/x86/win32.S: Remove unused extern. 2295 2296 * testsuite/libffi.call/closure_fn0.c, 2297 testsuite/libffi.call/closure_fn1.c, 2298 testsuite/libffi.call/closure_fn2.c, 2299 testsuite/libffi.call/closure_fn3.c, 2300 testsuite/libffi.call/closure_fn4.c, 2301 testsuite/libffi.call/closure_fn5.c, 2302 testsuite/libffi.call/closure_fn6.c, 2303 testsuite/libffi.call/closure_stdcall.c, 2304 testsuite/libffi.call/cls_12byte.c, 2305 testsuite/libffi.call/cls_16byte.c, 2306 testsuite/libffi.call/cls_18byte.c, 2307 testsuite/libffi.call/cls_19byte.c, 2308 testsuite/libffi.call/cls_1_1byte.c, 2309 testsuite/libffi.call/cls_20byte.c, 2310 testsuite/libffi.call/cls_20byte1.c, 2311 testsuite/libffi.call/cls_24byte.c, 2312 testsuite/libffi.call/cls_2byte.c, 2313 testsuite/libffi.call/cls_3_1byte.c, 2314 testsuite/libffi.call/cls_3byte1.c, 2315 testsuite/libffi.call/cls_3byte2.c, 2316 testsuite/libffi.call/cls_4_1byte.c, 2317 testsuite/libffi.call/cls_4byte.c, 2318 testsuite/libffi.call/cls_5_1_byte.c, 2319 testsuite/libffi.call/cls_5byte.c, 2320 testsuite/libffi.call/cls_64byte.c, 2321 testsuite/libffi.call/cls_6_1_byte.c, 2322 testsuite/libffi.call/cls_6byte.c, 2323 testsuite/libffi.call/cls_7_1_byte.c, 2324 testsuite/libffi.call/cls_7byte.c, 2325 testsuite/libffi.call/cls_8byte.c, 2326 testsuite/libffi.call/cls_9byte1.c, 2327 testsuite/libffi.call/cls_9byte2.c, 2328 testsuite/libffi.call/cls_align_double.c, 2329 testsuite/libffi.call/cls_align_float.c, 2330 testsuite/libffi.call/cls_align_longdouble.c, 2331 testsuite/libffi.call/cls_align_longdouble_split.c, 2332 testsuite/libffi.call/cls_align_longdouble_split2.c, 2333 testsuite/libffi.call/cls_align_pointer.c, 2334 testsuite/libffi.call/cls_align_sint16.c, 2335 testsuite/libffi.call/cls_align_sint32.c, 2336 testsuite/libffi.call/cls_align_sint64.c, 2337 testsuite/libffi.call/cls_align_uint16.c, 2338 testsuite/libffi.call/cls_align_uint32.c, 2339 testsuite/libffi.call/cls_align_uint64.c, 2340 testsuite/libffi.call/cls_dbls_struct.c, 2341 testsuite/libffi.call/cls_double.c, 2342 testsuite/libffi.call/cls_double_va.c, 2343 testsuite/libffi.call/cls_float.c, 2344 testsuite/libffi.call/cls_longdouble.c, 2345 testsuite/libffi.call/cls_longdouble_va.c, 2346 testsuite/libffi.call/cls_multi_schar.c, 2347 testsuite/libffi.call/cls_multi_sshort.c, 2348 testsuite/libffi.call/cls_multi_sshortchar.c, 2349 testsuite/libffi.call/cls_multi_uchar.c, 2350 testsuite/libffi.call/cls_multi_ushort.c, 2351 testsuite/libffi.call/cls_multi_ushortchar.c, 2352 testsuite/libffi.call/cls_pointer.c, 2353 testsuite/libffi.call/cls_pointer_stack.c, 2354 testsuite/libffi.call/cls_schar.c, 2355 testsuite/libffi.call/cls_sint.c, 2356 testsuite/libffi.call/cls_sshort.c, 2357 testsuite/libffi.call/cls_uchar.c, 2358 testsuite/libffi.call/cls_uint.c, 2359 testsuite/libffi.call/cls_ulonglong.c, 2360 testsuite/libffi.call/cls_ushort.c, 2361 testsuite/libffi.call/err_bad_abi.c, 2362 testsuite/libffi.call/err_bad_typedef.c, 2363 testsuite/libffi.call/float2.c, 2364 testsuite/libffi.call/huge_struct.c, 2365 testsuite/libffi.call/nested_struct.c, 2366 testsuite/libffi.call/nested_struct1.c, 2367 testsuite/libffi.call/nested_struct10.c, 2368 testsuite/libffi.call/nested_struct2.c, 2369 testsuite/libffi.call/nested_struct3.c, 2370 testsuite/libffi.call/nested_struct4.c, 2371 testsuite/libffi.call/nested_struct5.c, 2372 testsuite/libffi.call/nested_struct6.c, 2373 testsuite/libffi.call/nested_struct7.c, 2374 testsuite/libffi.call/nested_struct8.c, 2375 testsuite/libffi.call/nested_struct9.c, 2376 testsuite/libffi.call/problem1.c, 2377 testsuite/libffi.call/return_ldl.c, 2378 testsuite/libffi.call/return_ll1.c, 2379 testsuite/libffi.call/stret_large.c, 2380 testsuite/libffi.call/stret_large2.c, 2381 testsuite/libffi.call/stret_medium.c, 2382 testsuite/libffi.call/stret_medium2.c, 2383 testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead 2384 of checking for MMAP. Use intptr_t instead of long casts. 2385 23862009-06-11 Kaz Kojima <kkojima@gcc.gnu.org> 2387 2388 * testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*. 2389 * testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*. 2390 * testsuite/libffi.call/err_bad_typedef.c: Likewise. 2391 23922009-06-09 Andrew Haley <aph@redhat.com> 2393 2394 * src/x86/freebsd.S: Add missing file. 2395 23962009-06-08 Andrew Haley <aph@redhat.com> 2397 2398 Import from libffi 3.0.8: 2399 2400 * doc/libffi.texi: New file. 2401 * doc/libffi.info: Likewise. 2402 * doc/stamp-vti: Likewise. 2403 * man/Makefile.am: New file. 2404 * man/ffi_call.3: New file. 2405 2406 * Makefile.am (EXTRA_DIST): Add src/x86/darwin64.S, 2407 src/dlmalloc.c. 2408 (nodist_libffi_la_SOURCES): Add X86_FREEBSD. 2409 2410 * configure.ac: Bump version to 3.0.8. 2411 parisc*-*-linux*: Add. 2412 i386-*-freebsd* | i386-*-openbsd*: Add. 2413 powerpc-*-beos*: Add. 2414 AM_CONDITIONAL X86_FREEBSD: Add. 2415 AC_CONFIG_FILES: Add man/Makefile. 2416 2417 * include/ffi.h.in (FFI_FN): Change void (*)() to void (*)(void). 2418 24192009-06-08 Andrew Haley <aph@redhat.com> 2420 2421 * README: Import from libffi 3.0.8. 2422 24232009-06-08 Andrew Haley <aph@redhat.com> 2424 2425 * testsuite/libffi.call/err_bad_abi.c: Add xfails. 2426 * testsuite/libffi.call/cls_longdouble_va.c: Add xfails. 2427 * testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*. 2428 * testsuite/libffi.call/err_bad_typedef.c: Add xfails. 2429 2430 * testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args. 2431 * testsuite/libffi.call/stret_medium.c: Likewise. 2432 * testsuite/libffi.call/stret_large2.c: Likewise. 2433 * testsuite/libffi.call/stret_large.c: Likewise. 2434 24352008-12-26 Timothy Wall <twall@users.sf.net> 2436 2437 * testsuite/libffi.call/cls_longdouble.c, 2438 testsuite/libffi.call/cls_longdouble_va.c, 2439 testsuite/libffi.call/cls_align_longdouble.c, 2440 testsuite/libffi.call/cls_align_longdouble_split.c, 2441 testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected 2442 failures on x86_64 cygwin/mingw. 2443 24442008-12-22 Timothy Wall <twall@users.sf.net> 2445 2446 * testsuite/libffi.call/closure_fn0.c, 2447 testsuite/libffi.call/closure_fn1.c, 2448 testsuite/libffi.call/closure_fn2.c, 2449 testsuite/libffi.call/closure_fn3.c, 2450 testsuite/libffi.call/closure_fn4.c, 2451 testsuite/libffi.call/closure_fn5.c, 2452 testsuite/libffi.call/closure_fn6.c, 2453 testsuite/libffi.call/closure_loc_fn0.c, 2454 testsuite/libffi.call/closure_stdcall.c, 2455 testsuite/libffi.call/cls_align_pointer.c, 2456 testsuite/libffi.call/cls_pointer.c, 2457 testsuite/libffi.call/cls_pointer_stack.c: use portable cast from 2458 pointer to integer (intptr_t). 2459 * testsuite/libffi.call/cls_longdouble.c: disable for win64. 2460 24612008-07-24 Anthony Green <green@redhat.com> 2462 2463 * testsuite/libffi.call/cls_dbls_struct.c, 2464 testsuite/libffi.call/cls_double_va.c, 2465 testsuite/libffi.call/cls_longdouble.c, 2466 testsuite/libffi.call/cls_longdouble_va.c, 2467 testsuite/libffi.call/cls_pointer.c, 2468 testsuite/libffi.call/cls_pointer_stack.c, 2469 testsuite/libffi.call/err_bad_abi.c: Clean up failures from 2470 compiler warnings. 2471 24722008-03-04 Anthony Green <green@redhat.com> 2473 Blake Chaffin 2474 hos@tamanegi.org 2475 2476 * testsuite/libffi.call/cls_align_longdouble_split2.c 2477 testsuite/libffi.call/cls_align_longdouble_split.c 2478 testsuite/libffi.call/cls_dbls_struct.c 2479 testsuite/libffi.call/cls_double_va.c 2480 testsuite/libffi.call/cls_longdouble.c 2481 testsuite/libffi.call/cls_longdouble_va.c 2482 testsuite/libffi.call/cls_pointer.c 2483 testsuite/libffi.call/cls_pointer_stack.c 2484 testsuite/libffi.call/err_bad_abi.c 2485 testsuite/libffi.call/err_bad_typedef.c 2486 testsuite/libffi.call/stret_large2.c 2487 testsuite/libffi.call/stret_large.c 2488 testsuite/libffi.call/stret_medium2.c 2489 testsuite/libffi.call/stret_medium.c: New tests from Apple. 2490 24912009-06-05 Andrew Haley <aph@redhat.com> 2492 2493 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from 2494 libffi. 2495 24962009-06-04 Andrew Haley <aph@redhat.com> 2497 2498 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out 2499 stdcall changes. 2500 25012008-02-26 Anthony Green <green@redhat.com> 2502 Thomas Heller <theller@ctypes.org> 2503 2504 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C 2505 comment. 2506 25072008-02-03 Timothy Wall <twall@users.sf.net> 2508 2509 * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return 2510 offset based on code pointer, not data pointer. 2511 25122008-01-31 Timothy Wall <twall@users.sf.net> 2513 2514 * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall 2515 closures. 2516 * src/x86/ffitarget.h: Increase size of trampoline for stdcall 2517 closures. 2518 * src/x86/win32.S: Add assembly for stdcall closure. 2519 * src/x86/ffi.c: Initialize stdcall closure trampoline. 2520 25212009-06-04 Andrew Haley <aph@redhat.com> 2522 2523 * include/ffi.h.in: Change void (*)() to void (*)(void). 2524 * src/x86/ffi.c: Likewise. 2525 25262009-06-04 Andrew Haley <aph@redhat.com> 2527 2528 * src/powerpc/ppc_closure.S: Insert licence header. 2529 * src/powerpc/linux64_closure.S: Likewise. 2530 * src/m68k/sysv.S: Likewise. 2531 2532 * src/sh64/ffi.c: Change void (*)() to void (*)(void). 2533 * src/powerpc/ffi.c: Likewise. 2534 * src/powerpc/ffi_darwin.c: Likewise. 2535 * src/m32r/ffi.c: Likewise. 2536 * src/sh64/ffi.c: Likewise. 2537 * src/x86/ffi64.c: Likewise. 2538 * src/alpha/ffi.c: Likewise. 2539 * src/alpha/osf.S: Likewise. 2540 * src/frv/ffi.c: Likewise. 2541 * src/s390/ffi.c: Likewise. 2542 * src/pa/ffi.c: Likewise. 2543 * src/pa/hpux32.S: Likewise. 2544 * src/ia64/unix.S: Likewise. 2545 * src/ia64/ffi.c: Likewise. 2546 * src/sparc/ffi.c: Likewise. 2547 * src/mips/ffi.c: Likewise. 2548 * src/sh/ffi.c: Likewise. 2549 25502008-02-15 David Daney <ddaney@avtrex.com> 2551 2552 * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE): 2553 Define (conditionally), and use it to include cachectl.h. 2554 (ffi_prep_closure_loc): Fix cache flushing. 2555 * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define. 2556 25572009-06-04 Andrew Haley <aph@redhat.com> 2558 2559 include/ffi.h.in, 2560 src/arm/ffitarget.h, 2561 src/arm/ffi.c, 2562 src/arm/sysv.S, 2563 src/powerpc/ffitarget.h, 2564 src/closures.c, 2565 src/sh64/ffitarget.h, 2566 src/sh64/ffi.c, 2567 src/sh64/sysv.S, 2568 src/types.c, 2569 src/x86/ffi64.c, 2570 src/x86/ffitarget.h, 2571 src/x86/win32.S, 2572 src/x86/darwin.S, 2573 src/x86/ffi.c, 2574 src/x86/sysv.S, 2575 src/x86/unix64.S, 2576 src/alpha/ffitarget.h, 2577 src/alpha/ffi.c, 2578 src/alpha/osf.S, 2579 src/m68k/ffitarget.h, 2580 src/frv/ffitarget.h, 2581 src/frv/ffi.c, 2582 src/s390/ffitarget.h, 2583 src/s390/sysv.S, 2584 src/cris/ffitarget.h, 2585 src/pa/linux.S, 2586 src/pa/ffitarget.h, 2587 src/pa/ffi.c, 2588 src/raw_api.c, 2589 src/ia64/ffitarget.h, 2590 src/ia64/unix.S, 2591 src/ia64/ffi.c, 2592 src/ia64/ia64_flags.h, 2593 src/java_raw_api.c, 2594 src/debug.c, 2595 src/sparc/v9.S, 2596 src/sparc/ffitarget.h, 2597 src/sparc/ffi.c, 2598 src/sparc/v8.S, 2599 src/mips/ffitarget.h, 2600 src/mips/n32.S, 2601 src/mips/o32.S, 2602 src/mips/ffi.c, 2603 src/prep_cif.c, 2604 src/sh/ffitarget.h, 2605 src/sh/ffi.c, 2606 src/sh/sysv.S: Update license text. 2607 26082009-05-22 Dave Korn <dave.korn.cygwin@gmail.com> 2609 2610 * src/x86/win32.S (_ffi_closure_STDCALL): New function. 2611 (.eh_frame): Add FDE for it. 2612 26132009-05-22 Dave Korn <dave.korn.cygwin@gmail.com> 2614 2615 * configure.ac: Also check if assembler supports pc-relative 2616 relocs on X86_WIN32 targets. 2617 * configure: Regenerate. 2618 * src/x86/win32.S (ffi_prep_args): Declare extern, not global. 2619 (_ffi_call_SYSV): Add missing function type symbol .def and 2620 add EH markup labels. 2621 (_ffi_call_STDCALL): Likewise. 2622 (_ffi_closure_SYSV): Likewise. 2623 (_ffi_closure_raw_SYSV): Likewise. 2624 (.eh_frame): Add hand-crafted EH data. 2625 26262009-04-09 Jakub Jelinek <jakub@redhat.com> 2627 2628 * testsuite/lib/libffi-dg.exp: Change copyright header to refer to 2629 version 3 of the GNU General Public License and to point readers 2630 at the COPYING3 file and the FSF's license web page. 2631 * testsuite/libffi.call/call.exp: Likewise. 2632 * testsuite/libffi.special/special.exp: Likewise. 2633 26342009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2635 2636 * configure: Regenerate. 2637 26382008-12-18 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 2639 2640 PR libffi/26048 2641 * configure.ac (HAVE_AS_X86_PCREL): New test. 2642 * configure: Regenerate. 2643 * fficonfig.h.in: Regenerate. 2644 * src/x86/sysv.S [!FFI_NO_RAW_API]: Precalculate 2645 RAW_CLOSURE_CIF_OFFSET, RAW_CLOSURE_FUN_OFFSET, 2646 RAW_CLOSURE_USER_DATA_OFFSET for the Solaris 10/x86 assembler. 2647 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL. 2648 * src/x86/unix64.S (.Lstore_table): Move to .text section. 2649 (.Lload_table): Likewise. 2650 (.eh_frame): Only use SYMBOL-. iff HAVE_AS_X86_PCREL. 2651 26522008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2653 2654 * configure: Regenerate. 2655 26562008-11-21 Eric Botcazou <ebotcazou@adacore.com> 2657 2658 * src/sparc/ffi.c (ffi_prep_cif_machdep): Add support for 2659 signed/unsigned int8/16 return values. 2660 * src/sparc/v8.S (ffi_call_v8): Likewise. 2661 (ffi_closure_v8): Likewise. 2662 26632008-09-26 Peter O'Gorman <pogma@thewrittenword.com> 2664 Steve Ellcey <sje@cup.hp.com> 2665 2666 * configure: Regenerate for new libtool. 2667 * Makefile.in: Ditto. 2668 * include/Makefile.in: Ditto. 2669 * aclocal.m4: Ditto. 2670 26712008-08-25 Andreas Tobler <a.tobler@schweiz.org> 2672 2673 * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and 2674 FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum. 2675 Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT. 2676 Adjust copyright notice. 2677 * src/powerpc/ffi.c: Add two new flags to indicate if we have one 2678 register or two register to use for FFI_SYSV structs. 2679 (ffi_prep_cif_machdep): Pass the right register flag introduced above. 2680 (ffi_closure_helper_SYSV): Fix the return type for 2681 FFI_SYSV_TYPE_SMALL_STRUCT. Comment. 2682 Adjust copyright notice. 2683 26842008-07-16 Kaz Kojima <kkojima@gcc.gnu.org> 2685 2686 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned 2687 int. 2688 26892008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2690 2691 * configure: Regenerate. 2692 * include/Makefile.in: Regenerate. 2693 * testsuite/Makefile.in: Regenerate. 2694 26952008-06-07 Joseph Myers <joseph@codesourcery.com> 2696 2697 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*, 2698 powerpc-*-beos*): Remove. 2699 * configure: Regenerate. 2700 27012008-05-09 Julian Brown <julian@codesourcery.com> 2702 2703 * Makefile.am (LTLDFLAGS): New. 2704 (libffi_la_LDFLAGS): Use above. 2705 * Makefile.in: Regenerate. 2706 27072008-04-18 Paolo Bonzini <bonzini@gnu.org> 2708 2709 PR bootstrap/35457 2710 * aclocal.m4: Regenerate. 2711 * configure: Regenerate. 2712 27132008-03-26 Kaz Kojima <kkojima@gcc.gnu.org> 2714 2715 * src/sh/sysv.S: Add .note.GNU-stack on Linux. 2716 * src/sh64/sysv.S: Likewise. 2717 27182008-03-26 Daniel Jacobowitz <dan@debian.org> 2719 2720 * src/arm/sysv.S: Fix ARM comment marker. 2721 27222008-03-26 Jakub Jelinek <jakub@redhat.com> 2723 2724 * src/alpha/osf.S: Add .note.GNU-stack on Linux. 2725 * src/s390/sysv.S: Likewise. 2726 * src/powerpc/ppc_closure.S: Likewise. 2727 * src/powerpc/sysv.S: Likewise. 2728 * src/x86/unix64.S: Likewise. 2729 * src/x86/sysv.S: Likewise. 2730 * src/sparc/v8.S: Likewise. 2731 * src/sparc/v9.S: Likewise. 2732 * src/m68k/sysv.S: Likewise. 2733 * src/arm/sysv.S: Likewise. 2734 27352008-03-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2736 2737 * aclocal.m4: Regenerate. 2738 * configure: Likewise. 2739 * Makefile.in: Likewise. 2740 * include/Makefile.in: Likewise. 2741 * testsuite/Makefile.in: Likewise. 2742 27432008-02-12 Bjoern Koenig <bkoenig@alpha-tierchen.de> 2744 Andreas Tobler <a.tobler@schweiz.org> 2745 2746 * configure.ac: Add amd64-*-freebsd* target. 2747 * configure: Regenerate. 2748 27492008-01-30 H.J. Lu <hongjiu.lu@intel.com> 2750 2751 PR libffi/34612 2752 * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when 2753 returning struct. 2754 2755 * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer" 2756 tests. 2757 27582008-01-24 David Edelsohn <edelsohn@gnu.org> 2759 2760 * configure: Regenerate. 2761 27622008-01-06 Andreas Tobler <a.tobler@schweiz.org> 2763 2764 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko. 2765 27662008-01-05 Andreas Tobler <a.tobler@schweiz.org> 2767 2768 PR testsuite/32843 2769 * src/x86/ffi.c (ffi_prep_cif_machdep): Add code for 2770 signed/unsigned int8/16 for X86_DARWIN. 2771 Updated copyright info. 2772 Handle one and two byte structs with special cif->flags. 2773 * src/x86/ffitarget.h: Add special types for one and two byte structs. 2774 Updated copyright info. 2775 * src/x86/darwin.S (ffi_call_SYSV): Rewrite to use a jump table like 2776 sysv.S 2777 Remove code to pop args from the stack after call. 2778 Special-case signed/unsigned for int8/16, one and two byte structs. 2779 (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8, 2780 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32, 2781 FFI_TYPE_SINT32. 2782 Updated copyright info. 2783 27842007-12-08 David Daney <ddaney@avtrex.com> 2785 2786 * src/mips/n32.S (ffi_call_N32): Replace dadd with ADDU, dsub with 2787 SUBU, add with ADDU and use smaller code sequences. 2788 27892007-12-07 David Daney <ddaney@avtrex.com> 2790 2791 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return 2792 type. 2793 27942007-12-06 David Daney <ddaney@avtrex.com> 2795 2796 * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already 2797 defined. 2798 (ffi_java_raw): New typedef. 2799 (ffi_java_raw_call, ffi_java_ptrarray_to_raw, 2800 ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to 2801 ffi_java_raw. 2802 (ffi_java_raw_closure) : Same. 2803 (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change 2804 parameter types. 2805 * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with 2806 FFI_SIZEOF_JAVA_RAW. 2807 (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw. 2808 Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use 2809 sizeof(ffi_java_raw) for alignment calculations. 2810 (ffi_java_ptrarray_to_raw): Same. 2811 (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER 2812 if FFI_SIZEOF_JAVA_RAW == 4. 2813 (ffi_java_raw_to_rvalue): Same. 2814 (ffi_java_raw_call): Change type of raw to ffi_java_raw. 2815 (ffi_java_translate_args): Same. 2816 (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change 2817 parameter types. 2818 * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI. 2819 28202007-12-06 David Daney <ddaney@avtrex.com> 2821 2822 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on 2823 pointer values. 2824 28252007-12-01 Andreas Tobler <a.tobler@schweiz.org> 2826 2827 PR libffi/31937 2828 * src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT. 2829 Add local FFI_TYPE_UINT128 to handle soft-float long-double-128. 2830 * src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and 2831 set the NUM_FPR_ARG_REGISTERS according to. 2832 Add support for potential soft-float support under hard-float 2833 architecture. 2834 (ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of 2835 FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according 2836 to the FFI_LINUX_SOFT_FLOAT ABI. 2837 (ffi_prep_cif_machdep): Likewise. 2838 (ffi_closure_helper_SYSV): Likewise. 2839 * src/powerpc/ppc_closure.S: Make sure not to store float/double 2840 on archs where __NO_FPRS__ is true. 2841 Add FFI_TYPE_UINT128 support. 2842 * src/powerpc/sysv.S: Add support for soft-float long-double-128. 2843 Adjust copyright notice. 2844 28452007-11-25 Andreas Tobler <a.tobler@schweiz.org> 2846 2847 * src/closures.c: Move defintion of MAYBE_UNUSED from here to ... 2848 * include/ffi_common.h: ... here. 2849 Update copyright. 2850 28512007-11-17 Andreas Tobler <a.tobler@schweiz.org> 2852 2853 * src/powerpc/sysv.S: Load correct cr to compare if we have long double. 2854 * src/powerpc/linux64.S: Likewise. 2855 * src/powerpc/ffi.c: Add a comment to show which part goes into cr6. 2856 * testsuite/libffi.call/return_ldl.c: New test. 2857 28582007-09-04 <aph@redhat.com> 2859 2860 * src/arm/sysv.S (UNWIND): New. 2861 (Whole file): Conditionally compile unwinder directives. 2862 * src/arm/sysv.S: Add unwinder directives. 2863 2864 * src/arm/ffi.c (ffi_prep_args): Align structs by at least 4 bytes. 2865 Only treat r0 as a struct address if we're actually returning a 2866 struct by address. 2867 Only copy the bytes that are actually within a struct. 2868 (ffi_prep_cif_machdep): A Composite Type not larger than 4 bytes 2869 is returned in r0, not passed by address. 2870 (ffi_call): Allocate a word-sized temporary for the case where 2871 a composite is returned in r0. 2872 (ffi_prep_incoming_args_SYSV): Align as necessary. 2873 28742007-08-05 Steven Newbury <s_j_newbury@yahoo.co.uk> 2875 2876 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Use __clear_cache instead of 2877 directly using the sys_cacheflush syscall. 2878 28792007-07-27 Andrew Haley <aph@redhat.com> 2880 2881 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float. 2882 28832007-09-03 Maciej W. Rozycki <macro@linux-mips.org> 2884 2885 * Makefile.am: Unify MIPS_IRIX and MIPS_LINUX into MIPS. 2886 * configure.ac: Likewise. 2887 * Makefile.in: Regenerate. 2888 * include/Makefile.in: Likewise. 2889 * testsuite/Makefile.in: Likewise. 2890 * configure: Likewise. 2891 28922007-08-24 David Daney <ddaney@avtrex.com> 2893 2894 * testsuite/libffi.call/return_sl.c: New test. 2895 28962007-08-10 David Daney <ddaney@avtrex.com> 2897 2898 * testsuite/libffi.call/cls_multi_ushort.c, 2899 testsuite/libffi.call/cls_align_uint16.c, 2900 testsuite/libffi.call/nested_struct1.c, 2901 testsuite/libffi.call/nested_struct3.c, 2902 testsuite/libffi.call/cls_7_1_byte.c, 2903 testsuite/libffi.call/nested_struct5.c, 2904 testsuite/libffi.call/cls_double.c, 2905 testsuite/libffi.call/nested_struct7.c, 2906 testsuite/libffi.call/cls_sint.c, 2907 testsuite/libffi.call/nested_struct9.c, 2908 testsuite/libffi.call/cls_20byte1.c, 2909 testsuite/libffi.call/cls_multi_sshortchar.c, 2910 testsuite/libffi.call/cls_align_sint64.c, 2911 testsuite/libffi.call/cls_3byte2.c, 2912 testsuite/libffi.call/cls_multi_schar.c, 2913 testsuite/libffi.call/cls_multi_uchar.c, 2914 testsuite/libffi.call/cls_19byte.c, 2915 testsuite/libffi.call/cls_9byte1.c, 2916 testsuite/libffi.call/cls_align_float.c, 2917 testsuite/libffi.call/closure_fn1.c, 2918 testsuite/libffi.call/problem1.c, 2919 testsuite/libffi.call/closure_fn3.c, 2920 testsuite/libffi.call/cls_sshort.c, 2921 testsuite/libffi.call/closure_fn5.c, 2922 testsuite/libffi.call/cls_align_double.c, 2923 testsuite/libffi.call/nested_struct.c, 2924 testsuite/libffi.call/cls_2byte.c, 2925 testsuite/libffi.call/nested_struct10.c, 2926 testsuite/libffi.call/cls_4byte.c, 2927 testsuite/libffi.call/cls_6byte.c, 2928 testsuite/libffi.call/cls_8byte.c, 2929 testsuite/libffi.call/cls_multi_sshort.c, 2930 testsuite/libffi.call/cls_align_sint16.c, 2931 testsuite/libffi.call/cls_align_uint32.c, 2932 testsuite/libffi.call/cls_20byte.c, 2933 testsuite/libffi.call/cls_float.c, 2934 testsuite/libffi.call/nested_struct2.c, 2935 testsuite/libffi.call/cls_5_1_byte.c, 2936 testsuite/libffi.call/nested_struct4.c, 2937 testsuite/libffi.call/cls_24byte.c, 2938 testsuite/libffi.call/nested_struct6.c, 2939 testsuite/libffi.call/cls_64byte.c, 2940 testsuite/libffi.call/nested_struct8.c, 2941 testsuite/libffi.call/cls_uint.c, 2942 testsuite/libffi.call/cls_multi_ushortchar.c, 2943 testsuite/libffi.call/cls_schar.c, 2944 testsuite/libffi.call/cls_uchar.c, 2945 testsuite/libffi.call/cls_align_uint64.c, 2946 testsuite/libffi.call/cls_ulonglong.c, 2947 testsuite/libffi.call/cls_align_longdouble.c, 2948 testsuite/libffi.call/cls_1_1byte.c, 2949 testsuite/libffi.call/cls_12byte.c, 2950 testsuite/libffi.call/cls_3_1byte.c, 2951 testsuite/libffi.call/cls_3byte1.c, 2952 testsuite/libffi.call/cls_4_1byte.c, 2953 testsuite/libffi.call/cls_6_1_byte.c, 2954 testsuite/libffi.call/cls_16byte.c, 2955 testsuite/libffi.call/cls_18byte.c, 2956 testsuite/libffi.call/closure_fn0.c, 2957 testsuite/libffi.call/cls_9byte2.c, 2958 testsuite/libffi.call/closure_fn2.c, 2959 testsuite/libffi.call/closure_fn4.c, 2960 testsuite/libffi.call/cls_ushort.c, 2961 testsuite/libffi.call/closure_fn6.c, 2962 testsuite/libffi.call/cls_5byte.c, 2963 testsuite/libffi.call/cls_align_pointer.c, 2964 testsuite/libffi.call/cls_7byte.c, 2965 testsuite/libffi.call/cls_align_sint32.c, 2966 testsuite/libffi.special/unwindtest_ffi_call.cc, 2967 testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*. 2968 29692007-08-10 David Daney <ddaney@avtrex.com> 2970 2971 PR libffi/28313 2972 * configure.ac: Don't treat mips64 as a special case. 2973 * Makefile.am (nodist_libffi_la_SOURCES): Add n32.S. 2974 * configure: Regenerate 2975 * Makefile.in: Ditto. 2976 * fficonfig.h.in: Ditto. 2977 * src/mips/ffitarget.h (REG_L, REG_S, SUBU, ADDU, SRL, LI): Indent. 2978 (LA, EH_FRAME_ALIGN, FDE_ADDR_BYTES): New preprocessor macros. 2979 (FFI_DEFAULT_ABI): Set for n64 case. 2980 (FFI_CLOSURES, FFI_TRAMPOLINE_SIZE): Define for n32 and n64 cases. 2981 * src/mips/n32.S (ffi_call_N32): Add debug macros and labels for FDE. 2982 (ffi_closure_N32): New function. 2983 (.eh_frame): New section 2984 * src/mips/o32.S: Clean up comments. 2985 (ffi_closure_O32): Pass ffi_closure parameter in $12. 2986 * src/mips/ffi.c: Use FFI_MIPS_N32 instead of 2987 _MIPS_SIM == _ABIN32 throughout. 2988 (FFI_MIPS_STOP_HERE): New, use in place of 2989 ffi_stop_here. 2990 (ffi_prep_args): Use unsigned long to hold pointer values. Rewrite 2991 to support n32/n64 ABIs. 2992 (calc_n32_struct_flags): Rewrite. 2993 (calc_n32_return_struct_flags): Remove unused variable. Reverse 2994 position of flag bits. 2995 (ffi_prep_cif_machdep): Rewrite n32 portion. 2996 (ffi_call): Enable for n64. Add special handling for small structure 2997 return values. 2998 (ffi_prep_closure_loc): Add n32 and n64 support. 2999 (ffi_closure_mips_inner_O32): Add cast to silence warning. 3000 (copy_struct_N32, ffi_closure_mips_inner_N32): New functions. 3001 30022007-08-08 David Daney <ddaney@avtrex.com> 3003 3004 * testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition. 3005 * testsuite/libffi.call/cls_align_uint16.c (main): Use correct type 3006 specifiers. 3007 * testsuite/libffi.call/nested_struct1.c (main): Ditto. 3008 * testsuite/libffi.call/cls_sint.c (main): Ditto. 3009 * testsuite/libffi.call/nested_struct9.c (main): Ditto. 3010 * testsuite/libffi.call/cls_20byte1.c (main): Ditto. 3011 * testsuite/libffi.call/cls_9byte1.c (main): Ditto. 3012 * testsuite/libffi.call/closure_fn1.c (main): Ditto. 3013 * testsuite/libffi.call/closure_fn3.c (main): Ditto. 3014 * testsuite/libffi.call/return_dbl2.c (main): Ditto. 3015 * testsuite/libffi.call/cls_sshort.c (main): Ditto. 3016 * testsuite/libffi.call/return_fl3.c (main): Ditto. 3017 * testsuite/libffi.call/closure_fn5.c (main): Ditto. 3018 * testsuite/libffi.call/nested_struct.c (main): Ditto. 3019 * testsuite/libffi.call/nested_struct10.c (main): Ditto. 3020 * testsuite/libffi.call/return_ll1.c (main): Ditto. 3021 * testsuite/libffi.call/cls_8byte.c (main): Ditto. 3022 * testsuite/libffi.call/cls_align_uint32.c (main): Ditto. 3023 * testsuite/libffi.call/cls_align_sint16.c (main): Ditto. 3024 * testsuite/libffi.call/cls_20byte.c (main): Ditto. 3025 * testsuite/libffi.call/nested_struct2.c (main): Ditto. 3026 * testsuite/libffi.call/cls_24byte.c (main): Ditto. 3027 * testsuite/libffi.call/nested_struct6.c (main): Ditto. 3028 * testsuite/libffi.call/cls_uint.c (main): Ditto. 3029 * testsuite/libffi.call/cls_12byte.c (main): Ditto. 3030 * testsuite/libffi.call/cls_16byte.c (main): Ditto. 3031 * testsuite/libffi.call/closure_fn0.c (main): Ditto. 3032 * testsuite/libffi.call/cls_9byte2.c (main): Ditto. 3033 * testsuite/libffi.call/closure_fn2.c (main): Ditto. 3034 * testsuite/libffi.call/return_dbl1.c (main): Ditto. 3035 * testsuite/libffi.call/closure_fn4.c (main): Ditto. 3036 * testsuite/libffi.call/closure_fn6.c (main): Ditto. 3037 * testsuite/libffi.call/cls_align_sint32.c (main): Ditto. 3038 30392007-08-07 Andrew Haley <aph@redhat.com> 3040 3041 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous 3042 checkin. 3043 30442007-08-06 Andrew Haley <aph@redhat.com> 3045 3046 PR testsuite/32843 3047 * src/x86/sysv.S (ffi_closure_raw_SYSV): Handle FFI_TYPE_UINT8, 3048 FFI_TYPE_SINT8, FFI_TYPE_UINT16, FFI_TYPE_SINT16, FFI_TYPE_UINT32, 3049 FFI_TYPE_SINT32. 3050 30512007-08-02 David Daney <ddaney@avtrex.com> 3052 3053 * testsuite/libffi.call/return_ul.c (main): Define return type as 3054 ffi_arg. Use proper printf conversion specifier. 3055 30562007-07-30 Andrew Haley <aph@redhat.com> 3057 3058 PR testsuite/32843 3059 * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for 3060 signed/unsigned int8/16. 3061 * src/x86/sysv.S (ffi_call_SYSV): Rewrite to: 3062 Use a jump table. 3063 Remove code to pop args from the stack after call. 3064 Special-case signed/unsigned int8/16. 3065 * testsuite/libffi.call/return_sc.c (main): Revert. 3066 30672007-07-26 Richard Guenther <rguenther@suse.de> 3068 3069 PR testsuite/32843 3070 * testsuite/libffi.call/return_sc.c (main): Verify call 3071 result as signed char, not ffi_arg. 3072 30732007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 3074 3075 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64. 3076 * configure: Regenerate. 3077 30782007-07-11 David Daney <ddaney@avtrex.com> 3079 3080 * src/mips/ffi.c: Don't include sys/cachectl.h. 3081 (ffi_prep_closure_loc): Use __builtin___clear_cache() instead of 3082 cacheflush(). 3083 30842007-05-18 Aurelien Jarno <aurelien@aurel32.net> 3085 3086 * src/arm/ffi.c (ffi_prep_closure_loc): Renamed and ajusted 3087 from (ffi_prep_closure): ... this. 3088 (FFI_INIT_TRAMPOLINE): Adjust. 3089 30902005-12-31 Phil Blundell <pb@reciva.com> 3091 3092 * src/arm/ffi.c (ffi_prep_incoming_args_SYSV, 3093 ffi_closure_SYSV_inner, ffi_prep_closure): New, add closure support. 3094 * src/arm/sysv.S(ffi_closure_SYSV): Likewise. 3095 * src/arm/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise. 3096 (FFI_CLOSURES): Enable closure support. 3097 30982007-07-03 Andrew Haley <aph@hedges.billgatliff.com> 3099 3100 * testsuite/libffi.call/cls_multi_ushort.c, 3101 testsuite/libffi.call/cls_align_uint16.c, 3102 testsuite/libffi.call/nested_struct1.c, 3103 testsuite/libffi.call/nested_struct3.c, 3104 testsuite/libffi.call/cls_7_1_byte.c, 3105 testsuite/libffi.call/cls_double.c, 3106 testsuite/libffi.call/nested_struct5.c, 3107 testsuite/libffi.call/nested_struct7.c, 3108 testsuite/libffi.call/cls_sint.c, 3109 testsuite/libffi.call/nested_struct9.c, 3110 testsuite/libffi.call/cls_20byte1.c, 3111 testsuite/libffi.call/cls_multi_sshortchar.c, 3112 testsuite/libffi.call/cls_align_sint64.c, 3113 testsuite/libffi.call/cls_3byte2.c, 3114 testsuite/libffi.call/cls_multi_schar.c, 3115 testsuite/libffi.call/cls_multi_uchar.c, 3116 testsuite/libffi.call/cls_19byte.c, 3117 testsuite/libffi.call/cls_9byte1.c, 3118 testsuite/libffi.call/cls_align_float.c, 3119 testsuite/libffi.call/closure_fn1.c, 3120 testsuite/libffi.call/problem1.c, 3121 testsuite/libffi.call/closure_fn3.c, 3122 testsuite/libffi.call/cls_sshort.c, 3123 testsuite/libffi.call/closure_fn5.c, 3124 testsuite/libffi.call/cls_align_double.c, 3125 testsuite/libffi.call/cls_2byte.c, 3126 testsuite/libffi.call/nested_struct.c, 3127 testsuite/libffi.call/nested_struct10.c, 3128 testsuite/libffi.call/cls_4byte.c, 3129 testsuite/libffi.call/cls_6byte.c, 3130 testsuite/libffi.call/cls_8byte.c, 3131 testsuite/libffi.call/cls_multi_sshort.c, 3132 testsuite/libffi.call/cls_align_uint32.c, 3133 testsuite/libffi.call/cls_align_sint16.c, 3134 testsuite/libffi.call/cls_float.c, 3135 testsuite/libffi.call/cls_20byte.c, 3136 testsuite/libffi.call/cls_5_1_byte.c, 3137 testsuite/libffi.call/nested_struct2.c, 3138 testsuite/libffi.call/cls_24byte.c, 3139 testsuite/libffi.call/nested_struct4.c, 3140 testsuite/libffi.call/nested_struct6.c, 3141 testsuite/libffi.call/cls_64byte.c, 3142 testsuite/libffi.call/nested_struct8.c, 3143 testsuite/libffi.call/cls_uint.c, 3144 testsuite/libffi.call/cls_multi_ushortchar.c, 3145 testsuite/libffi.call/cls_schar.c, 3146 testsuite/libffi.call/cls_uchar.c, 3147 testsuite/libffi.call/cls_align_uint64.c, 3148 testsuite/libffi.call/cls_ulonglong.c, 3149 testsuite/libffi.call/cls_align_longdouble.c, 3150 testsuite/libffi.call/cls_1_1byte.c, 3151 testsuite/libffi.call/cls_12byte.c, 3152 testsuite/libffi.call/cls_3_1byte.c, 3153 testsuite/libffi.call/cls_3byte1.c, 3154 testsuite/libffi.call/cls_4_1byte.c, 3155 testsuite/libffi.call/cls_6_1_byte.c, 3156 testsuite/libffi.call/cls_16byte.c, 3157 testsuite/libffi.call/cls_18byte.c, 3158 testsuite/libffi.call/closure_fn0.c, 3159 testsuite/libffi.call/cls_9byte2.c, 3160 testsuite/libffi.call/closure_fn2.c, 3161 testsuite/libffi.call/closure_fn4.c, 3162 testsuite/libffi.call/cls_ushort.c, 3163 testsuite/libffi.call/closure_fn6.c, 3164 testsuite/libffi.call/cls_5byte.c, 3165 testsuite/libffi.call/cls_align_pointer.c, 3166 testsuite/libffi.call/cls_7byte.c, 3167 testsuite/libffi.call/cls_align_sint32.c, 3168 testsuite/libffi.special/unwindtest_ffi_call.cc, 3169 testsuite/libffi.special/unwindtest.cc: Enable for ARM. 3170 31712007-07-05 H.J. Lu <hongjiu.lu@intel.com> 3172 3173 * aclocal.m4: Regenerated. 3174 31752007-06-02 Paolo Bonzini <bonzini@gnu.org> 3176 3177 * configure: Regenerate. 3178 31792007-05-23 Steve Ellcey <sje@cup.hp.com> 3180 3181 * Makefile.in: Regenerate. 3182 * configure: Regenerate. 3183 * aclocal.m4: Regenerate. 3184 * include/Makefile.in: Regenerate. 3185 * testsuite/Makefile.in: Regenerate. 3186 31872007-05-10 Roman Zippel <zippel@linux-m68k.org> 3188 3189 * src/m68k/ffi.c (ffi_prep_incoming_args_SYSV, 3190 ffi_closure_SYSV_inner,ffi_prep_closure): New, add closure support. 3191 * src/m68k/sysv.S(ffi_closure_SYSV,ffi_closure_struct_SYSV): Likewise. 3192 * src/m68k/ffitarget.h (FFI_TRAMPOLINE_SIZE): Likewise. 3193 (FFI_CLOSURES): Enable closure support. 3194 31952007-05-10 Roman Zippel <zippel@linux-m68k.org> 3196 3197 * configure.ac (HAVE_AS_CFI_PSEUDO_OP): New test. 3198 * configure: Regenerate. 3199 * fficonfig.h.in: Regenerate. 3200 * src/m68k/sysv.S (CFI_STARTPROC,CFI_ENDPROC, 3201 CFI_OFFSET,CFI_DEF_CFA): New macros. 3202 (ffi_call_SYSV): Add callframe annotation. 3203 32042007-05-10 Roman Zippel <zippel@linux-m68k.org> 3205 3206 * src/m68k/ffi.c (ffi_prep_args,ffi_prep_cif_machdep): Fix 3207 numerous test suite failures. 3208 * src/m68k/sysv.S (ffi_call_SYSV): Likewise. 3209 32102007-04-11 Paolo Bonzini <bonzini@gnu.org> 3211 3212 * Makefile.am (EXTRA_DIST): Bring up to date. 3213 * Makefile.in: Regenerate. 3214 * src/frv/eabi.S: Remove RCS keyword. 3215 32162007-04-06 Richard Henderson <rth@redhat.com> 3217 3218 * configure.ac: Tidy target case. 3219 (HAVE_LONG_DOUBLE): Allow the target to override. 3220 * configure: Regenerate. 3221 * include/ffi.h.in: Don't define ffi_type_foo if 3222 LIBFFI_HIDE_BASIC_TYPES is defined. 3223 (ffi_type_longdouble): If not HAVE_LONG_DOUBLE, define 3224 to ffi_type_double. 3225 * types.c (LIBFFI_HIDE_BASIC_TYPES): Define. 3226 (FFI_TYPEDEF, ffi_type_void): Mark the data const. 3227 (ffi_type_longdouble): Special case for Alpha. Don't define 3228 if long double == double. 3229 3230 * src/alpha/ffi.c (FFI_TYPE_LONGDOUBLE): Assert unique value. 3231 (ffi_prep_cif_machdep): Handle it as the 128-bit type. 3232 (ffi_call, ffi_closure_osf_inner): Likewise. 3233 (ffi_closure_osf_inner): Likewise. Mark hidden. 3234 (ffi_call_osf, ffi_closure_osf): Mark hidden. 3235 * src/alpha/ffitarget.h (FFI_LAST_ABI): Tidy definition. 3236 * src/alpha/osf.S (ffi_call_osf, ffi_closure_osf): Mark hidden. 3237 (load_table): Handle 128-bit long double. 3238 3239 * testsuite/libffi.call/float4.c: Add -mieee for alpha. 3240 32412007-04-06 Tom Tromey <tromey@redhat.com> 3242 3243 PR libffi/31491: 3244 * README: Fixed bug in example. 3245 32462007-04-03 Jakub Jelinek <jakub@redhat.com> 3247 3248 * src/closures.c: Include sys/statfs.h. 3249 (_GNU_SOURCE): Define on Linux. 3250 (FFI_MMAP_EXEC_SELINUX): Define. 3251 (selinux_enabled): New variable. 3252 (selinux_enabled_check): New function. 3253 (is_selinux_enabled): Define. 3254 (dlmmap): Use it. 3255 32562007-03-24 Uros Bizjak <ubizjak@gmail.com> 3257 3258 * testsuite/libffi.call/return_fl2.c (return_fl): Mark as static. 3259 Use 'volatile float sum' to create sum of floats to avoid false 3260 negative due to excess precision on ix86 targets. 3261 (main): Ditto. 3262 32632007-03-08 Alexandre Oliva <aoliva@redhat.com> 3264 3265 * src/powerpc/ffi.c (flush_icache): Fix left-over from previous 3266 patch. 3267 (ffi_prep_closure_loc): Remove unneeded casts. Add needed ones. 3268 32692007-03-07 Alexandre Oliva <aoliva@redhat.com> 3270 3271 * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New. 3272 (ffi_prep_closure_loc): New. 3273 (ffi_prep_raw_closure_loc): New. 3274 (ffi_prep_java_raw_closure_loc): New. 3275 * src/closures.c: New file. 3276 * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment): 3277 Replace sflags with exec_offset. 3278 [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset, 3279 sub_segment_exec_offset): New macros. 3280 (get_segment_flags, set_segment_flags, check_segment_merge): New 3281 macros. 3282 (is_mmapped_segment, is_extern_segment): Use get_segment_flags. 3283 (add_segment, sys_alloc, create_mspace, create_mspace_with_base, 3284 destroy_mspace): Use new macros. 3285 (sys_alloc): Silence warning. 3286 * Makefile.am (libffi_la_SOURCES): Add src/closures.c. 3287 * Makefile.in: Rebuilt. 3288 * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in 3289 terms of ffi_prep_closure_loc. 3290 * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted 3291 from... 3292 (ffi_prep_raw_closure): ... this. Re-implement in terms of the 3293 renamed version. 3294 * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and 3295 adjusted from... 3296 (ffi_prep_java_raw_closure): ... this. Re-implement in terms of 3297 the renamed version. 3298 * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from 3299 (ffi_prep_closure): ... this. 3300 * src/pa/ffi.c: Likewise. 3301 * src/cris/ffi.c: Likewise. Adjust. 3302 * src/frv/ffi.c: Likewise. 3303 * src/ia64/ffi.c: Likewise. 3304 * src/mips/ffi.c: Likewise. 3305 * src/powerpc/ffi_darwin.c: Likewise. 3306 * src/s390/ffi.c: Likewise. 3307 * src/sh/ffi.c: Likewise. 3308 * src/sh64/ffi.c: Likewise. 3309 * src/sparc/ffi.c: Likewise. 3310 * src/x86/ffi64.c: Likewise. 3311 * src/x86/ffi.c: Likewise. 3312 (FFI_INIT_TRAMPOLINE): Adjust. 3313 (ffi_prep_raw_closure_loc): Renamed and adjusted from... 3314 (ffi_prep_raw_closure): ... this. 3315 * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from 3316 (ffi_prep_closure): ... this. 3317 (flush_icache): Adjust. 3318 33192007-03-07 Alexandre Oliva <aoliva@redhat.com> 3320 3321 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug 3322 Lea's malloc. 3323 33242007-03-01 Brooks Moses <brooks.moses@codesourcery.com> 3325 3326 * Makefile.am: Add dummy install-pdf target. 3327 * Makefile.in: Regenerate 3328 33292007-02-13 Andreas Krebbel <krebbel1@de.ibm.com> 3330 3331 * src/s390/ffi.c (ffi_prep_args, ffi_prep_cif_machdep, 3332 ffi_closure_helper_SYSV): Add long double handling. 3333 33342007-02-02 Jakub Jelinek <jakub@redhat.com> 3335 3336 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2 3337 immediately after bctrl instruction. 3338 33392007-01-18 Alexandre Oliva <aoliva@redhat.com> 3340 3341 * Makefile.am (all-recursive, install-recursive, 3342 mostlyclean-recursive, clean-recursive, distclean-recursive, 3343 maintainer-clean-recursive): Add missing targets. 3344 * Makefile.in: Rebuilt. 3345 33462006-12-14 Andreas Tobler <a.tobler@schweiz.org> 3347 3348 * configure.ac: Add TARGET for x86_64-*-darwin*. 3349 * Makefile.am (nodist_libffi_la_SOURCES): Add rules for 64-bit sources 3350 for X86_DARWIN. 3351 * src/x86/ffitarget.h: Set trampoline size for x86_64-*-darwin*. 3352 * src/x86/darwin64.S: New file for x86_64-*-darwin* support. 3353 * configure: Regenerate. 3354 * Makefile.in: Regenerate. 3355 * include/Makefile.in: Regenerate. 3356 * testsuite/Makefile.in: Regenerate. 3357 * testsuite/libffi.special/unwindtest_ffi_call.cc: New test case for 3358 ffi_call only. 3359 33602006-12-13 Andreas Tobler <a.tobler@schweiz.org> 3361 3362 * aclocal.m4: Regenerate with aclocal -I .. as written in the 3363 Makefile.am. 3364 33652006-10-31 Geoffrey Keating <geoffk@apple.com> 3366 3367 * src/powerpc/ffi_darwin.c (darwin_adjust_aggregate_sizes): New. 3368 (ffi_prep_cif_machdep): Call darwin_adjust_aggregate_sizes for 3369 Darwin. 3370 * testsuite/libffi.call/nested_struct4.c: Remove Darwin XFAIL. 3371 * testsuite/libffi.call/nested_struct6.c: Remove Darwin XFAIL. 3372 33732006-10-10 Paolo Bonzini <bonzini@gnu.org> 3374 Sandro Tolaini <tolaini@libero.it> 3375 3376 * configure.ac [i*86-*-darwin*]: Set X86_DARWIN symbol and 3377 conditional. 3378 * configure: Regenerated. 3379 * Makefile.am (nodist_libffi_la_SOURCES) [X86_DARWIN]: New case. 3380 (EXTRA_DIST): Add src/x86/darwin.S. 3381 * Makefile.in: Regenerated. 3382 * include/Makefile.in: Regenerated. 3383 * testsuite/Makefile.in: Regenerated. 3384 3385 * src/x86/ffi.c (ffi_prep_cif_machdep) [X86_DARWIN]: Treat like 3386 X86_WIN32, and additionally align stack to 16 bytes. 3387 * src/x86/darwin.S: New, based on sysv.S. 3388 * src/prep_cif.c (ffi_prep_cif) [X86_DARWIN]: Align > 8-byte structs. 3389 33902006-09-12 David Daney <ddaney@avtrex.com> 3391 3392 PR libffi/23935 3393 * include/Makefile.am: Install both ffi.h and ffitarget.h in 3394 $(libdir)/gcc/$(target_alias)/$(gcc_version)/include. 3395 * aclocal.m4: Regenerated for automake 1.9.6. 3396 * Makefile.in: Regenerated. 3397 * include/Makefile.in: Regenerated. 3398 * testsuite/Makefile.in: Regenerated. 3399 34002006-08-17 Andreas Tobler <a.tobler@schweiz.ch> 3401 3402 * include/ffi_common.h (struct): Revert accidental commit. 3403 34042006-08-15 Andreas Tobler <a.tobler@schweiz.ch> 3405 3406 * include/ffi_common.h: Remove lint directives. 3407 * include/ffi.h.in: Likewise. 3408 34092006-07-25 Torsten Schoenfeld <kaffeetisch@gmx.de> 3410 3411 * include/ffi.h.in (ffi_type_ulong, ffi_type_slong): Define correctly 3412 for 32-bit architectures. 3413 * testsuite/libffi.call/return_ul.c: New test case. 3414 34152006-07-19 David Daney <ddaney@avtrex.com> 3416 3417 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips, 3418 xfail remains for mips64. 3419 34202006-05-23 Carlos O'Donell <carlos@codesourcery.com> 3421 3422 * Makefile.am: Add install-html target. Add install-html to .PHONY 3423 * Makefile.in: Regenerate. 3424 * aclocal.m4: Regenerate. 3425 * include/Makefile.in: Regenerate. 3426 * testsuite/Makefile.in: Regenerate. 3427 34282006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 3429 3430 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from 3431 stack slot. 3432 34332006-04-22 Andreas Tobler <a.tobler@schweiz.ch> 3434 3435 * README: Remove notice about 'Crazy Comments'. 3436 * src/debug.c: Remove lint directives. Cleanup white spaces. 3437 * src/java_raw_api.c: Likewise. 3438 * src/prep_cif.c: Likewise. 3439 * src/raw_api.c: Likewise. 3440 * src/ffitest.c: Delete. No longer needed, all test cases migrated 3441 to the testsuite. 3442 * src/arm/ffi.c: Remove lint directives. 3443 * src/m32r/ffi.c: Likewise. 3444 * src/pa/ffi.c: Likewise. 3445 * src/powerpc/ffi.c: Likewise. 3446 * src/powerpc/ffi_darwin.c: Likewise. 3447 * src/sh/ffi.c: Likewise. 3448 * src/sh64/ffi.c: Likewise. 3449 * src/x86/ffi.c: Likewise. 3450 * testsuite/libffi.call/float2.c: Likewise. 3451 * testsuite/libffi.call/promotion.c: Likewise. 3452 * testsuite/libffi.call/struct1.c: Likewise. 3453 34542006-04-13 Andreas Tobler <a.tobler@schweiz.ch> 3455 3456 * src/pa/hpux32.S: Correct unwind offset calculation for 3457 ffi_closure_pa32. 3458 * src/pa/linux.S: Likewise. 3459 34602006-04-12 James E Wilson <wilson@specifix.com> 3461 3462 PR libgcj/26483 3463 * src/ia64/ffi.c (stf_spill, ldf_fill): Rewrite as macros. 3464 (hfa_type_load): Call stf_spill. 3465 (hfa_type_store): Call ldf_fill. 3466 (ffi_call): Adjust calls to above routines. Add local temps for 3467 macro result. 3468 34692006-04-10 Matthias Klose <doko@debian.org> 3470 3471 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib 3472 directory names containing underscores. 3473 34742006-04-07 James E Wilson <wilson@specifix.com> 3475 3476 * testsuite/libffi.call/float4.c: New testcase. 3477 34782006-04-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 3479 Andreas Tobler <a.tobler@schweiz.ch> 3480 3481 * Makefile.am: Add PA_HPUX port. 3482 * Makefile.in: Regenerate. 3483 * include/Makefile.in: Likewise. 3484 * testsuite/Makefile.in: Likewise. 3485 * configure.ac: Add PA_HPUX rules. 3486 * configure: Regenerate. 3487 * src/pa/ffitarget.h: Rename linux target to PA_LINUX. 3488 Add PA_HPUX and PA64_HPUX. 3489 Rename FFI_LINUX ABI to FFI_PA32 ABI. 3490 (FFI_TRAMPOLINE_SIZE): Define for 32-bit HP-UX targets. 3491 (FFI_TYPE_SMALL_STRUCT2): Define. 3492 (FFI_TYPE_SMALL_STRUCT4): Likewise. 3493 (FFI_TYPE_SMALL_STRUCT8): Likewise. 3494 (FFI_TYPE_SMALL_STRUCT3): Redefine. 3495 (FFI_TYPE_SMALL_STRUCT5): Likewise. 3496 (FFI_TYPE_SMALL_STRUCT6): Likewise. 3497 (FFI_TYPE_SMALL_STRUCT7): Likewise. 3498 * src/pa/ffi.c (ROUND_DOWN): Delete. 3499 (fldw, fstw, fldd, fstd): Use '__asm__'. 3500 (ffi_struct_type): Add support for FFI_TYPE_SMALL_STRUCT2, 3501 FFI_TYPE_SMALL_STRUCT4 and FFI_TYPE_SMALL_STRUCT8. 3502 (ffi_prep_args_LINUX): Rename to ffi_prep_args_pa32. Update comment. 3503 Simplify incrementing of stack slot variable. Change type of local 3504 'n' to unsigned int. 3505 (ffi_size_stack_LINUX): Rename to ffi_size_stack_pa32. Handle long 3506 double on PA_HPUX. 3507 (ffi_prep_cif_machdep): Likewise. 3508 (ffi_call): Likewise. 3509 (ffi_closure_inner_LINUX): Rename to ffi_closure_inner_pa32. Change 3510 return type to ffi_status. Simplify incrementing of stack slot 3511 variable. Only copy floating point argument registers when PA_LINUX 3512 is true. Reformat debug statement. 3513 Add support for FFI_TYPE_SMALL_STRUCT2, FFI_TYPE_SMALL_STRUCT4 and 3514 FFI_TYPE_SMALL_STRUCT8. 3515 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Add 'extern' to 3516 declaration. 3517 (ffi_prep_closure): Make linux trampoline conditional on PA_LINUX. 3518 Add nops to cache flush. Add trampoline for PA_HPUX. 3519 * src/pa/hpux32.S: New file. 3520 * src/pa/linux.S (ffi_call_LINUX): Rename to ffi_call_pa32. Rename 3521 ffi_prep_args_LINUX to ffi_prep_args_pa32. 3522 Localize labels. Add support for 2, 4 and 8-byte small structs. Handle 3523 unaligned destinations in 3, 5, 6 and 7-byte small structs. Order 3524 argument type checks so that common argument types appear first. 3525 (ffi_closure_LINUX): Rename to ffi_closure_pa32. Rename 3526 ffi_closure_inner_LINUX to ffi_closure_inner_pa32. 3527 35282006-03-24 Alan Modra <amodra@bigpond.net.au> 3529 3530 * src/powerpc/ffitarget.h (enum ffi_abi): Add FFI_LINUX. Default 3531 for 32-bit using IBM extended double format. Fix FFI_LAST_ABI. 3532 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Handle linux variant of 3533 FFI_TYPE_LONGDOUBLE. 3534 (ffi_prep_args64): Assert using IBM extended double. 3535 (ffi_prep_cif_machdep): Don't munge FFI_TYPE_LONGDOUBLE type. 3536 Handle FFI_LINUX FFI_TYPE_LONGDOUBLE return and args. 3537 (ffi_call): Handle FFI_LINUX. 3538 (ffi_closure_helper_SYSV): Non FFI_LINUX long double return needs 3539 gpr3 return pointer as for struct return. Handle FFI_LINUX 3540 FFI_TYPE_LONGDOUBLE return and args. Don't increment "nf" 3541 unnecessarily. 3542 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Load both f1 and f2 3543 for FFI_TYPE_LONGDOUBLE. Move epilogue insns into case table. 3544 Don't use r6 as pointer to results, instead use sp offset. Don't 3545 make a special call to load lr with case table address, instead 3546 use offset from previous call. 3547 * src/powerpc/sysv.S (ffi_call_SYSV): Save long double return. 3548 * src/powerpc/linux64.S (ffi_call_LINUX64): Simplify long double 3549 return. 3550 35512006-03-15 Kaz Kojima <kkojima@gcc.gnu.org> 3552 3553 * src/sh64/ffi.c (ffi_prep_cif_machdep): Handle float arguments 3554 passed with FP registers correctly. 3555 (ffi_closure_helper_SYSV): Likewise. 3556 * src/sh64/sysv.S: Likewise. 3557 35582006-03-01 Andreas Tobler <a.tobler@schweiz.ch> 3559 3560 * testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif, 3561 args and userdata unused. 3562 (closure_test_fn1): Mark cif and userdata unused. 3563 (main): Remove unused res. 3564 35652006-02-28 Andreas Tobler <a.tobler@schweiz.ch> 3566 3567 * testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for 3568 -O2, -O3, -Os and the warning flags -W -Wall. 3569 * testsuite/libffi.special/special.exp: Likewise. 3570 * testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark 3571 unused parameter unused for gcc or else do nothing. 3572 * testsuite/libffi.special/ffitestcxx.h: Likewise. 3573 * testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif 3574 and userdata unused. 3575 * testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise. 3576 * testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise. 3577 * testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise. 3578 * testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise. 3579 * testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise. 3580 * testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise. 3581 * testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise. 3582 * testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise. 3583 * testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise. 3584 * testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise. 3585 * testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise. 3586 * testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise. 3587 * testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise. 3588 * testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise. 3589 * testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise. 3590 * testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise. 3591 * testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise. 3592 * testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise. 3593 * testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise. 3594 * testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise. 3595 * testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise. 3596 * testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise. 3597 * testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise. 3598 * testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn): 3599 Likewise. 3600 * testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn): 3601 Likewise. 3602 * testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn): 3603 Likewise. 3604 * testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast 3605 void* to avoid compiler warning. 3606 (main): Likewise. 3607 (cls_struct_align_gn): Mark cif and userdata unused. 3608 * testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn): 3609 Likewise. 3610 * testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn): 3611 Likewise. 3612 * testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn): 3613 Likewise. 3614 * testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn): 3615 Likewise. 3616 * testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn): 3617 Likewise. 3618 * testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise. 3619 * testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise. 3620 * testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and 3621 data unused. 3622 (main): Cast res_call to silence gcc. 3623 * testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and 3624 data unused. 3625 (main): Cast res_call to silence gcc. 3626 * testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif 3627 and data unused. 3628 (main): Cast res_call to silence gcc. 3629 * testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and 3630 data unused. 3631 (main): Cast res_call to silence gcc. 3632 * testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and 3633 data unused. 3634 (main): Cast res_call to silence gcc. 3635 * testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif 3636 and data unused. 3637 (main): Cast res_call to silence gcc. 3638 * testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and 3639 userdata unused. 3640 (cls_ret_schar_fn): Cast printf parameter to silence gcc. 3641 * testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and 3642 userdata unused. 3643 (cls_ret_sint_fn): Cast printf parameter to silence gcc. 3644 * testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and 3645 userdata unused. 3646 (cls_ret_sshort_fn): Cast printf parameter to silence gcc. 3647 * testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn): Mark cif and 3648 userdata unused. 3649 (cls_ret_uchar_fn): Cast printf parameter to silence gcc. 3650 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and 3651 userdata unused. 3652 (cls_ret_uint_fn): Cast printf parameter to silence gcc. 3653 * testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif 3654 and userdata unused. 3655 * testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and 3656 userdata unused. 3657 (cls_ret_ushort_fn): Cast printf parameter to silence gcc. 3658 * testsuite/libffi.call/float.c (floating): Remove unused parameter e. 3659 * testsuite/libffi.call/float1.c (main): Remove unused variable i. 3660 Cleanup white spaces. 3661 * testsuite/libffi.call/negint.c (checking): Remove unused variable i. 3662 * testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark 3663 cif and userdata unused. 3664 * testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn): 3665 Likewise. 3666 * testsuite/libffi.call/nested_struct10.c (B_gn): Likewise. 3667 * testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf 3668 formatters to silence gcc. 3669 (B_gn): Mark cif and userdata unused. 3670 * testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata 3671 unused. 3672 * testsuite/libffi.call/nested_struct4.c: Mention related PR. 3673 (B_gn): Mark cif and userdata unused. 3674 * testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata 3675 unused. 3676 * testsuite/libffi.call/nested_struct6.c: Mention related PR. 3677 (B_gn): Mark cif and userdata unused. 3678 * testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata 3679 unused. 3680 * testsuite/libffi.call/nested_struct8.c (B_gn): Likewise. 3681 * testsuite/libffi.call/nested_struct9.c (B_gn): Likewise. 3682 * testsuite/libffi.call/problem1.c (stub): Likewise. 3683 * testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence 3684 gcc. 3685 * testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned 3686 in the last commit for this test case in the test case itself. 3687 * testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as 3688 unused. 3689 * testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise. 3690 * testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise. 3691 * testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise. 3692 * testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise. 3693 * testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise. 3694 * testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise. 3695 36962006-02-22 Kaz Kojima <kkojima@gcc.gnu.org> 3697 3698 * src/sh/sysv.S: Fix register numbers in the FDE for 3699 ffi_closure_SYSV. 3700 37012006-02-20 Andreas Tobler <a.tobler@schweiz.ch> 3702 3703 * testsuite/libffi.call/return_fl2.c (return_fl): Remove static 3704 declaration to avoid a false negative on ix86. See PR323. 3705 37062006-02-18 Kaz Kojima <kkojima@gcc.gnu.org> 3707 3708 * src/sh/ffi.c (ffi_closure_helper_SYSV): Remove unused variable 3709 and cast integer to void * if needed. Update the pointer to 3710 the FP register saved area correctly. 3711 37122006-02-17 Andreas Tobler <a.tobler@schweiz.ch> 3713 3714 * testsuite/libffi.call/nested_struct6.c: XFAIL this test until PR25630 3715 is fixed. 3716 * testsuite/libffi.call/nested_struct4.c: Likewise. 3717 37182006-02-16 Andreas Tobler <a.tobler@schweiz.ch> 3719 3720 * testsuite/libffi.call/return_dbl.c: New test case. 3721 * testsuite/libffi.call/return_dbl1.c: Likewise. 3722 * testsuite/libffi.call/return_dbl2.c: Likewise. 3723 * testsuite/libffi.call/return_fl.c: Likewise. 3724 * testsuite/libffi.call/return_fl1.c: Likewise. 3725 * testsuite/libffi.call/return_fl2.c: Likewise. 3726 * testsuite/libffi.call/return_fl3.c: Likewise. 3727 * testsuite/libffi.call/closure_fn6.c: Likewise. 3728 3729 * testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong 3730 definition. 3731 * testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition 3732 here to be used by other test cases too. 3733 3734 * testsuite/libffi.call/nested_struct10.c: New test case. 3735 * testsuite/libffi.call/nested_struct9.c: Likewise. 3736 * testsuite/libffi.call/nested_struct8.c: Likewise. 3737 * testsuite/libffi.call/nested_struct7.c: Likewise. 3738 * testsuite/libffi.call/nested_struct6.c: Likewise. 3739 * testsuite/libffi.call/nested_struct5.c: Likewise. 3740 * testsuite/libffi.call/nested_struct4.c: Likewise. 3741 37422006-01-21 Andreas Tobler <a.tobler@schweiz.ch> 3743 3744 * configure.ac: Enable libffi for sparc64-*-freebsd*. 3745 * configure: Rebuilt. 3746 37472006-01-18 Jakub Jelinek <jakub@redhat.com> 3748 3749 * src/powerpc/sysv.S (smst_two_register): Don't call __ashldi3, 3750 instead do the shifting inline. 3751 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't compute %r5 3752 shift count unconditionally. Simplify load sequences for 1, 2, 3, 4 3753 and 8 byte structs, for the remaining struct sizes don't call 3754 __lshrdi3, instead do the shifting inline. 3755 37562005-12-07 Thiemo Seufer <ths@networkno.de> 3757 3758 * src/mips/ffitarget.h: Remove obsolete sgidefs.h include. Add 3759 missing parentheses. 3760 * src/mips/o32.S (ffi_call_O32): Code formatting. Define 3761 and use A3_OFF, FP_OFF, RA_OFF. Micro-optimizations. 3762 (ffi_closure_O32): Likewise, but with newly defined A3_OFF2, 3763 A2_OFF2, A1_OFF2, A0_OFF2, RA_OFF2, FP_OFF2, S0_OFF2, GP_OFF2, 3764 V1_OFF2, V0_OFF2, FA_1_1_OFF2, FA_1_0_OFF2, FA_0_1_OFF2, 3765 FA_0_0_OFF2. 3766 * src/mips/ffi.c (ffi_prep_args): Code formatting. Fix 3767 endianness bugs. 3768 (ffi_prep_closure): Improve trampoline instruction scheduling. 3769 (ffi_closure_mips_inner_O32): Fix endianness bugs. 3770 37712005-12-03 Alan Modra <amodra@bigpond.net.au> 3772 3773 * src/powerpc/ffi.c: Formatting. 3774 (ffi_prep_args_SYSV): Avoid possible aliasing problems by using unions. 3775 (ffi_prep_args64): Likewise. 3776 37772005-09-30 Geoffrey Keating <geoffk@apple.com> 3778 3779 * testsuite/lib/libffi-dg.exp (libffi_target_compile): For 3780 darwin, use -shared-libgcc not -lgcc_s, and explain why. 3781 37822005-09-26 Tom Tromey <tromey@redhat.com> 3783 3784 * testsuite/libffi.call/float1.c (value_type): New typedef. 3785 (CANARY): New define. 3786 (main): Check for result buffer overflow. 3787 * src/powerpc/linux64.S: Handle linux64 long double returns. 3788 * src/powerpc/ffi.c (FLAG_RETURNS_128BITS): New constant. 3789 (ffi_prep_cif_machdep): Handle linux64 long double returns. 3790 37912005-08-25 Alan Modra <amodra@bigpond.net.au> 3792 3793 PR target/23404 3794 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Correct placement of stack 3795 homed fp args. 3796 (ffi_status ffi_prep_cif_machdep): Correct stack sizing for same. 3797 37982005-08-11 Jakub Jelinek <jakub@redhat.com> 3799 3800 * configure.ac (HAVE_HIDDEN_VISIBILITY_ATTRIBUTE): New test. 3801 (AH_BOTTOM): Add FFI_HIDDEN definition. 3802 * configure: Rebuilt. 3803 * fficonfig.h.in: Rebuilt. 3804 * src/powerpc/ffi.c (hidden): Remove. 3805 (ffi_closure_LINUX64, ffi_prep_args64, ffi_call_LINUX64, 3806 ffi_closure_helper_LINUX64): Use FFI_HIDDEN instead of hidden. 3807 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64, 3808 .ffi_closure_LINUX64): Use FFI_HIDDEN instead of .hidden. 3809 * src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): Remove, 3810 add FFI_HIDDEN to its prototype. 3811 (ffi_closure_SYSV_inner): New. 3812 * src/x86/sysv.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New. 3813 * src/x86/win32.S (ffi_closure_SYSV, ffi_closure_raw_SYSV): New. 3814 38152005-08-10 Alfred M. Szmidt <ams@gnu.org> 3816 3817 PR libffi/21819: 3818 * configure: Rebuilt. 3819 * configure.ac: Handle i*86-*-gnu*. 3820 38212005-08-09 Jakub Jelinek <jakub@redhat.com> 3822 3823 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use 3824 DW_CFA_offset_extended_sf rather than 3825 DW_CFA_GNU_negative_offset_extended. 3826 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise. 3827 38282005-07-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp> 3829 3830 * src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly 3831 on sh3. 3832 (ffi_closure_SYSV): Change the stack layout for sh3 struct argument. 3833 * src/sh/ffi.c (ffi_prep_args): Fix sh3 argument copy, when it is 3834 partially on register. 3835 (ffi_closure_helper_SYSV): Likewise. 3836 (ffi_prep_cif_machdep): Don't set too many cif->flags. 3837 38382005-07-20 Kaz Kojima <kkojima@gcc.gnu.org> 3839 3840 * src/sh/ffi.c (ffi_call): Handle small structures correctly. 3841 Remove empty line. 3842 * src/sh64/ffi.c (simple_type): Remove. 3843 (return_type): Handle small structures correctly. 3844 (ffi_prep_args): Likewise. 3845 (ffi_call): Likewise. 3846 (ffi_closure_helper_SYSV): Likewise. 3847 * src/sh64/sysv.S (ffi_call_SYSV): Handle 1, 2 and 4-byte return. 3848 Emit position independent code if PIC and remove wrong datalabel 3849 prefixes from EH data. 3850 38512005-07-19 Andreas Tobler <a.tobler@schweiz.ch> 3852 3853 * Makefile.am (nodist_libffi_la_SOURCES): Add POWERPC_FREEBSD. 3854 * Makefile.in: Regenerate. 3855 * include/Makefile.in: Likewise. 3856 * testsuite/Makefile.in: Likewise. 3857 * configure.ac: Add POWERPC_FREEBSD rules. 3858 * configure: Regenerate. 3859 * src/powerpc/ffitarget.h: Add POWERPC_FREEBSD rules. 3860 (FFI_SYSV_TYPE_SMALL_STRUCT): Define. 3861 * src/powerpc/ffi.c: Add flags to handle small structure returns 3862 in ffi_call_SYSV. 3863 (ffi_prep_cif_machdep): Handle small structures for SYSV 4 ABI. 3864 Aka FFI_SYSV. 3865 (ffi_closure_helper_SYSV): Likewise. 3866 * src/powerpc/ppc_closure.S: Add return types for small structures. 3867 * src/powerpc/sysv.S: Add bits to handle small structures for 3868 final SYSV 4 ABI. 3869 38702005-07-10 Andreas Tobler <a.tobler@schweiz.ch> 3871 3872 * testsuite/libffi.call/cls_5_1_byte.c: New test file. 3873 * testsuite/libffi.call/cls_6_1_byte.c: Likewise. 3874 * testsuite/libffi.call/cls_7_1_byte.c: Likewise. 3875 38762005-07-05 Randolph Chung <tausq@debian.org> 3877 3878 * src/pa/ffi.c (ffi_struct_type): Rename FFI_TYPE_SMALL_STRUCT1 3879 as FFI_TYPE_SMALL_STRUCT3. Break out handling for 5-7 byte 3880 structures. Kill compilation warnings. 3881 (ffi_closure_inner_LINUX): Print return values as hex in debug 3882 message. Rename FFI_TYPE_SMALL_STRUCT1 as FFI_TYPE_SMALL_STRUCT3. 3883 Properly handle 5-7 byte structure returns. 3884 * src/pa/ffitarget.h (FFI_TYPE_SMALL_STRUCT1) 3885 (FFI_TYPE_SMALL_STRUCT2): Remove. 3886 (FFI_TYPE_SMALL_STRUCT3, FFI_TYPE_SMALL_STRUCT5) 3887 (FFI_TYPE_SMALL_STRUCT6, FFI_TYPE_SMALL_STRUCT7): Define. 3888 * src/pa/linux.S: Mark source file as using PA1.1 assembly. 3889 (checksmst1, checksmst2): Remove. 3890 (checksmst3): Optimize handling of 3-byte struct returns. 3891 (checksmst567): Properly handle 5-7 byte struct returns. 3892 38932005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 3894 3895 PR libgcj/21943 3896 * src/mips/n32.S: Enforce PIC code. 3897 * src/mips/o32.S: Likewise. 3898 38992005-06-15 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 3900 3901 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64. 3902 * configure: Regenerate. 3903 39042005-06-01 Alan Modra <amodra@bigpond.net.au> 3905 3906 * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Don't use JUMPTARGET 3907 to call ffi_closure_helper_SYSV. Append @local instead. 3908 * src/powerpc/sysv.S (ffi_call_SYSV): Likewise for ffi_prep_args_SYSV. 3909 39102005-05-17 Kelley Cook <kcook@gcc.gnu.org> 3911 3912 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS. 3913 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF. 3914 * Makefile.am (ACLOCAL_AMFLAGS): Remove -I ../config. 3915 * aclocal.m4, configure, fficonfig.h.in, Makefile.in, 3916 include/Makefile.in, testsuite/Makefile.in: Regenerate. 3917 39182005-05-09 Mike Stump <mrs@apple.com> 3919 3920 * configure: Regenerate. 3921 39222005-05-08 Richard Henderson <rth@redhat.com> 3923 3924 PR libffi/21285 3925 * src/alpha/osf.S: Update unwind into to match code. 3926 39272005-05-04 Andreas Degert <ad@papyrus-gmbh.de> 3928 Richard Henderson <rth@redhat.com> 3929 3930 * src/x86/ffi64.c (ffi_prep_cif_machdep): Save sse-used flag in 3931 bit 11 of flags. 3932 (ffi_call): Mask return type field. Pass ssecount to ffi_call_unix64. 3933 (ffi_prep_closure): Set carry bit if sse-used flag set. 3934 * src/x86/unix64.S (ffi_call_unix64): Add ssecount argument. 3935 Only load sse registers if ssecount non-zero. 3936 (ffi_closure_unix64): Only save sse registers if carry set on entry. 3937 39382005-04-29 Ralf Corsepius <ralf.corsepius@rtems.org> 3939 3940 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*, 3941 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*. 3942 * configure: Regenerate. 3943 39442005-04-20 Hans-Peter Nilsson <hp@axis.com> 3945 3946 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use, 3947 have Tcl8.3-compatible intermediate variable. 3948 39492005-04-18 Simon Posnjak <simon.posnjak@siol.net> 3950 Hans-Peter Nilsson <hp@axis.com> 3951 3952 * Makefile.am: Add CRIS support. 3953 * configure.ac: Likewise. 3954 * Makefile.in, configure, testsuite/Makefile.in, 3955 include/Makefile.in: Regenerate. 3956 * src/cris: New directory. 3957 * src/cris/ffi.c, src/cris/sysv.S, src/cris/ffitarget.h: New files. 3958 * src/prep_cif.c (ffi_prep_cif): Wrap in #ifndef __CRIS__. 3959 3960 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): Replace \n with 3961 \r?\n in output tests. 3962 39632005-04-12 Mike Stump <mrs@apple.com> 3964 3965 * configure: Regenerate. 3966 39672005-03-30 Hans Boehm <Hans.Boehm@hp.com> 3968 3969 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI. 3970 39712005-03-30 Steve Ellcey <sje@cup.hp.com> 3972 3973 * src/ia64/ffitarget.h (ffi_arg) ADD DI attribute. 3974 (ffi_sarg) Ditto. 3975 * src/ia64/unix.S (ffi_closure_unix): Extend gp 3976 to 64 bits in ILP32 mode. 3977 Load 64 bits even for short data. 3978 39792005-03-23 Mike Stump <mrs@apple.com> 3980 3981 * src/powerpc/darwin.S: Update for -m64 multilib. 3982 * src/powerpc/darwin_closure.S: Likewise. 3983 39842005-03-21 Zack Weinberg <zack@codesourcery.com> 3985 3986 * configure.ac: Do not invoke TL_AC_GCC_VERSION. 3987 Do not set tool_include_dir. 3988 * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in: 3989 Regenerate. 3990 * include/Makefile.am: Set gcc_version and toollibffidir. 3991 * include/Makefile.in: Regenerate. 3992 39932005-02-22 Andrew Haley <aph@redhat.com> 3994 3995 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Bump alignment to 3996 odd-numbered register pairs for 64-bit integer types. 3997 39982005-02-23 Andreas Tobler <a.tobler@schweiz.ch> 3999 4000 PR libffi/20104 4001 * testsuite/libffi.call/return_ll1.c: New test case. 4002 40032005-02-11 Janis Johnson <janis187@us.ibm.com> 4004 4005 * testsuite/libffi.call/cls_align_longdouble.c: Remove dg-options. 4006 * testsuite/libffi.call/float.c: Ditto. 4007 * testsuite/libffi.call/float2.c: Ditto. 4008 * testsuite/libffi.call/float3.c: Ditto. 4009 40102005-02-08 Andreas Tobler <a.tobler@schweiz.ch> 4011 4012 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv. 4013 40142005-01-12 Eric Botcazou <ebotcazou@libertysurf.fr> 4015 4016 * testsuite/libffi.special/special.exp (cxx_options): Add 4017 -shared-libgcc. 4018 40192004-12-31 Richard Henderson <rth@redhat.com> 4020 4021 * src/types.c (FFI_AGGREGATE_TYPEDEF): Remove. 4022 (FFI_TYPEDEF): Rename from FFI_INTEGRAL_TYPEDEF. Replace size and 4023 offset parameters with a type parameter; deduce size and structure 4024 alignment. Update all users. 4025 40262004-12-31 Richard Henderson <rth@redhat.com> 4027 4028 * src/types.c (FFI_TYPE_POINTER): Define with sizeof. 4029 (FFI_TYPE_LONGDOUBLE): Fix for ia64. 4030 * src/ia64/ffitarget.h (struct ffi_ia64_trampoline_struct): Move 4031 into ffi_prep_closure. 4032 * src/ia64/ia64_flags.h, src/ia64/ffi.c, src/ia64/unix.S: Rewrite 4033 from scratch. 4034 40352004-12-27 Richard Henderson <rth@redhat.com> 4036 4037 * src/x86/unix64.S: Fix typo in unwind info. 4038 40392004-12-25 Richard Henderson <rth@redhat.com> 4040 4041 * src/x86/ffi64.c (struct register_args): Rename from stackLayout. 4042 (enum x86_64_reg_class): Add X86_64_COMPLEX_X87_CLASS. 4043 (merge_classes): Check for it. 4044 (SSE_CLASS_P): New. 4045 (classify_argument): Pass byte_offset by value; perform all updates 4046 inside struct case. 4047 (examine_argument): Add classes argument; handle 4048 X86_64_COMPLEX_X87_CLASS. 4049 (ffi_prep_args): Merge into ... 4050 (ffi_call): ... here. Share stack frame with ffi_call_unix64. 4051 (ffi_prep_cif_machdep): Setup cif->flags for proper structure return. 4052 (ffi_fill_return_value): Remove. 4053 (ffi_prep_closure): Remove dead assert. 4054 (ffi_closure_unix64_inner): Rename from ffi_closure_UNIX64_inner. 4055 Rewrite to use struct register_args instead of va_list. Create 4056 flags for handling structure returns. 4057 * src/x86/unix64.S: Remove dead strings. 4058 (ffi_call_unix64): Rename from ffi_call_UNIX64. Rewrite to share 4059 stack frame with ffi_call. Handle structure returns properly. 4060 (float2sse, floatfloat2sse, double2sse): Remove. 4061 (sse2float, sse2double, sse2floatfloat): Remove. 4062 (ffi_closure_unix64): Rename from ffi_closure_UNIX64. Rewrite 4063 to handle structure returns properly. 4064 40652004-12-08 David Edelsohn <edelsohn@gnu.org> 4066 4067 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and 4068 PICFLAG. 4069 * Makefile.in: Regenerated. 4070 40712004-12-02 Richard Sandiford <rsandifo@redhat.com> 4072 4073 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version. 4074 * configure, aclocal.m4, Makefile.in: Regenerate. 4075 * include/Makefile.in, testsuite/Makefile.in: Regenerate. 4076 40772004-11-29 Kelley Cook <kcook@gcc.gnu.org> 4078 4079 * configure: Regenerate for libtool change. 4080 40812004-11-25 Kelley Cook <kcook@gcc.gnu.org> 4082 4083 * configure: Regenerate for libtool reversion. 4084 40852004-11-24 Kelley Cook <kcook@gcc.gnu.org> 4086 4087 * configure: Regenerate for libtool change. 4088 40892004-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 4090 4091 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp. 4092 40932004-11-23 Richard Sandiford <rsandifo@redhat.com> 4094 4095 * src/mips/o32.S (ffi_call_O32, ffi_closure_O32): Use jalr instead 4096 of jal. Use an absolute encoding for the frame information. 4097 40982004-11-23 Kelley Cook <kcook@gcc.gnu.org> 4099 4100 * Makefile.am: Remove no-dependencies. Add ACLOCAL_AMFLAGS. 4101 * acinclude.m4: Delete logic for sincludes. 4102 * aclocal.m4, Makefile.in, configure: Regenerate. 4103 * include/Makefile: Likewise. 4104 * testsuite/Makefile: Likewise. 4105 41062004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr> 4107 4108 * src/sparc/ffi.c (ffi_prep_closure): Align doubles and 64-bit integers 4109 on a 8-byte boundary. 4110 * src/sparc/v8.S (ffi_closure_v8): Reserve frame space for arguments. 4111 41122004-10-27 Richard Earnshaw <rearnsha@arm.com> 4113 4114 * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return 4115 long long values. Round stack allocation to a multiple of 8 bytes 4116 for ATPCS compatibility. 4117 * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register 4118 names. Handle returning long long types. Add Thumb and interworking 4119 support. Improve soft-float code. 4120 41212004-10-27 Richard Earnshaw <rearnsha@arm.com> 4122 4123 * testsuite/lib/libffi-db.exp (load_gcc_lib): New function. 4124 (libffi_exit): New function. 4125 (libffi_init): Build the testglue wrapper if needed. 4126 41272004-10-25 Eric Botcazou <ebotcazou@libertysurf.fr> 4128 4129 PR other/18138 4130 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc. 4131 41322004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> 4133 4134 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0. 4135 41362004-10-20 Kaz Kojima <kkojima@gcc.gnu.org> 4137 4138 * src/sh/sysv.S (ffi_call_SYSV): Don't align for double data. 4139 * testsuite/libffi.call/float3.c: New test case. 4140 41412004-10-18 Kaz Kojima <kkojima@gcc.gnu.org> 4142 4143 * src/sh/ffi.c (ffi_prep_closure): Set T bit in trampoline for 4144 the function returning a structure pointed with R2. 4145 * src/sh/sysv.S (ffi_closure_SYSV): Use R2 as the pointer to 4146 the structure return value if T bit set. Emit position 4147 independent code and EH data if PIC. 4148 41492004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> 4150 4151 * Makefile.am: Add m32r support. 4152 * configure.ac: Likewise. 4153 * Makefile.in: Regenerate. 4154 * confiugre: Regenerate. 4155 * src/types.c: Add m32r port to FFI_INTERNAL_TYPEDEF 4156 (uint64, sint64, double, longdouble) 4157 * src/m32r: New directory. 4158 * src/m32r/ffi.c: New file. 4159 * src/m32r/sysv.S: Likewise. 4160 * src/m32r/ffitarget.h: Likewise. 4161 41622004-10-02 Kaz Kojima <kkojima@gcc.gnu.org> 4163 4164 * testsuite/libffi.call/negint.c: New test case. 4165 41662004-09-14 H.J. Lu <hongjiu.lu@intel.com> 4167 4168 PR libgcj/17465 4169 * testsuite/lib/libffi-dg.exp: Don't use global ld_library_path. 4170 Set up LD_LIBRARY_PATH, SHLIB_PATH, LD_LIBRARYN32_PATH, 4171 LD_LIBRARY64_PATH, LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64 and 4172 DYLD_LIBRARY_PATH. 4173 41742004-09-05 Andreas Tobler <a.tobler@schweiz.ch> 4175 4176 * testsuite/libffi.call/many_win32.c: Remove whitespaces. 4177 * testsuite/libffi.call/promotion.c: Likewise. 4178 * testsuite/libffi.call/return_ll.c: Remove unused var. Cleanup 4179 whitespaces. 4180 * testsuite/libffi.call/return_sc.c: Likewise. 4181 * testsuite/libffi.call/return_uc.c: Likewise. 4182 41832004-09-05 Andreas Tobler <a.tobler@schweiz.ch> 4184 4185 * src/powerpc/darwin.S: Fix comments and identation. 4186 * src/powerpc/darwin_closure.S: Likewise. 4187 41882004-09-02 Andreas Tobler <a.tobler@schweiz.ch> 4189 4190 * src/powerpc/ffi_darwin.c: Add flag for longdouble return values. 4191 (ffi_prep_args): Handle longdouble arguments. 4192 (ffi_prep_cif_machdep): Set flags for longdouble. Calculate space for 4193 longdouble. 4194 (ffi_closure_helper_DARWIN): Add closure handling for longdouble. 4195 * src/powerpc/darwin.S (_ffi_call_DARWIN): Add handling of longdouble 4196 values. 4197 * src/powerpc/darwin_closure.S (_ffi_closure_ASM): Likewise. 4198 * src/types.c: Defined longdouble size and alignment for darwin. 4199 42002004-09-02 Andreas Tobler <a.tobler@schweiz.ch> 4201 4202 * src/powerpc/aix.S: Remove whitespaces. 4203 * src/powerpc/aix_closure.S: Likewise. 4204 * src/powerpc/asm.h: Likewise. 4205 * src/powerpc/ffi.c: Likewise. 4206 * src/powerpc/ffitarget.h: Likewise. 4207 * src/powerpc/linux64.S: Likewise. 4208 * src/powerpc/linux64_closure.S: Likewise. 4209 * src/powerpc/ppc_closure.S: Likewise. 4210 * src/powerpc/sysv.S: Likewise. 4211 42122004-08-30 Anthony Green <green@redhat.com> 4213 4214 * Makefile.am: Add frv support. 4215 * Makefile.in, testsuite/Makefile.in: Rebuilt. 4216 * configure.ac: Read configure.host. 4217 * configure.in: Read configure.host. 4218 * configure.host: New file. frv-elf needs libgloss. 4219 * include/ffi.h.in: Force ffi_closure to have a nice big (8) 4220 alignment. This is needed to frv and shouldn't harm the others. 4221 * include/ffi_common.h (ALIGN_DOWN): New macro. 4222 * src/frv/ffi.c, src/frv/ffitarget.h, src/frv/eabi.S: New files. 4223 42242004-08-24 David Daney <daney@avtrex.com> 4225 4226 * testsuite/libffi.call/closure_fn0.c: Xfail mips64* instead of mips*. 4227 * testsuite/libffi.call/closure_fn1.c: Likewise. 4228 * testsuite/libffi.call/closure_fn2.c Likewise. 4229 * testsuite/libffi.call/closure_fn3.c: Likewise. 4230 * testsuite/libffi.call/closure_fn4.c: Likewise. 4231 * testsuite/libffi.call/closure_fn5.c: Likewise. 4232 * testsuite/libffi.call/cls_18byte.c: Likewise. 4233 * testsuite/libffi.call/cls_19byte.c: Likewise. 4234 * testsuite/libffi.call/cls_1_1byte.c: Likewise. 4235 * testsuite/libffi.call/cls_20byte.c: Likewise. 4236 * testsuite/libffi.call/cls_20byte1.c: Likewise. 4237 * testsuite/libffi.call/cls_24byte.c: Likewise. 4238 * testsuite/libffi.call/cls_2byte.c: Likewise. 4239 * testsuite/libffi.call/cls_3_1byte.c: Likewise. 4240 * testsuite/libffi.call/cls_3byte1.c: Likewise. 4241 * testsuite/libffi.call/cls_3byte2.c: Likewise. 4242 * testsuite/libffi.call/cls_4_1byte.c: Likewise. 4243 * testsuite/libffi.call/cls_4byte.c: Likewise. 4244 * testsuite/libffi.call/cls_64byte.c: Likewise. 4245 * testsuite/libffi.call/cls_6byte.c: Likewise. 4246 * testsuite/libffi.call/cls_7byte.c: Likewise. 4247 * testsuite/libffi.call/cls_8byte.c: Likewise. 4248 * testsuite/libffi.call/cls_9byte1.c: Likewise. 4249 * testsuite/libffi.call/cls_9byte2.c: Likewise. 4250 * testsuite/libffi.call/cls_align_double.c: Likewise. 4251 * testsuite/libffi.call/cls_align_float.c: Likewise. 4252 * testsuite/libffi.call/cls_align_longdouble.c: Likewise. 4253 * testsuite/libffi.call/cls_align_pointer.c: Likewise. 4254 * testsuite/libffi.call/cls_align_sint16.c: Likewise. 4255 * testsuite/libffi.call/cls_align_sint32.c: Likewise. 4256 * testsuite/libffi.call/cls_align_sint64.c: Likewise. 4257 * testsuite/libffi.call/cls_align_uint16.c: Likewise. 4258 * testsuite/libffi.call/cls_align_uint32.c: Likewise. 4259 * testsuite/libffi.call/cls_align_uint64.c: Likewise. 4260 * testsuite/libffi.call/cls_double.c: Likewise. 4261 * testsuite/libffi.call/cls_float.c: Likewise. 4262 * testsuite/libffi.call/cls_multi_schar.c: Likewise. 4263 * testsuite/libffi.call/cls_multi_sshort.c: Likewise. 4264 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise. 4265 * testsuite/libffi.call/cls_multi_uchar.c: Likewise. 4266 * testsuite/libffi.call/cls_multi_ushort.c: Likewise. 4267 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise. 4268 * testsuite/libffi.call/cls_schar.c: Likewise. 4269 * testsuite/libffi.call/cls_sint.c: Likewise. 4270 * testsuite/libffi.call/cls_sshort.c: Likewise. 4271 * testsuite/libffi.call/cls_uchar.c: Likewise. 4272 * testsuite/libffi.call/cls_uint.c: Likewise. 4273 * testsuite/libffi.call/cls_ulonglong.c: Likewise. 4274 * testsuite/libffi.call/cls_ushort.c: Likewise. 4275 * testsuite/libffi.call/nested_struct.c: Likewise. 4276 * testsuite/libffi.call/nested_struct1.c: Likewise. 4277 * testsuite/libffi.call/nested_struct2.c: Likewise. 4278 * testsuite/libffi.call/nested_struct3.c: Likewise. 4279 * testsuite/libffi.call/problem1.c: Likewise. 4280 * testsuite/libffi.special/unwindtest.cc: Likewise. 4281 * testsuite/libffi.call/cls_12byte.c: Likewise and set return value 4282 to zero. 4283 * testsuite/libffi.call/cls_16byte.c: Likewise. 4284 * testsuite/libffi.call/cls_5byte.c: Likewise. 4285 42862004-08-23 David Daney <daney@avtrex.com> 4287 4288 PR libgcj/13141 4289 * src/mips/ffitarget.h (FFI_O32_SOFT_FLOAT): New ABI. 4290 * src/mips/ffi.c (ffi_prep_args): Fix alignment calculation. 4291 (ffi_prep_cif_machdep): Handle FFI_O32_SOFT_FLOAT floating point 4292 parameters and return types. 4293 (ffi_call): Handle FFI_O32_SOFT_FLOAT ABI. 4294 (ffi_prep_closure): Ditto. 4295 (ffi_closure_mips_inner_O32): Handle FFI_O32_SOFT_FLOAT ABI, fix 4296 alignment calculations. 4297 * src/mips/o32.S (ffi_closure_O32): Don't use floating point 4298 instructions if FFI_O32_SOFT_FLOAT, make stack frame ABI compliant. 4299 43002004-08-14 Casey Marshall <csm@gnu.org> 4301 4302 * src/mips/ffi.c (ffi_pref_cif_machdep): set `cif->flags' to 4303 contain `FFI_TYPE_UINT64' as return type for any 64-bit 4304 integer (O32 ABI only). 4305 (ffi_prep_closure): new function. 4306 (ffi_closure_mips_inner_O32): new function. 4307 * src/mips/ffitarget.h: Define `FFI_CLOSURES' and 4308 `FFI_TRAMPOLINE_SIZE' appropriately if the ABI is o32. 4309 * src/mips/o32.S (ffi_call_O32): add labels for .eh_frame. Return 4310 64 bit integers correctly. 4311 (ffi_closure_O32): new function. 4312 Added DWARF-2 unwind info for both functions. 4313 43142004-08-10 Andrew Haley <aph@redhat.com> 4315 4316 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments. 4317 43182004-08-01 Robert Millan <robertmh@gnu.org> 4319 4320 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu. 4321 * configure: Regenerate. 4322 43232004-07-30 Maciej W. Rozycki <macro@linux-mips.org> 4324 4325 * acinclude.m4 (AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h> 4326 and mmap() explicitly instead of relying on preset autoconf cache 4327 variables. 4328 * aclocal.m4: Regenerate. 4329 * configure: Regenerate. 4330 43312004-07-11 Ulrich Weigand <uweigand@de.ibm.com> 4332 4333 * src/s390/ffi.c (ffi_prep_args): Fix C aliasing violation. 4334 (ffi_check_float_struct): Remove unused prototype. 4335 43362004-06-30 Geoffrey Keating <geoffk@apple.com> 4337 4338 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment 4339 character on Darwin, use '\n\t' instead. 4340 43412004-06-26 Matthias Klose <doko@debian.org> 4342 4343 * libtool-version: Fix typo in revision/age. 4344 43452004-06-17 Matthias Klose <doko@debian.org> 4346 4347 * libtool-version: New. 4348 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname. 4349 * Makefile.in: Regenerate. 4350 43512004-06-15 Paolo Bonzini <bonzini@gnu.org> 4352 4353 * Makefile.am: Remove useless multilib rules. 4354 * Makefile.in: Regenerate. 4355 * aclocal.m4: Regenerate with automake 1.8.5. 4356 * configure.ac: Remove useless multilib configury. 4357 * configure: Regenerate. 4358 43592004-06-15 Paolo Bonzini <bonzini@gnu.org> 4360 4361 * .cvsignore: New file. 4362 43632004-06-10 Jakub Jelinek <jakub@redhat.com> 4364 4365 * src/ia64/unix.S (ffi_call_unix): Insert group barrier break 4366 fp_done. 4367 (ffi_closure_UNIX): Fix f14/f15 adjustment if FLOAT_SZ is ever 4368 changed from 8. 4369 43702004-06-06 Sean McNeil <sean@mcneil.com> 4371 4372 * configure.ac: Add x86_64-*-freebsd* support. 4373 * configure: Regenerate. 4374 43752004-04-26 Joe Buck <jbuck@welsh-buck.org> 4376 4377 Bug 15093 4378 * configure.ac: Test for existence of mmap and sys/mman.h before 4379 checking blacklist. Fix suggested by Jim Wilson. 4380 * configure: Regenerate. 4381 43822004-04-26 Matt Austern <austern@apple.com> 4383 4384 * src/powerpc/darwin.S: Go through a non-lazy pointer for initial 4385 FDE location. 4386 * src/powerpc/darwin_closure.S: Likewise. 4387 43882004-04-24 Andreas Tobler <a.tobler@schweiz.ch> 4389 4390 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization 4391 error. Reported by Thomas Heller <theller@python.net>. 4392 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise. 4393 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise. 4394 43952004-03-20 Matthias Klose <doko@debian.org> 4396 4397 * src/pa/linux.S: Fix typo. 4398 43992004-03-19 Matthias Klose <doko@debian.org> 4400 4401 * Makefile.am: Update. 4402 * Makefile.in: Regenerate. 4403 * src/pa/ffi.h.in: Remove. 4404 * src/pa/ffitarget.h: New file. 4405 44062004-02-10 Randolph Chung <tausq@debian.org> 4407 4408 * Makefile.am: Add PA support. 4409 * Makefile.in: Regenerate. 4410 * include/Makefile.in: Regenerate. 4411 * configure.ac: Add PA target. 4412 * configure: Regenerate. 4413 * src/pa/ffi.c: New file. 4414 * src/pa/ffi.h.in: Add PA support. 4415 * src/pa/linux.S: New file. 4416 * prep_cif.c: Add PA support. 4417 44182004-03-16 Hosaka Yuji <hos@tamanegi.org> 4419 4420 * src/types.c: Fix alignment size of X86_WIN32 case int64 and 4421 double. 4422 * src/x86/ffi.c (ffi_prep_args): Replace ecif->cif->rtype->type 4423 with ecif->cif->flags. 4424 (ffi_call, ffi_prep_incoming_args_SYSV): Replace cif->rtype->type 4425 with cif->flags. 4426 (ffi_prep_cif_machdep): Add X86_WIN32 struct case. 4427 (ffi_closure_SYSV): Add 1 or 2-bytes struct case for X86_WIN32. 4428 * src/x86/win32.S (retstruct1b, retstruct2b, sc_retstruct1b, 4429 sc_retstruct2b): Add for 1 or 2-bytes struct case. 4430 44312004-03-15 Kelley Cook <kcook@gcc.gnu.org> 4432 4433 * configure.in: Rename file to ... 4434 * configure.ac: ... this. 4435 * fficonfig.h.in: Regenerate. 4436 * Makefile.in: Regenerate. 4437 * include/Makefile.in: Regenerate. 4438 * testsuite/Makefile.in: Regenerate. 4439 44402004-03-12 Matt Austern <austern@apple.com> 4441 4442 * src/powerpc/darwin.S: Fix EH information so it corresponds to 4443 changes in EH format resulting from addition of linkonce support. 4444 * src/powerpc/darwin_closure.S: Likewise. 4445 44462004-03-11 Andreas Tobler <a.tobler@schweiz.ch> 4447 Paolo Bonzini <bonzini@gnu.org> 4448 4449 * Makefile.am (AUTOMAKE_OPTIONS): Set them. 4450 Remove VPATH. Remove rules for object files. Remove multilib support. 4451 (AM_CCASFLAGS): Add. 4452 * configure.in (AC_CONFIG_HEADERS): Relace AM_CONFIG_HEADER. 4453 (AC_PREREQ): Bump version to 2.59. 4454 (AC_INIT): Fill with version info and bug address. 4455 (ORIGINAL_LD_FOR_MULTILIBS): Remove. 4456 (AM_ENABLE_MULTILIB): Use this instead of AC_ARG_ENABLE. 4457 De-precious CC so that the right flags are passed down to multilibs. 4458 (AC_MSG_ERROR): Replace obsolete macro AC_ERROR. 4459 (AC_CONFIG_FILES): Replace obsolete macro AC_LINK_FILES. 4460 (AC_OUTPUT): Reorganize the output with AC_CONFIG_COMMANDS. 4461 * configure: Rebuilt. 4462 * aclocal.m4: Likewise. 4463 * Makefile.in, include/Makefile.in, testsuite/Makefile.in: Likewise. 4464 * fficonfig.h.in: Likewise. 4465 44662004-03-11 Andreas Schwab <schwab@suse.de> 4467 4468 * src/ia64/ffi.c (ffi_prep_incoming_args_UNIX): Get floating point 4469 arguments from fp registers only for the first 8 parameter slots. 4470 Don't convert a float parameter when passed in memory. 4471 44722004-03-09 Hans-Peter Nilsson <hp@axis.com> 4473 4474 * configure: Regenerate for config/accross.m4 correction. 4475 44762004-02-25 Matt Kraai <kraai@alumni.cmu.edu> 4477 4478 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Change 4479 ecif->cif->bytes to bytes. 4480 (ffi_prep_cif_machdep): Add braces around nested if statement. 4481 44822004-02-09 Alan Modra <amodra@bigpond.net.au> 4483 4484 * src/types.c (pointer): POWERPC64 has 8 byte pointers. 4485 4486 * src/powerpc/ffi.c (ffi_prep_args64): Correct long double handling. 4487 (ffi_closure_helper_LINUX64): Fix typo. 4488 * testsuite/libffi.call/cls_align_longdouble.c: Pass -mlong-double-128 4489 for powerpc64-*-*. 4490 * testsuite/libffi.call/float.c: Likewise. 4491 * testsuite/libffi.call/float2.c: Likewise. 4492 44932004-02-08 Alan Modra <amodra@bigpond.net.au> 4494 4495 * src/powerpc/ffi.c (ffi_prep_cif_machdep <FFI_LINUX64>): Correct 4496 long double function return and long double arg handling. 4497 (ffi_closure_helper_LINUX64): Formatting. Delete unused "ng" var. 4498 Use "end_pfr" instead of "nf". Correct long double handling. 4499 Localise "temp". 4500 * src/powerpc/linux64.S (ffi_call_LINUX64): Save f2 long double 4501 return value. 4502 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Allocate 4503 space for long double return value. Adjust stack frame and offsets. 4504 Load f2 long double return. 4505 45062004-02-07 Alan Modra <amodra@bigpond.net.au> 4507 4508 * src/types.c: Use 16 byte long double for POWERPC64. 4509 45102004-01-25 Eric Botcazou <ebotcazou@libertysurf.fr> 4511 4512 * src/sparc/ffi.c (ffi_prep_args_v9): Shift the parameter array 4513 when the structure return address is passed in %o0. 4514 (ffi_V9_return_struct): Rename into ffi_v9_layout_struct. 4515 (ffi_v9_layout_struct): Align the field following a nested structure 4516 on a word boundary. Use memmove instead of memcpy. 4517 (ffi_call): Update call to ffi_V9_return_struct. 4518 (ffi_prep_closure): Define 'ctx' only for V8. 4519 (ffi_closure_sparc_inner): Clone into ffi_closure_sparc_inner_v8 4520 and ffi_closure_sparc_inner_v9. 4521 (ffi_closure_sparc_inner_v8): Return long doubles by reference. 4522 Always skip the structure return address. For structures and long 4523 doubles, copy the argument directly. 4524 (ffi_closure_sparc_inner_v9): Skip the structure return address only 4525 if required. Shift the maximum floating-point slot accordingly. For 4526 big structures, copy the argument directly; otherwise, left-justify the 4527 argument and call ffi_v9_layout_struct to lay out the structure on 4528 the stack. 4529 * src/sparc/v8.S: Undef STACKFRAME before defining it. 4530 (ffi_closure_v8): Pass the structure return address. Update call to 4531 ffi_closure_sparc_inner_v8. Short-circuit FFI_TYPE_INT handling. 4532 Skip the 'unimp' insn when returning long doubles and structures. 4533 * src/sparc/v9.S: Undef STACKFRAME before defining it. 4534 (ffi_closure_v9): Increase the frame size by 2 words. Short-circuit 4535 FFI_TYPE_INT handling. Load structures both in integers and 4536 floating-point registers on return. 4537 * README: Update status of the SPARC port. 4538 45392004-01-24 Andreas Tobler <a.tobler@schweiz.ch> 4540 4541 * testsuite/libffi.call/pyobjc-tc.c (main): Treat result value 4542 as of type ffi_arg. 4543 * testsuite/libffi.call/struct3.c (main): Fix CHECK. 4544 45452004-01-22 Ulrich Weigand <uweigand@de.ibm.com> 4546 4547 * testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Treat result 4548 value as of type ffi_arg, not unsigned int. 4549 45502004-01-21 Michael Ritzert <ritzert@t-online.de> 4551 4552 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead 4553 of the LHS. 4554 45552004-01-12 Andreas Tobler <a.tobler@schweiz.ch> 4556 4557 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for 4558 Solaris. 4559 45602004-01-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 4561 4562 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED 4563 to void *. 4564 45652003-12-10 Richard Henderson <rth@redhat.com> 4566 4567 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to 4568 size_t instead of int. 4569 45702003-12-04 Hosaka Yuji <hos@tamanegi.org> 4571 4572 * testsuite/libffi.call/many_win32.c: Include <float.h>. 4573 * testsuite/libffi.call/many_win32.c (main): Replace variable 4574 int i with unsigned long ul. 4575 4576 * testsuite/libffi.call/cls_align_uint64.c: New test case. 4577 * testsuite/libffi.call/cls_align_sint64.c: Likewise. 4578 * testsuite/libffi.call/cls_align_uint32.c: Likewise. 4579 * testsuite/libffi.call/cls_align_sint32.c: Likewise. 4580 * testsuite/libffi.call/cls_align_uint16.c: Likewise. 4581 * testsuite/libffi.call/cls_align_sint16.c: Likewise. 4582 * testsuite/libffi.call/cls_align_float.c: Likewise. 4583 * testsuite/libffi.call/cls_align_double.c: Likewise. 4584 * testsuite/libffi.call/cls_align_longdouble.c: Likewise. 4585 * testsuite/libffi.call/cls_align_pointer.c: Likewise. 4586 45872003-12-02 Hosaka Yuji <hos@tamanegi.org> 4588 4589 PR other/13221 4590 * src/x86/ffi.c (ffi_prep_args, ffi_prep_incoming_args_SYSV): 4591 Align arguments to 32 bits. 4592 45932003-12-01 Andreas Tobler <a.tobler@schweiz.ch> 4594 4595 PR other/13221 4596 * testsuite/libffi.call/cls_multi_sshort.c: New test case. 4597 * testsuite/libffi.call/cls_multi_sshortchar.c: Likewise. 4598 * testsuite/libffi.call/cls_multi_uchar.c: Likewise. 4599 * testsuite/libffi.call/cls_multi_schar.c: Likewise. 4600 * testsuite/libffi.call/cls_multi_ushortchar.c: Likewise. 4601 * testsuite/libffi.call/cls_multi_ushort.c: Likewise. 4602 4603 * testsuite/libffi.special/unwindtest.cc: Cosmetics. 4604 46052003-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4606 4607 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>. 4608 * testsuite/libffi.special/ffitestcxx.h: Likewise. 4609 46102003-11-22 Andreas Tobler <a.tobler@schweiz.ch> 4611 4612 * Makefile.in: Rebuilt. 4613 * configure: Likewise. 4614 * testsuite/libffi.special/unwindtest.cc: Convert the mmap to 4615 the right type. 4616 46172003-11-21 Andreas Jaeger <aj@suse.de> 4618 Andreas Tobler <a.tobler@schweiz.ch> 4619 4620 * acinclude.m4: Add AC_FUNC_MMAP_BLACKLIST. 4621 * configure.in: Call AC_FUNC_MMAP_BLACKLIST. 4622 * Makefile.in: Rebuilt. 4623 * aclocal.m4: Likewise. 4624 * configure: Likewise. 4625 * fficonfig.h.in: Likewise. 4626 * testsuite/lib/libffi-dg.exp: Add include dir. 4627 * testsuite/libffi.call/ffitest.h: Add MMAP definitions. 4628 * testsuite/libffi.special/ffitestcxx.h: Likewise. 4629 * testsuite/libffi.call/closure_fn0.c: Use MMAP functionality 4630 for ffi_closure if available. 4631 * testsuite/libffi.call/closure_fn1.c: Likewise. 4632 * testsuite/libffi.call/closure_fn2.c: Likewise. 4633 * testsuite/libffi.call/closure_fn3.c: Likewise. 4634 * testsuite/libffi.call/closure_fn4.c: Likewise. 4635 * testsuite/libffi.call/closure_fn5.c: Likewise. 4636 * testsuite/libffi.call/cls_12byte.c: Likewise. 4637 * testsuite/libffi.call/cls_16byte.c: Likewise. 4638 * testsuite/libffi.call/cls_18byte.c: Likewise. 4639 * testsuite/libffi.call/cls_19byte.c: Likewise. 4640 * testsuite/libffi.call/cls_1_1byte.c: Likewise. 4641 * testsuite/libffi.call/cls_20byte.c: Likewise. 4642 * testsuite/libffi.call/cls_20byte1.c: Likewise. 4643 * testsuite/libffi.call/cls_24byte.c: Likewise. 4644 * testsuite/libffi.call/cls_2byte.c: Likewise. 4645 * testsuite/libffi.call/cls_3_1byte.c: Likewise. 4646 * testsuite/libffi.call/cls_3byte1.c: Likewise. 4647 * testsuite/libffi.call/cls_3byte2.c: Likewise. 4648 * testsuite/libffi.call/cls_4_1byte.c: Likewise. 4649 * testsuite/libffi.call/cls_4byte.c: Likewise. 4650 * testsuite/libffi.call/cls_5byte.c: Likewise. 4651 * testsuite/libffi.call/cls_64byte.c: Likewise. 4652 * testsuite/libffi.call/cls_6byte.c: Likewise. 4653 * testsuite/libffi.call/cls_7byte.c: Likewise. 4654 * testsuite/libffi.call/cls_8byte.c: Likewise. 4655 * testsuite/libffi.call/cls_9byte1.c: Likewise. 4656 * testsuite/libffi.call/cls_9byte2.c: Likewise. 4657 * testsuite/libffi.call/cls_double.c: Likewise. 4658 * testsuite/libffi.call/cls_float.c: Likewise. 4659 * testsuite/libffi.call/cls_schar.c: Likewise. 4660 * testsuite/libffi.call/cls_sint.c: Likewise. 4661 * testsuite/libffi.call/cls_sshort.c: Likewise. 4662 * testsuite/libffi.call/cls_uchar.c: Likewise. 4663 * testsuite/libffi.call/cls_uint.c: Likewise. 4664 * testsuite/libffi.call/cls_ulonglong.c: Likewise. 4665 * testsuite/libffi.call/cls_ushort.c: Likewise. 4666 * testsuite/libffi.call/nested_struct.c: Likewise. 4667 * testsuite/libffi.call/nested_struct1.c: Likewise. 4668 * testsuite/libffi.call/nested_struct2.c: Likewise. 4669 * testsuite/libffi.call/nested_struct3.c: Likewise. 4670 * testsuite/libffi.call/problem1.c: Likewise. 4671 * testsuite/libffi.special/unwindtest.cc: Likewise. 4672 46732003-11-20 Andreas Tobler <a.tobler@schweiz.ch> 4674 4675 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional. 4676 46772003-11-19 Andreas Tobler <a.tobler@schweiz.ch> 4678 4679 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin. 4680 Add -lgcc_s to additional flags. 4681 46822003-11-12 Andreas Tobler <a.tobler@schweiz.ch> 4683 4684 * configure.in, include/Makefile.am: PR libgcj/11147, install 4685 the ffitarget.h header file in a gcc versioned and target 4686 dependent place. 4687 * configure: Regenerated. 4688 * Makefile.in, include/Makefile.in: Likewise. 4689 * testsuite/Makefile.in: Likewise. 4690 46912003-11-09 Andreas Tobler <a.tobler@schweiz.ch> 4692 4693 * testsuite/libffi.call/closure_fn0.c: Print result and check 4694 with dg-output to make debugging easier. 4695 * testsuite/libffi.call/closure_fn1.c: Likewise. 4696 * testsuite/libffi.call/closure_fn2.c: Likewise. 4697 * testsuite/libffi.call/closure_fn3.c: Likewise. 4698 * testsuite/libffi.call/closure_fn4.c: Likewise. 4699 * testsuite/libffi.call/closure_fn5.c: Likewise. 4700 * testsuite/libffi.call/cls_12byte.c: Likewise. 4701 * testsuite/libffi.call/cls_16byte.c: Likewise. 4702 * testsuite/libffi.call/cls_18byte.c: Likewise. 4703 * testsuite/libffi.call/cls_19byte.c: Likewise. 4704 * testsuite/libffi.call/cls_1_1byte.c: Likewise. 4705 * testsuite/libffi.call/cls_20byte.c: Likewise. 4706 * testsuite/libffi.call/cls_20byte1.c: Likewise. 4707 * testsuite/libffi.call/cls_24byte.c: Likewise. 4708 * testsuite/libffi.call/cls_2byte.c: Likewise. 4709 * testsuite/libffi.call/cls_3_1byte.c: Likewise. 4710 * testsuite/libffi.call/cls_3byte1.c: Likewise. 4711 * testsuite/libffi.call/cls_3byte2.c: Likewise. 4712 * testsuite/libffi.call/cls_4_1byte.c: Likewise. 4713 * testsuite/libffi.call/cls_4byte.c: Likewise. 4714 * testsuite/libffi.call/cls_5byte.c: Likewise. 4715 * testsuite/libffi.call/cls_64byte.c: Likewise. 4716 * testsuite/libffi.call/cls_6byte.c: Likewise. 4717 * testsuite/libffi.call/cls_7byte.c: Likewise. 4718 * testsuite/libffi.call/cls_8byte.c: Likewise. 4719 * testsuite/libffi.call/cls_9byte1.c: Likewise. 4720 * testsuite/libffi.call/cls_9byte2.c: Likewise. 4721 * testsuite/libffi.call/cls_double.c: Likewise. 4722 * testsuite/libffi.call/cls_float.c: Likewise. 4723 * testsuite/libffi.call/cls_schar.c: Likewise. 4724 * testsuite/libffi.call/cls_sint.c: Likewise. 4725 * testsuite/libffi.call/cls_sshort.c: Likewise. 4726 * testsuite/libffi.call/cls_uchar.c: Likewise. 4727 * testsuite/libffi.call/cls_uint.c: Likewise. 4728 * testsuite/libffi.call/cls_ulonglong.c: Likewise. 4729 * testsuite/libffi.call/cls_ushort.c: Likewise. 4730 * testsuite/libffi.call/problem1.c: Likewise. 4731 4732 * testsuite/libffi.special/unwindtest.cc: Make ffi_closure 4733 static. 4734 47352003-11-08 Andreas Tobler <a.tobler@schweiz.ch> 4736 4737 * testsuite/libffi.call/cls_9byte2.c: New test case. 4738 * testsuite/libffi.call/cls_9byte1.c: Likewise. 4739 * testsuite/libffi.call/cls_64byte.c: Likewise. 4740 * testsuite/libffi.call/cls_20byte1.c: Likewise. 4741 * testsuite/libffi.call/cls_19byte.c: Likewise. 4742 * testsuite/libffi.call/cls_18byte.c: Likewise. 4743 * testsuite/libffi.call/closure_fn4.c: Likewise. 4744 * testsuite/libffi.call/closure_fn5.c: Likewise. 4745 * testsuite/libffi.call/cls_schar.c: Likewise. 4746 * testsuite/libffi.call/cls_sint.c: Likewise. 4747 * testsuite/libffi.call/cls_sshort.c: Likewise. 4748 * testsuite/libffi.call/nested_struct2.c: Likewise. 4749 * testsuite/libffi.call/nested_struct3.c: Likewise. 4750 47512003-11-08 Andreas Tobler <a.tobler@schweiz.ch> 4752 4753 * testsuite/libffi.call/cls_double.c: Do a check on the result. 4754 * testsuite/libffi.call/cls_uchar.c: Likewise. 4755 * testsuite/libffi.call/cls_uint.c: Likewise. 4756 * testsuite/libffi.call/cls_ulonglong.c: Likewise. 4757 * testsuite/libffi.call/cls_ushort.c: Likewise. 4758 * testsuite/libffi.call/return_sc.c: Cleanup whitespaces. 4759 47602003-11-06 Andreas Tobler <a.tobler@schweiz.ch> 4761 4762 * src/prep_cif.c (ffi_prep_cif): Move the validity check after 4763 the initialization. 4764 47652003-10-23 Andreas Tobler <a.tobler@schweiz.ch> 4766 4767 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace 4768 FFI_ASSERT(FALSE) with FFI_ASSERT(0). 4769 47702003-10-22 David Daney <ddaney@avtrex.com> 4771 4772 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with 4773 __attribute__((__mode__(__SI__))) and friends. 4774 47752003-10-22 Andreas Schwab <schwab@suse.de> 4776 4777 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true. 4778 47792003-10-21 Andreas Tobler <a.tobler@schweiz.ch> 4780 4781 * configure.in: AC_LINK_FILES(ffitarget.h). 4782 * configure: Regenerate. 4783 * Makefile.in: Likewise. 4784 * include/Makefile.in: Likewise. 4785 * testsuite/Makefile.in: Likewise. 4786 * fficonfig.h.in: Likewise. 4787 47882003-10-21 Paolo Bonzini <bonzini@gnu.org> 4789 Richard Henderson <rth@redhat.com> 4790 4791 Avoid that ffi.h includes fficonfig.h. 4792 4793 * Makefile.am (EXTRA_DIST): Include ffitarget.h files 4794 (TARGET_SRC_MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX. 4795 (TARGET_SRC_MIPS_SGI): Removed. 4796 (MIPS_GCC): Renamed to TARGET_SRC_MIPS_IRIX. 4797 (MIPS_SGI): Removed. 4798 (CLEANFILES): Removed. 4799 (mostlyclean-am, clean-am, mostlyclean-sub, clean-sub): New 4800 targets. 4801 * acconfig.h: Removed. 4802 * configure.in: Compute sizeofs only for double and long double. 4803 Use them to define and subst HAVE_LONG_DOUBLE. Include comments 4804 into AC_DEFINE instead of using acconfig.h. Create 4805 include/ffitarget.h instead of include/fficonfig.h. Rename 4806 MIPS_GCC to MIPS_IRIX, drop MIPS_SGI since we are in gcc's tree. 4807 AC_DEFINE EH_FRAME_FLAGS. 4808 * include/Makefile.am (DISTCLEANFILES): New automake macro. 4809 (hack_DATA): Add ffitarget.h. 4810 * include/ffi.h.in: Remove all system specific definitions. 4811 Declare raw API even if it is not installed, why bother? 4812 Use limits.h instead of SIZEOF_* to define ffi_type_*. Do 4813 not define EH_FRAME_FLAGS, it is in fficonfig.h now. Include 4814 ffitarget.h instead of fficonfig.h. Remove ALIGN macro. 4815 (UINT_ARG, INT_ARG): Removed, use ffi_arg and ffi_sarg instead. 4816 * include/ffi_common.h (bool): Do not define. 4817 (ffi_assert): Accept failed assertion. 4818 (ffi_type_test): Return void and accept file/line. 4819 (FFI_ASSERT): Pass stringized failed assertion. 4820 (FFI_ASSERT_AT): New macro. 4821 (FFI_ASSERT_VALID_TYPE): New macro. 4822 (UINT8, SINT8, UINT16, SINT16, UINT32, SINT32, 4823 UINT64, SINT64): Define here with gcc's __attribute__ macro 4824 instead of in ffi.h 4825 (FLOAT32, ALIGN): Define here instead of in ffi.h 4826 * include/ffi-mips.h: Removed. Its content moved to 4827 src/mips/ffitarget.h after separating assembly and C sections. 4828 * src/alpha/ffi.c, src/alpha/ffi.c, src/java_raw_api.c 4829 src/prep_cif.c, src/raw_api.c, src/ia64/ffi.c, 4830 src/mips/ffi.c, src/mips/n32.S, src/mips/o32.S, 4831 src/mips/ffitarget.h, src/sparc/ffi.c, src/x86/ffi64.c: 4832 SIZEOF_ARG -> FFI_SIZEOF_ARG. 4833 * src/ia64/ffi.c: Include stdbool.h (provided by GCC 2.95+). 4834 * src/debug.c (ffi_assert): Accept stringized failed assertion. 4835 (ffi_type_test): Rewritten. 4836 * src/prep-cif.c (initialize_aggregate, ffi_prep_cif): Call 4837 FFI_ASSERT_VALID_TYPE. 4838 * src/alpha/ffitarget.h, src/arm/ffitarget.h, 4839 src/ia64/ffitarget.h, src/m68k/ffitarget.h, 4840 src/mips/ffitarget.h, src/powerpc/ffitarget.h, 4841 src/s390/ffitarget.h, src/sh/ffitarget.h, 4842 src/sh64/ffitarget.h, src/sparc/ffitarget.h, 4843 src/x86/ffitarget.h: New files. 4844 * src/alpha/osf.S, src/arm/sysv.S, src/ia64/unix.S, 4845 src/m68k/sysv.S, src/mips/n32.S, src/mips/o32.S, 4846 src/powerpc/aix.S, src/powerpc/darwin.S, 4847 src/powerpc/ffi_darwin.c, src/powerpc/linux64.S, 4848 src/powerpc/linux64_closure.S, src/powerpc/ppc_closure.S, 4849 src/powerpc/sysv.S, src/s390/sysv.S, src/sh/sysv.S, 4850 src/sh64/sysv.S, src/sparc/v8.S, src/sparc/v9.S, 4851 src/x86/sysv.S, src/x86/unix64.S, src/x86/win32.S: 4852 include fficonfig.h 4853 48542003-10-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 4855 4856 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external 4857 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32. 4858 48592003-10-19 Andreas Tobler <a.tobler@schweiz.ch> 4860 4861 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again. 4862 Used when FFI_DEBUG = 1. 4863 48642003-10-14 Alan Modra <amodra@bigpond.net.au> 4865 4866 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size 4867 and align. 4868 48692003-10-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 4870 4871 * include/ffi_mips.h: Define FFI_MIPS_N32 for N32/N64 ABIs, 4872 FFI_MIPS_O32 for O32 ABI. 4873 48742003-10-01 Andreas Tobler <a.tobler@schweiz.ch> 4875 4876 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for 4877 SPARC64. Cleanup whitespaces. 4878 48792003-09-19 Andreas Tobler <a.tobler@schweiz.ch> 4880 4881 * testsuite/libffi.call/closure_fn0.c: Xfail mips, arm, 4882 strongarm, xscale. Cleanup whitespaces. 4883 * testsuite/libffi.call/closure_fn1.c: Likewise. 4884 * testsuite/libffi.call/closure_fn2.c: Likewise. 4885 * testsuite/libffi.call/closure_fn3.c: Likewise. 4886 * testsuite/libffi.call/cls_12byte.c: Likewise. 4887 * testsuite/libffi.call/cls_16byte.c: Likewise. 4888 * testsuite/libffi.call/cls_1_1byte.c: Likewise. 4889 * testsuite/libffi.call/cls_20byte.c: Likewise. 4890 * testsuite/libffi.call/cls_24byte.c: Likewise. 4891 * testsuite/libffi.call/cls_2byte.c: Likewise. 4892 * testsuite/libffi.call/cls_3_1byte.c: Likewise. 4893 * testsuite/libffi.call/cls_3byte1.c: Likewise. 4894 * testsuite/libffi.call/cls_3byte2.c: Likewise. 4895 * testsuite/libffi.call/cls_4_1byte.c: Likewise. 4896 * testsuite/libffi.call/cls_4byte.c: Likewise. 4897 * testsuite/libffi.call/cls_5byte.c: Likewise. 4898 * testsuite/libffi.call/cls_6byte.c: Likewise. 4899 * testsuite/libffi.call/cls_7byte.c: Likewise. 4900 * testsuite/libffi.call/cls_8byte.c: Likewise. 4901 * testsuite/libffi.call/cls_double.c: Likewise. 4902 * testsuite/libffi.call/cls_float.c: Likewise. 4903 * testsuite/libffi.call/cls_uchar.c: Likewise. 4904 * testsuite/libffi.call/cls_uint.c: Likewise. 4905 * testsuite/libffi.call/cls_ulonglong.c: Likewise. 4906 * testsuite/libffi.call/cls_ushort.c: Likewise. 4907 * testsuite/libffi.call/nested_struct.c: Likewise. 4908 * testsuite/libffi.call/nested_struct1.c: Likewise. 4909 * testsuite/libffi.call/problem1.c: Likewise. 4910 * testsuite/libffi.special/unwindtest.cc: Likewise. 4911 * testsuite/libffi.call/pyobjc-tc.c: Cleanup whitespaces. 4912 49132003-09-18 David Edelsohn <edelsohn@gnu.org> 4914 4915 * src/powerpc/aix.S: Cleanup whitespaces. 4916 * src/powerpc/aix_closure.S: Likewise. 4917 49182003-09-18 Andreas Tobler <a.tobler@schweiz.ch> 4919 4920 * src/powerpc/darwin.S: Cleanup whitespaces, comment formatting. 4921 * src/powerpc/darwin_closure.S: Likewise. 4922 * src/powerpc/ffi_darwin.c: Likewise. 4923 49242003-09-18 Andreas Tobler <a.tobler@schweiz.ch> 4925 David Edelsohn <edelsohn@gnu.org> 4926 4927 * src/types.c (double): Add AIX and Darwin to the right TYPEDEF. 4928 * src/powerpc/aix_closure.S: Remove the pointer to the outgoing 4929 parameter stack. 4930 * src/powerpc/darwin_closure.S: Likewise. 4931 * src/powerpc/ffi_darwin.c (ffi_prep_args): Handle structures 4932 according to the Darwin/AIX ABI. 4933 (ffi_prep_cif_machdep): Likewise. 4934 (ffi_closure_helper_DARWIN): Likewise. 4935 Remove the outgoing parameter stack logic. Simplify the evaluation 4936 of the different CASE types. 4937 (ffi_prep_clousure): Avoid the casts on lvalues. Change the branch 4938 statement in the trampoline code. 4939 49402003-09-18 Kaz Kojima <kkojima@gcc.gnu.org> 4941 4942 * src/sh/ffi.c (ffi_prep_args): Take account into the alignement 4943 for the register size. 4944 (ffi_closure_helper_SYSV): Handle the structure return value 4945 address correctly. 4946 (ffi_closure_helper_SYSV): Return the appropriate type when 4947 the registers are used for the structure return value. 4948 * src/sh/sysv.S (ffi_closure_SYSV): Fix the stack layout for 4949 the 64-bit return value. Update copyright years. 4950 49512003-09-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 4952 4953 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in 4954 srcdir for ffi_mips.h. 4955 49562003-09-12 Alan Modra <amodra@bigpond.net.au> 4957 4958 * src/prep_cif.c (initialize_aggregate): Include tail padding in 4959 structure size. 4960 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Correct 4961 placement of float result. 4962 * testsuite/libffi.special/unwindtest.cc (closure_test_fn1): Correct 4963 cast of "resp" for big-endian 64 bit machines. 4964 49652003-09-11 Alan Modra <amodra@bigpond.net.au> 4966 4967 * src/types.c (double, longdouble): Merge identical SH and ARM 4968 typedefs, and add POWERPC64. 4969 * src/powerpc/ffi.c (ffi_prep_args64): Correct next_arg calc for 4970 struct split over gpr and rest. 4971 (ffi_prep_cif_machdep): Correct intarg_count for structures. 4972 * src/powerpc/linux64.S (ffi_call_LINUX64): Fix gpr offsets. 4973 49742003-09-09 Andreas Tobler <a.tobler@schweiz.ch> 4975 4976 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct 4977 passing correctly. 4978 49792003-09-09 Alan Modra <amodra@bigpond.net.au> 4980 4981 * configure: Regenerate. 4982 49832003-09-04 Andreas Tobler <a.tobler@schweiz.ch> 4984 4985 * Makefile.am: Remove build rules for ffitest. 4986 * Makefile.in: Rebuilt. 4987 49882003-09-04 Andreas Tobler <a.tobler@schweiz.ch> 4989 4990 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning 4991 about implicit declaration of abort(). 4992 49932003-09-04 Andreas Tobler <a.tobler@schweiz.ch> 4994 4995 * Makefile.am: Add dejagnu test framework. Fixes PR other/11411. 4996 * Makefile.in: Rebuilt. 4997 * configure.in: Add dejagnu test framework. 4998 * configure: Rebuilt. 4999 5000 * testsuite/Makefile.am: New file. 5001 * testsuite/Makefile.in: Built 5002 * testsuite/lib/libffi-dg.exp: New file. 5003 * testsuite/config/default.exp: Likewise. 5004 * testsuite/libffi.call/call.exp: Likewise. 5005 * testsuite/libffi.call/ffitest.h: Likewise. 5006 * testsuite/libffi.call/closure_fn0.c: Likewise. 5007 * testsuite/libffi.call/closure_fn1.c: Likewise. 5008 * testsuite/libffi.call/closure_fn2.c: Likewise. 5009 * testsuite/libffi.call/closure_fn3.c: Likewise. 5010 * testsuite/libffi.call/cls_1_1byte.c: Likewise. 5011 * testsuite/libffi.call/cls_3_1byte.c: Likewise. 5012 * testsuite/libffi.call/cls_4_1byte.c: Likewise. 5013 * testsuite/libffi.call/cls_2byte.c: Likewise. 5014 * testsuite/libffi.call/cls_3byte1.c: Likewise. 5015 * testsuite/libffi.call/cls_3byte2.c: Likewise. 5016 * testsuite/libffi.call/cls_4byte.c: Likewise. 5017 * testsuite/libffi.call/cls_5byte.c: Likewise. 5018 * testsuite/libffi.call/cls_6byte.c: Likewise. 5019 * testsuite/libffi.call/cls_7byte.c: Likewise. 5020 * testsuite/libffi.call/cls_8byte.c: Likewise. 5021 * testsuite/libffi.call/cls_12byte.c: Likewise. 5022 * testsuite/libffi.call/cls_16byte.c: Likewise. 5023 * testsuite/libffi.call/cls_20byte.c: Likewise. 5024 * testsuite/libffi.call/cls_24byte.c: Likewise. 5025 * testsuite/libffi.call/cls_double.c: Likewise. 5026 * testsuite/libffi.call/cls_float.c: Likewise. 5027 * testsuite/libffi.call/cls_uchar.c: Likewise. 5028 * testsuite/libffi.call/cls_uint.c: Likewise. 5029 * testsuite/libffi.call/cls_ulonglong.c: Likewise. 5030 * testsuite/libffi.call/cls_ushort.c: Likewise. 5031 * testsuite/libffi.call/float.c: Likewise. 5032 * testsuite/libffi.call/float1.c: Likewise. 5033 * testsuite/libffi.call/float2.c: Likewise. 5034 * testsuite/libffi.call/many.c: Likewise. 5035 * testsuite/libffi.call/many_win32.c: Likewise. 5036 * testsuite/libffi.call/nested_struct.c: Likewise. 5037 * testsuite/libffi.call/nested_struct1.c: Likewise. 5038 * testsuite/libffi.call/pyobjc-tc.c: Likewise. 5039 * testsuite/libffi.call/problem1.c: Likewise. 5040 * testsuite/libffi.call/promotion.c: Likewise. 5041 * testsuite/libffi.call/return_ll.c: Likewise. 5042 * testsuite/libffi.call/return_sc.c: Likewise. 5043 * testsuite/libffi.call/return_uc.c: Likewise. 5044 * testsuite/libffi.call/strlen.c: Likewise. 5045 * testsuite/libffi.call/strlen_win32.c: Likewise. 5046 * testsuite/libffi.call/struct1.c: Likewise. 5047 * testsuite/libffi.call/struct2.c: Likewise. 5048 * testsuite/libffi.call/struct3.c: Likewise. 5049 * testsuite/libffi.call/struct4.c: Likewise. 5050 * testsuite/libffi.call/struct5.c: Likewise. 5051 * testsuite/libffi.call/struct6.c: Likewise. 5052 * testsuite/libffi.call/struct7.c: Likewise. 5053 * testsuite/libffi.call/struct8.c: Likewise. 5054 * testsuite/libffi.call/struct9.c: Likewise. 5055 * testsuite/libffi.special/special.exp: New file. 5056 * testsuite/libffi.special/ffitestcxx.h: Likewise. 5057 * testsuite/libffi.special/unwindtest.cc: Likewise. 5058 5059 50602003-08-13 Kaz Kojima <kkojima@gcc.gnu.org> 5061 5062 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update 5063 copyright years. 5064 50652003-08-02 Alan Modra <amodra@bigpond.net.au> 5066 5067 * src/powerpc/ffi.c (ffi_prep_args64): Modify for changed gcc 5068 structure passing. 5069 (ffi_closure_helper_LINUX64): Likewise. 5070 * src/powerpc/linux64.S: Remove code writing to parm save area. 5071 * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Use return 5072 address in lr from ffi_closure_helper_LINUX64 call to calculate 5073 table address. Optimize function tail. 5074 50752003-07-28 Andreas Tobler <a.tobler@schweiz.ch> 5076 5077 * src/sparc/ffi.c: Handle all floating point registers. 5078 * src/sparc/v9.S: Likewise. Fixes second part of PR target/11410. 5079 50802003-07-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 5081 5082 * README: Note that libffi is not part of GCC. Update the project 5083 URL and status. 5084 50852003-06-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 5086 5087 * src/powerpc/ppc_closure.S: Include ffi.h. 5088 50892003-06-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 5090 5091 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives. 5092 Use C style comments. 5093 50942003-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp> 5095 5096 * Makefile.am: Add SHmedia support. Fix a typo of SH support. 5097 * Makefile.in: Regenerate. 5098 * configure.in (sh64-*-linux*, sh5*-*-linux*): Add target. 5099 * configure: Regenerate. 5100 * include/ffi.h.in: Add SHmedia support. 5101 * src/sh64/ffi.c: New file. 5102 * src/sh64/sysv.S: New file. 5103 51042003-05-16 Jakub Jelinek <jakub@redhat.com> 5105 5106 * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section 5107 should be read-only. 5108 * configure: Rebuilt. 5109 * fficonfig.h.in: Rebuilt. 5110 * include/ffi.h.in (EH_FRAME_FLAGS): Define. 5111 * src/alpha/osf.S: Use EH_FRAME_FLAGS. 5112 * src/powerpc/linux64.S: Likewise. 5113 * src/powerpc/linux64_closure.S: Likewise. Include ffi.h. 5114 * src/powerpc/sysv.S: Use EH_FRAME_FLAGS. Use pcrel encoding 5115 if -fpic/-fPIC/-mrelocatable. 5116 * src/powerpc/powerpc_closure.S: Likewise. 5117 * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include 5118 #write in .eh_frame flags. 5119 * src/sparc/v9.S: Likewise. 5120 * src/x86/unix64.S: Use EH_FRAME_FLAGS. 5121 * src/x86/sysv.S: Likewise. Use pcrel encoding if -fpic/-fPIC. 5122 * src/s390/sysv.S: Use EH_FRAME_FLAGS. Include ffi.h. 5123 51242003-05-07 Jeff Sturm <jsturm@one-point.com> 5125 5126 Fixes PR bootstrap/10656 5127 * configure.in (HAVE_AS_REGISTER_PSEUDO_OP): Test assembler 5128 support for .register pseudo-op. 5129 * src/sparc/v8.S: Use it. 5130 * fficonfig.h.in: Rebuilt. 5131 * configure: Rebuilt. 5132 51332003-04-18 Jakub Jelinek <jakub@redhat.com> 5134 5135 * include/ffi.h.in (POWERPC64): Define if 64-bit. 5136 (enum ffi_abi): Add FFI_LINUX64 on POWERPC. 5137 Make it the default on POWERPC64. 5138 (FFI_TRAMPOLINE_SIZE): Define to 24 on POWERPC64. 5139 * configure.in: Change powerpc-*-linux* into powerpc*-*-linux*. 5140 * configure: Rebuilt. 5141 * src/powerpc/ffi.c (hidden): Define. 5142 (ffi_prep_args_SYSV): Renamed from 5143 ffi_prep_args. Cast pointers to unsigned long to shut up warnings. 5144 (NUM_GPR_ARG_REGISTERS64, NUM_FPR_ARG_REGISTERS64, 5145 ASM_NEEDS_REGISTERS64): New. 5146 (ffi_prep_args64): New function. 5147 (ffi_prep_cif_machdep): Handle FFI_LINUX64 ABI. 5148 (ffi_call): Likewise. 5149 (ffi_prep_closure): Likewise. 5150 (flush_icache): Surround by #ifndef POWERPC64. 5151 (ffi_dblfl): New union type. 5152 (ffi_closure_helper_SYSV): Use it to avoid aliasing problems. 5153 (ffi_closure_helper_LINUX64): New function. 5154 * src/powerpc/ppc_closure.S: Surround whole file by #ifndef 5155 __powerpc64__. 5156 * src/powerpc/sysv.S: Likewise. 5157 (ffi_call_SYSV): Rename ffi_prep_args to ffi_prep_args_SYSV. 5158 * src/powerpc/linux64.S: New file. 5159 * src/powerpc/linux64_closure.S: New file. 5160 * Makefile.am (EXTRA_DIST): Add src/powerpc/linux64.S and 5161 src/powerpc/linux64_closure.S. 5162 (TARGET_SRC_POWERPC): Likewise. 5163 5164 * src/ffitest.c (closure_test_fn, closure_test_fn1, closure_test_fn2, 5165 closure_test_fn3): Fix result printing on big-endian 64-bit 5166 machines. 5167 (main): Print tst2_arg instead of uninitialized tst2_result. 5168 5169 * src/ffitest.c (main): Hide what closure pointer really points to 5170 from the compiler. 5171 51722003-04-16 Richard Earnshaw <rearnsha@arm.com> 5173 5174 * configure.in (arm-*-netbsdelf*): Add configuration. 5175 (configure): Regenerated. 5176 51772003-04-04 Loren J. Rittle <ljrittle@acm.org> 5178 5179 * include/Makefile.in: Regenerate. 5180 51812003-03-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 5182 5183 * libffi/include/ffi.h.in: Define X86 instead of X86_64 in 32 5184 bit mode. 5185 * libffi/src/x86/ffi.c (ffi_closure_SYSV, ffi_closure_raw_SYSV): 5186 Receive closure pointer through parameter, read args using 5187 __builtin_dwarf_cfa. 5188 (FFI_INIT_TRAMPOLINE): Send closure reference through eax. 5189 51902003-03-12 Andreas Schwab <schwab@suse.de> 5191 5192 * configure.in: Avoid trailing /. in toolexeclibdir. 5193 * configure: Rebuilt. 5194 51952003-03-03 Andreas Tobler <a.tobler@schweiz.ch> 5196 5197 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries. 5198 51992003-02-06 Andreas Tobler <a.tobler@schweiz.ch> 5200 5201 * libffi/src/powerpc/darwin_closure.S: 5202 Fix alignement bug, allocate 8 bytes for the result. 5203 * libffi/src/powerpc/aix_closure.S: 5204 Likewise. 5205 * libffi/src/powerpc/ffi_darwin.c: 5206 Update stackframe description for aix/darwin_closure.S. 5207 52082003-02-06 Jakub Jelinek <jakub@redhat.com> 5209 5210 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility 5211 attribute. 5212 52132003-01-31 Christian Cornelssen <ccorn@cs.tu-berlin.de>, 5214 Andreas Schwab <schwab@suse.de> 5215 5216 * configure.in: Adjust command to source config-ml.in to account 5217 for changes to the libffi_basedir definition. 5218 (libffi_basedir): Remove ${srcdir} from value and include trailing 5219 slash if nonempty. 5220 5221 * configure: Regenerate. 5222 52232003-01-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 5224 5225 * src/powerpc/ppc_closure.S: Recode to fit shared libs. 5226 52272003-01-28 Andrew Haley <aph@redhat.com> 5228 5229 * include/ffi.h.in: Enable FFI_CLOSURES for x86_64. 5230 * src/x86/ffi64.c (ffi_prep_closure): New. 5231 (ffi_closure_UNIX64_inner): New. 5232 * src/x86/unix64.S (ffi_closure_UNIX64): New. 5233 52342003-01-27 Alexandre Oliva <aoliva@redhat.com> 5235 5236 * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST. 5237 Remove USE_LIBDIR conditional. 5238 * Makefile.am (toolexecdir, toolexeclibdir): Don't override. 5239 * Makefile.in, configure: Rebuilt. 5240 52412003-01027 David Edelsohn <edelsohn@gnu.org> 5242 5243 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo. 5244 * Makefile.in: Regenerate. 5245 52462003-01-22 Andrew Haley <aph@redhat.com> 5247 5248 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to 5249 unwind info. 5250 52512003-01-21 Andreas Tobler <a.tobler@schweiz.ch> 5252 5253 * src/powerpc/darwin.S: Add unwind info. 5254 * src/powerpc/darwin_closure.S: Likewise. 5255 52562003-01-14 Andrew Haley <aph@redhat.com> 5257 5258 * src/x86/ffi64.c (ffi_prep_args): Check for void retval. 5259 (ffi_prep_cif_machdep): Likewise. 5260 * src/x86/unix64.S: Add unwind info. 5261 52622003-01-14 Andreas Jaeger <aj@suse.de> 5263 5264 * src/ffitest.c (main): Only use ffi_closures if those are 5265 supported. 5266 52672003-01-13 Andreas Tobler <a.tobler@schweiz.ch> 5268 5269 * libffi/src/ffitest.c 5270 add closure testcases 5271 52722003-01-13 Kevin B. Hendricks <khendricks@ivey.uwo.ca> 5273 5274 * libffi/src/powerpc/ffi.c 5275 fix alignment bug for float (4 byte aligned iso 8 byte) 5276 52772003-01-09 Geoffrey Keating <geoffk@apple.com> 5278 5279 * src/powerpc/ffi_darwin.c: Remove RCS version string. 5280 * src/powerpc/darwin.S: Remove RCS version string. 5281 52822003-01-03 Jeff Sturm <jsturm@one-point.com> 5283 5284 * include/ffi.h.in: Add closure defines for SPARC, SPARC64. 5285 * src/ffitest.c (main): Use static storage for closure. 5286 * src/sparc/ffi.c (ffi_prep_closure, ffi_closure_sparc_inner): New. 5287 * src/sparc/v8.S (ffi_closure_v8): New. 5288 * src/sparc/v9.S (ffi_closure_v9): New. 5289 52902002-11-10 Ranjit Mathew <rmathew@hotmail.com> 5291 5292 * include/ffi.h.in: Added FFI_STDCALL ffi_type 5293 enumeration for X86_WIN32. 5294 * src/x86/win32.S: Added ffi_call_STDCALL function 5295 definition. 5296 * src/x86/ffi.c (ffi_call/ffi_raw_call): Added 5297 switch cases for recognising FFI_STDCALL and 5298 calling ffi_call_STDCALL if target is X86_WIN32. 5299 * src/ffitest.c (my_stdcall_strlen/stdcall_many): 5300 stdcall versions of the "my_strlen" and "many" 5301 test functions (for X86_WIN32). 5302 Added test cases to test stdcall invocation using 5303 these functions. 5304 53052002-12-02 Kaz Kojima <kkojima@gcc.gnu.org> 5306 5307 * src/sh/sysv.S: Add DWARF2 unwind info. 5308 53092002-11-27 Ulrich Weigand <uweigand@de.ibm.com> 5310 5311 * src/s390/sysv.S (.eh_frame section): Make section read-only. 5312 53132002-11-26 Jim Wilson <wilson@redhat.com> 5314 5315 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64. 5316 53172002-11-23 H.J. Lu <hjl@gnu.org> 5318 5319 * acinclude.m4: Add dummy AM_PROG_LIBTOOL. 5320 Include ../config/accross.m4. 5321 * aclocal.m4; Rebuild. 5322 * configure: Likewise. 5323 53242002-11-15 Ulrich Weigand <uweigand@de.ibm.com> 5325 5326 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding. 5327 53282002-11-11 DJ Delorie <dj@redhat.com> 5329 5330 * configure.in: Look for common files in the right place. 5331 53322002-10-08 Ulrich Weigand <uweigand@de.ibm.com> 5333 5334 * src/java_raw_api.c (ffi_java_raw_to_ptrarray): Interpret 5335 raw data as _Jv_word values, not ffi_raw. 5336 (ffi_java_ptrarray_to_raw): Likewise. 5337 (ffi_java_rvalue_to_raw): New function. 5338 (ffi_java_raw_call): Call it. 5339 (ffi_java_raw_to_rvalue): New function. 5340 (ffi_java_translate_args): Call it. 5341 * src/ffitest.c (closure_test_fn): Interpret return value 5342 as ffi_arg, not int. 5343 * src/s390/ffi.c (ffi_prep_cif_machdep): Add missing 5344 FFI_TYPE_POINTER case. 5345 (ffi_closure_helper_SYSV): Likewise. Also, assume return 5346 values extended to word size. 5347 53482002-10-02 Andreas Jaeger <aj@suse.de> 5349 5350 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output. 5351 53522002-10-01 Bo Thorsen <bo@smetana.suse.de> 5353 5354 * include/ffi.h.in: Fix i386 win32 compilation. 5355 53562002-09-30 Ulrich Weigand <uweigand@de.ibm.com> 5357 5358 * configure.in: Add s390x-*-linux-* target. 5359 * configure: Regenerate. 5360 * include/ffi.h.in: Define S390X for s390x targets. 5361 (FFI_CLOSURES): Define for s390/s390x. 5362 (FFI_TRAMPOLINE_SIZE): Likewise. 5363 (FFI_NATIVE_RAW_API): Likewise. 5364 * src/prep_cif.c (ffi_prep_cif): Do not compute stack space for s390. 5365 * src/types.c (FFI_TYPE_POINTER): Use 8-byte pointers on s390x. 5366 * src/s390/ffi.c: Major rework of existing code. Add support for 5367 s390x targets. Add closure support. 5368 * src/s390/sysv.S: Likewise. 5369 53702002-09-29 Richard Earnshaw <rearnsha@arm.com> 5371 5372 * src/arm/sysv.S: Fix typo. 5373 53742002-09-28 Richard Earnshaw <rearnsha@arm.com> 5375 5376 * src/arm/sysv.S: If we don't have machine/asm.h and the pre-processor 5377 has defined __USER_LABEL_PREFIX__, then use it in CNAME. 5378 (ffi_call_SYSV): Handle soft-float. 5379 53802002-09-27 Bo Thorsen <bo@suse.de> 5381 5382 * include/ffi.h.in: Fix multilib x86-64 support. 5383 53842002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5385 5386 * Makefile.am (all-multi): Fix multilib parallel build. 5387 53882002-07-19 Kaz Kojima <kkojima@gcc.gnu.org> 5389 5390 * configure.in (sh[34]*-*-linux*): Add brackets. 5391 * configure: Regenerate. 5392 53932002-07-18 Kaz Kojima <kkojima@gcc.gnu.org> 5394 5395 * Makefile.am: Add SH support. 5396 * Makefile.in: Regenerate. 5397 * configure.in (sh-*-linux*, sh[34]*-*-linux*): Add target. 5398 * configure: Regenerate. 5399 * include/ffi.h.in: Add SH support. 5400 * src/sh/ffi.c: New file. 5401 * src/sh/sysv.S: New file. 5402 * src/types.c: Add SH support. 5403 54042002-07-16 Bo Thorsen <bo@suse.de> 5405 5406 * src/x86/ffi64.c: New file that adds x86-64 support. 5407 * src/x86/unix64.S: New file that handles argument setup for 5408 x86-64. 5409 * src/x86/sysv.S: Don't use this on x86-64. 5410 * src/x86/ffi.c: Don't use this on x86-64. 5411 Remove unused vars. 5412 * src/prep_cif.c (ffi_prep_cif): Don't do stack size calculation 5413 for x86-64. 5414 * src/ffitest.c (struct6): New test that tests a special case in 5415 the x86-64 ABI. 5416 (struct7): Likewise. 5417 (struct8): Likewise. 5418 (struct9): Likewise. 5419 (closure_test_fn): Silence warning about this when it's not used. 5420 (main): Add the new tests. 5421 (main): Fix a couple of wrong casts and silence some compiler warnings. 5422 * include/ffi.h.in: Add x86-64 ABI definition. 5423 * fficonfig.h.in: Regenerate. 5424 * Makefile.am: Add x86-64 support. 5425 * configure.in: Likewise. 5426 * Makefile.in: Regenerate. 5427 * configure: Likewise. 5428 54292002-06-24 Bo Thorsen <bo@suse.de> 5430 5431 * src/types.c: Merge settings for similar architectures. 5432 Add x86-64 sizes and alignments. 5433 54342002-06-23 Bo Thorsen <bo@suse.de> 5435 5436 * src/arm/ffi.c (ffi_prep_args): Remove unused vars. 5437 * src/sparc/ffi.c (ffi_prep_args_v8): Likewise. 5438 * src/mips/ffi.c (ffi_prep_args): Likewise. 5439 * src/m68k/ffi.c (ffi_prep_args): Likewise. 5440 54412002-07-18 H.J. Lu (hjl@gnu.org) 5442 5443 * Makefile.am (TARGET_SRC_MIPS_LINUX): New. 5444 (libffi_la_SOURCES): Support MIPS_LINUX. 5445 (libffi_convenience_la_SOURCES): Likewise. 5446 * Makefile.in: Regenerated. 5447 5448 * configure.in (mips64*-*): Skip. 5449 (mips*-*-linux*): New. 5450 * configure: Regenerated. 5451 5452 * src/mips/ffi.c: Include <sgidefs.h>. 5453 54542002-06-06 Ulrich Weigand <uweigand@de.ibm.com> 5455 5456 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info. 5457 54582002-05-27 Roger Sayle <roger@eyesopen.com> 5459 5460 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn. 5461 54622002-05-27 Bo Thorsen <bo@suse.de> 5463 5464 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and 5465 fix formatting. 5466 54672002-05-13 Andreas Tobler <a.tobler@schweiz.ch> 5468 5469 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at 5470 beginning of function (for older apple cc). 5471 54722002-05-08 Alexandre Oliva <aoliva@redhat.com> 5473 5474 * configure.in (ORIGINAL_LD_FOR_MULTILIBS): Preserve LD at 5475 script entry, and set LD to it when configuring multilibs. 5476 * configure: Rebuilt. 5477 54782002-05-05 Jason Thorpe <thorpej@wasabisystems.com> 5479 5480 * configure.in (sparc64-*-netbsd*): Add target. 5481 (sparc-*-netbsdelf*): Likewise. 5482 * configure: Regenerate. 5483 54842002-04-28 David S. Miller <davem@redhat.com> 5485 5486 * configure.in, configure: Fix SPARC test in previous change. 5487 54882002-04-29 Gerhard Tonn <GerhardTonn@swol.de> 5489 5490 * Makefile.am: Add Linux for S/390 support. 5491 * Makefile.in: Regenerate. 5492 * configure.in: Add Linux for S/390 support. 5493 * configure: Regenerate. 5494 * include/ffi.h.in: Add Linux for S/390 support. 5495 * src/s390/ffi.c: New file from libffi CVS tree. 5496 * src/s390/sysv.S: New file from libffi CVS tree. 5497 54982002-04-28 Jakub Jelinek <jakub@redhat.com> 5499 5500 * configure.in (HAVE_AS_SPARC_UA_PCREL): Check for working 5501 %r_disp32(). 5502 * src/sparc/v8.S: Use it. 5503 * src/sparc/v9.S: Likewise. 5504 * fficonfig.h.in: Rebuilt. 5505 * configure: Rebuilt. 5506 55072002-04-08 Hans Boehm <Hans_Boehm@hp.com> 5508 5509 * src/java_raw_api.c (ffi_java_raw_size): Handle FFI_TYPE_DOUBLE 5510 correctly. 5511 * src/ia64/unix.S: Add unwind information. Fix comments. 5512 Save sp in a way that's compatible with unwind info. 5513 (ffi_call_unix): Correctly restore sp in all cases. 5514 * src/ia64/ffi.c: Add, fix comments. 5515 55162002-04-08 Jakub Jelinek <jakub@redhat.com> 5517 5518 * src/sparc/v8.S: Make .eh_frame dependent on target word size. 5519 55202002-04-06 Jason Thorpe <thorpej@wasabisystems.com> 5521 5522 * configure.in (alpha*-*-netbsd*): Add target. 5523 * configure: Regenerate. 5524 55252002-04-04 Jeff Sturm <jsturm@one-point.com> 5526 5527 * src/sparc/v8.S: Add unwind info. 5528 * src/sparc/v9.S: Likewise. 5529 55302002-03-30 Krister Walfridsson <cato@df.lth.se> 5531 5532 * configure.in: Enable i*86-*-netbsdelf*. 5533 * configure: Rebuilt. 5534 55352002-03-29 David Billinghurst <David.Billinghurst@riotinto.com> 5536 5537 PR other/2620 5538 * src/mips/n32.s: Delete 5539 * src/mips/o32.s: Delete 5540 55412002-03-21 Loren J. Rittle <ljrittle@acm.org> 5542 5543 * configure.in: Enable alpha*-*-freebsd*. 5544 * configure: Rebuilt. 5545 55462002-03-17 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 5547 5548 * Makefile.am: libfficonvenience -> libffi_convenience. 5549 * Makefile.in: Rebuilt. 5550 5551 * Makefile.am: Define ffitest_OBJECTS. 5552 * Makefile.in: Rebuilt. 5553 55542002-03-07 Andreas Tobler <toa@pop.agri.ch> 5555 David Edelsohn <edelsohn@gnu.org> 5556 5557 * Makefile.am (EXTRA_DIST): Add Darwin and AIX closure files. 5558 (TARGET_SRC_POWERPC_AIX): Add aix_closure.S. 5559 (TARGET_SRC_POWERPC_DARWIN): Add darwin_closure.S. 5560 * Makefile.in: Regenerate. 5561 * include/ffi.h.in: Add AIX and Darwin closure definitions. 5562 * src/powerpc/ffi_darwin.c (ffi_prep_closure): New function. 5563 (flush_icache, flush_range): New functions. 5564 (ffi_closure_helper_DARWIN): New function. 5565 * src/powerpc/aix_closure.S: New file. 5566 * src/powerpc/darwin_closure.S: New file. 5567 55682002-02-24 Jeff Sturm <jsturm@one-point.com> 5569 5570 * include/ffi.h.in: Add typedef for ffi_arg. 5571 * src/ffitest.c (main): Declare rint with ffi_arg. 5572 55732002-02-21 Andreas Tobler <toa@pop.agri.ch> 5574 5575 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate 5576 number of GPRs for floating-point arguments. 5577 55782002-01-31 Anthony Green <green@redhat.com> 5579 5580 * configure: Rebuilt. 5581 * configure.in: Replace CHECK_SIZEOF and endian tests with 5582 cross-compiler friendly macros. 5583 * aclocal.m4 (AC_COMPILE_CHECK_SIZEOF, AC_C_BIGENDIAN_CROSS): New 5584 macros. 5585 55862002-01-18 David Edelsohn <edelsohn@gnu.org> 5587 5588 * src/powerpc/darwin.S (_ffi_call_AIX): New. 5589 * src/powerpc/aix.S (ffi_call_DARWIN): New. 5590 55912002-01-17 David Edelsohn <edelsohn@gnu.org> 5592 5593 * Makefile.am (EXTRA_DIST): Add Darwin and AIX files. 5594 (TARGET_SRC_POWERPC_AIX): New. 5595 (POWERPC_AIX): New stanza. 5596 * Makefile.in: Regenerate. 5597 * configure.in: Add AIX case. 5598 * configure: Regenerate. 5599 * include/ffi.h.in (ffi_abi): Add FFI_AIX. 5600 * src/powerpc/ffi_darwin.c (ffi_status): Use "long" to scale frame 5601 size. Fix "long double" support. 5602 (ffi_call): Add FFI_AIX case. 5603 * src/powerpc/aix.S: New. 5604 56052001-10-09 John Hornkvist <john@toastedmarshmallow.com> 5606 5607 Implement Darwin PowerPC ABI. 5608 * configure.in: Handle powerpc-*-darwin*. 5609 * Makefile.am: Set source files for POWERPC_DARWIN. 5610 * configure: Rebuilt. 5611 * Makefile.in: Rebuilt. 5612 * include/ffi.h.in: Define FFI_DARWIN and FFI_DEFAULT_ABI for 5613 POWERPC_DARWIN. 5614 * src/powerpc/darwin.S: New file. 5615 * src/powerpc/ffi_darwin.c: New file. 5616 56172001-10-07 Joseph S. Myers <jsm28@cam.ac.uk> 5618 5619 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate". 5620 56212001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 5622 5623 * src/x86/sysv.S: Avoid gas-only .balign directive. 5624 Use C style comments. 5625 56262001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 5627 5628 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic. 5629 Fixes PR bootstrap/3563. 5630 56312001-06-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 5632 5633 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF. 5634 56352001-06-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 5636 5637 * configure.in: Recognize sparc*-sun-* host. 5638 * configure: Regenerate. 5639 56402001-06-06 Andrew Haley <aph@redhat.com> 5641 5642 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF. 5643 56442001-06-03 Andrew Haley <aph@redhat.com> 5645 5646 * src/alpha/osf.S: Add unwind info. 5647 * src/powerpc/sysv.S: Add unwind info. 5648 * src/powerpc/ppc_closure.S: Likewise. 5649 56502000-05-31 Jeff Sturm <jsturm@one-point.com> 5651 5652 * configure.in: Fix AC_ARG_ENABLE usage. 5653 * configure: Rebuilt. 5654 56552001-05-06 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 5656 5657 * configure.in: Remove warning about beta code. 5658 * configure: Rebuilt. 5659 56602001-04-25 Hans Boehm <Hans_Boehm@hp.com> 5661 5662 * src/ia64/unix.S: Restore stack pointer when returning from 5663 ffi_closure_UNIX. 5664 * src/ia64/ffi.c: Fix typo in comment. 5665 56662001-04-18 Jim Wilson <wilson@redhat.com> 5667 5668 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2 5669 to eliminate RAW DV. 5670 56712001-04-12 Bryce McKinlay <bryce@albatross.co.nz> 5672 5673 * Makefile.am: Make a libtool convenience library. 5674 * Makefile.in: Rebuilt. 5675 56762001-03-29 Bryce McKinlay <bryce@albatross.co.nz> 5677 5678 * configure.in: Use different syntax for subdirectory creation. 5679 * configure: Rebuilt. 5680 56812001-03-27 Jon Beniston <jon@beniston.com> 5682 5683 * configure.in: Added X86_WIN32 target (Win32, CygWin, MingW). 5684 * configure: Rebuilt. 5685 * Makefile.am: Added X86_WIN32 target support. 5686 * Makefile.in: Rebuilt. 5687 5688 * include/ffi.h.in: Added X86_WIN32 target support. 5689 5690 * src/ffitest.c: Doesn't run structure tests for X86_WIN32 targets. 5691 * src/types.c: Added X86_WIN32 target support. 5692 5693 * src/x86/win32.S: New file. Based on sysv.S, but with EH 5694 stuff removed and made to work with CygWin's gas. 5695 56962001-03-26 Bryce McKinlay <bryce@albatross.co.nz> 5697 5698 * configure.in: Make target subdirectory in build dir. 5699 * Makefile.am: Override suffix based rules to specify correct output 5700 subdirectory. 5701 * Makefile.in: Rebuilt. 5702 * configure: Rebuilt. 5703 57042001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca> 5705 5706 * src/powerpc/ppc_closure.S: New file. 5707 * src/powerpc/ffi.c (ffi_prep_args): Fixed ABI compatibility bug 5708 involving long long and register pairs. 5709 (ffi_prep_closure): New function. 5710 (flush_icache): Likewise. 5711 (ffi_closure_helper_SYSV): Likewise. 5712 * include/ffi.h.in (FFI_CLOSURES): Define on PPC. 5713 (FFI_TRAMPOLINE_SIZE): Likewise. 5714 (FFI_NATIVE_RAW_API): Likewise. 5715 * Makefile.in: Rebuilt. 5716 * Makefile.am (EXTRA_DIST): Added src/powerpc/ppc_closure.S. 5717 (TARGET_SRC_POWERPC): Likewise. 5718 57192001-03-19 Tom Tromey <tromey@redhat.com> 5720 5721 * Makefile.in: Rebuilt. 5722 * Makefile.am (ffitest_LDFLAGS): New macro. 5723 57242001-03-02 Nick Clifton <nickc@redhat.com> 5725 5726 * include/ffi.h.in: Remove RCS ident string. 5727 * include/ffi_mips.h: Remove RCS ident string. 5728 * src/debug.c: Remove RCS ident string. 5729 * src/ffitest.c: Remove RCS ident string. 5730 * src/prep_cif.c: Remove RCS ident string. 5731 * src/types.c: Remove RCS ident string. 5732 * src/alpha/ffi.c: Remove RCS ident string. 5733 * src/alpha/osf.S: Remove RCS ident string. 5734 * src/arm/ffi.c: Remove RCS ident string. 5735 * src/arm/sysv.S: Remove RCS ident string. 5736 * src/mips/ffi.c: Remove RCS ident string. 5737 * src/mips/n32.S: Remove RCS ident string. 5738 * src/mips/o32.S: Remove RCS ident string. 5739 * src/sparc/ffi.c: Remove RCS ident string. 5740 * src/sparc/v8.S: Remove RCS ident string. 5741 * src/sparc/v9.S: Remove RCS ident string. 5742 * src/x86/ffi.c: Remove RCS ident string. 5743 * src/x86/sysv.S: Remove RCS ident string. 5744 57452001-02-08 Joseph S. Myers <jsm28@cam.ac.uk> 5746 5747 * include/ffi.h.in: Change sourceware.cygnus.com references to 5748 gcc.gnu.org. 5749 57502000-12-09 Richard Henderson <rth@redhat.com> 5751 5752 * src/alpha/ffi.c (ffi_call): Simplify struct return test. 5753 (ffi_closure_osf_inner): Index rather than increment avalue 5754 and arg_types. Give ffi_closure_osf the raw return value type. 5755 * src/alpha/osf.S (ffi_closure_osf): Handle return value type 5756 promotion. 5757 57582000-12-07 Richard Henderson <rth@redhat.com> 5759 5760 * src/raw_api.c (ffi_translate_args): Fix typo. 5761 (ffi_prep_closure): Likewise. 5762 5763 * include/ffi.h.in [ALPHA]: Define FFI_CLOSURES and 5764 FFI_TRAMPOLINE_SIZE. 5765 * src/alpha/ffi.c (ffi_prep_cif_machdep): Adjust minimal 5766 cif->bytes for new ffi_call_osf implementation. 5767 (ffi_prep_args): Absorb into ... 5768 (ffi_call): ... here. Do all stack allocation here and 5769 avoid a callback function. 5770 (ffi_prep_closure, ffi_closure_osf_inner): New. 5771 * src/alpha/osf.S (ffi_call_osf): Reimplement with no callback. 5772 (ffi_closure_osf): New. 5773 57742000-09-10 Alexandre Oliva <aoliva@redhat.com> 5775 5776 * config.guess, config.sub, install-sh: Removed. 5777 * ltconfig, ltmain.sh, missing, mkinstalldirs: Likewise. 5778 * Makefile.in: Rebuilt. 5779 5780 * acinclude.m4: Include libtool macros from the top level. 5781 * aclocal.m4, configure: Rebuilt. 5782 57832000-08-22 Alexandre Oliva <aoliva@redhat.com> 5784 5785 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set. 5786 * configure: Rebuilt. 5787 57882000-05-11 Scott Bambrough <scottb@netwinder.org> 5789 5790 * libffi/src/arm/sysv.S (ffi_call_SYSV): Doubles are not saved to 5791 memory correctly. Use conditional instructions, not branches where 5792 possible. 5793 57942000-05-04 Tom Tromey <tromey@cygnus.com> 5795 5796 * configure: Rebuilt. 5797 * configure.in: Match `arm*-*-linux-*'. 5798 From Chris Dornan <cdornan@arm.com>. 5799 58002000-04-28 Jakub Jelinek <jakub@redhat.com> 5801 5802 * Makefile.am (SUBDIRS): Define. 5803 (AM_MAKEFLAGS): Likewise. 5804 (Multilib support.): Add section. 5805 * Makefile.in: Rebuilt. 5806 * ltconfig (extra_compiler_flags, extra_compiler_flags_value): 5807 New variables. Set for gcc using -print-multi-lib. Export them 5808 to libtool. 5809 (sparc64-*-linux-gnu*): Use libsuff 64 for search paths. 5810 * ltmain.sh (B|b|V): Don't throw away gcc's -B, -b and -V options 5811 for -shared links. 5812 (extra_compiler_flags_value, extra_compiler_flags): Check these 5813 for extra compiler options which need to be passed down in 5814 compiler_flags. 5815 58162000-04-16 Anthony Green <green@redhat.com> 5817 5818 * configure: Rebuilt. 5819 * configure.in: Change i*86-pc-linux* to i*86-*-linux*. 5820 58212000-04-14 Jakub Jelinek <jakub@redhat.com> 5822 5823 * include/ffi.h.in (SPARC64): Define for 64bit SPARC builds. 5824 Set SPARC FFI_DEFAULT_ABI based on SPARC64 define. 5825 * src/sparc/ffi.c (ffi_prep_args_v8): Renamed from ffi_prep_args. 5826 Replace all void * sizeofs with sizeof(int). 5827 Only compare type with FFI_TYPE_LONGDOUBLE if LONGDOUBLE is 5828 different than DOUBLE. 5829 Remove FFI_TYPE_SINT32 and FFI_TYPE_UINT32 cases (handled elsewhere). 5830 (ffi_prep_args_v9): New function. 5831 (ffi_prep_cif_machdep): Handle V9 ABI and long long on V8. 5832 (ffi_V9_return_struct): New function. 5833 (ffi_call): Handle FFI_V9 ABI from 64bit code and FFI_V8 ABI from 5834 32bit code (not yet cross-arch calls). 5835 * src/sparc/v8.S: Add struct return delay nop. 5836 Handle long long. 5837 * src/sparc/v9.S: New file. 5838 * src/prep_cif.c (ffi_prep_cif): Return structure pointer 5839 is used on sparc64 only for structures larger than 32 bytes. 5840 Pass by reference for structures is done for structure arguments 5841 larger than 16 bytes. 5842 * src/ffitest.c (main): Use 64bit rint on sparc64. 5843 Run long long tests on sparc. 5844 * src/types.c (FFI_TYPE_POINTER): Pointer is 64bit on alpha and 5845 sparc64. 5846 (FFI_TYPE_LONGDOUBLE): long double is 128 bit aligned to 128 bits 5847 on sparc64. 5848 * configure.in (sparc-*-linux*): New supported target. 5849 (sparc64-*-linux*): Likewise. 5850 * configure: Rebuilt. 5851 * Makefile.am: Add v9.S to SPARC files. 5852 * Makefile.in: Likewise. 5853 (LINK): Surround $(CCLD) into double quotes, so that multilib 5854 compiles work correctly. 5855 58562000-04-04 Alexandre Petit-Bianco <apbianco@cygnus.com> 5857 5858 * configure: Rebuilt. 5859 * configure.in: (i*86-*-solaris*): New libffi target. Patch 5860 proposed by Bryce McKinlay. 5861 58622000-03-20 Tom Tromey <tromey@cygnus.com> 5863 5864 * Makefile.in: Hand edit for java_raw_api.lo. 5865 58662000-03-08 Bryce McKinlay <bryce@albatross.co.nz> 5867 5868 * config.guess, config.sub: Update from the gcc tree. 5869 Fix for PR libgcj/168. 5870 58712000-03-03 Tom Tromey <tromey@cygnus.com> 5872 5873 * Makefile.in: Fixed ia64 by hand. 5874 5875 * configure: Rebuilt. 5876 * configure.in (--enable-multilib): New option. 5877 (libffi_basedir): New subst. 5878 (AC_OUTPUT): Added multilib code. 5879 58802000-03-02 Tom Tromey <tromey@cygnus.com> 5881 5882 * Makefile.in: Rebuilt. 5883 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as 5884 directory name. 5885 58862000-02-25 Hans Boehm <boehm@acm.org> 5887 5888 * src/ia64/ffi.c, src/ia64/ia64_flags.h, src/ia64/unix.S: New 5889 files. 5890 * src/raw_api.c (ffi_translate_args): Fixed typo in argument 5891 list. 5892 (ffi_prep_raw_closure): Use ffi_translate_args, not 5893 ffi_closure_translate. 5894 * src/java_raw_api.c: New file. 5895 * src/ffitest.c (closure_test_fn): New function. 5896 (main): Define `rint' as long long on IA64. Added new test when 5897 FFI_CLOSURES is defined. 5898 * include/ffi.h.in (ALIGN): Use size_t, not unsigned. 5899 (ffi_abi): Recognize IA64. 5900 (ffi_raw): Added `flt' field. 5901 Added "Java raw API" code. 5902 * configure.in: Recognize ia64. 5903 * Makefile.am (TARGET_SRC_IA64): New macro. 5904 (libffi_la_common_SOURCES): Added java_raw_api.c. 5905 (libffi_la_SOURCES): Define in IA64 case. 5906 59072000-01-04 Tom Tromey <tromey@cygnus.com> 5908 5909 * Makefile.in: Rebuilt with newer automake. 5910 59111999-12-31 Tom Tromey <tromey@cygnus.com> 5912 5913 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src. 5914 59151999-09-01 Tom Tromey <tromey@cygnus.com> 5916 5917 * include/ffi.h.in: Removed PACKAGE and VERSION defines and 5918 undefs. 5919 * fficonfig.h.in: Rebuilt. 5920 * configure: Rebuilt. 5921 * configure.in: Pass 3rd argument to AM_INIT_AUTOMAKE. 5922 Use AM_PROG_LIBTOOL (automake 1.4 compatibility). 5923 * acconfig.h: Don't #undef PACKAGE or VERSION. 5924 59251999-08-09 Anthony Green <green@cygnus.com> 5926 5927 * include/ffi.h.in: Try to work around messy header problem 5928 with PACKAGE and VERSION. 5929 5930 * configure: Rebuilt. 5931 * configure.in: Change version to 2.00-beta. 5932 5933 * fficonfig.h.in: Rebuilt. 5934 * acconfig.h (FFI_NO_STRUCTS, FFI_NO_RAW_API): Define. 5935 5936 * src/x86/ffi.c (ffi_raw_call): Rename. 5937 59381999-08-02 Kresten Krab Thorup <krab@dominiq.is.s.u-tokyo.ac.jp> 5939 5940 * src/x86/ffi.c (ffi_closure_SYSV): New function. 5941 (ffi_prep_incoming_args_SYSV): Ditto. 5942 (ffi_prep_closure): Ditto. 5943 (ffi_closure_raw_SYSV): Ditto. 5944 (ffi_prep_raw_closure): More ditto. 5945 (ffi_call_raw): Final ditto. 5946 5947 * include/ffi.h.in: Add definitions for closure and raw API. 5948 5949 * src/x86/ffi.c (ffi_prep_cif_machdep): Added case for 5950 FFI_TYPE_UINT64. 5951 5952 * Makefile.am (libffi_la_common_SOURCES): Added raw_api.c 5953 5954 * src/raw_api.c: New file. 5955 5956 * include/ffi.h.in (ffi_raw): New type. 5957 (UINT_ARG, SINT_ARG): New defines. 5958 (ffi_closure, ffi_raw_closure): New types. 5959 (ffi_prep_closure, ffi_prep_raw_closure): New declarations. 5960 5961 * configure.in: Add check for endianness and sizeof void*. 5962 5963 * src/x86/sysv.S (ffi_call_SYSV): Call fixup routine via argument, 5964 instead of directly. 5965 5966 * configure: Rebuilt. 5967 5968Thu Jul 8 14:28:42 1999 Anthony Green <green@cygnus.com> 5969 5970 * configure.in: Add x86 and powerpc BeOS configurations. 5971 From Makoto Kato <m_kato@ga2.so-net.ne.jp>. 5972 59731999-05-09 Anthony Green <green@cygnus.com> 5974 5975 * configure.in: Add warning about this being beta code. 5976 Remove src/Makefile.am from the picture. 5977 * configure: Rebuilt. 5978 5979 * Makefile.am: Move logic from src/Makefile.am. Add changes 5980 to support libffi as a target library. 5981 * Makefile.in: Rebuilt. 5982 5983 * aclocal.m4, config.guess, config.sub, ltconfig, ltmain.sh: 5984 Upgraded to new autoconf, automake, libtool. 5985 5986 * README: Tweaks. 5987 5988 * LICENSE: Update copyright date. 5989 5990 * src/Makefile.am, src/Makefile.in: Removed. 5991 59921998-11-29 Anthony Green <green@cygnus.com> 5993 5994 * include/ChangeLog: Removed. 5995 * src/ChangeLog: Removed. 5996 * src/mips/ChangeLog: Removed. 5997 * src/sparc/ChangeLog: Remboved. 5998 * src/x86/ChangeLog: Removed. 5999 6000 * ChangeLog.v1: Created. 6001