1 2014-03-16 Josh Triplett <josh (a] 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 7 2014-03-16 Josh Triplett <josh (a] 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 43 2014-03-16 Josh Triplett <josh (a] 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 52 2014-03-16 Josh Triplett <josh (a] 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 64 2014-03-16 Josh Triplett <josh (a] 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 70 2014-03-16 Josh Triplett <josh (a] joshtriplett.org> 71 72 * libtool-ldflags: Re-add. 73 74 2014-03-16 Josh Triplett <josh (a] 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 88 2014-03-14 Anthony Green <green (a] moxielogic.com> 89 90 * configure, Makefile.in: Rebuilt. 91 92 2014-03-10 Mike Hommey <mh+mozilla (a] 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 98 2014-03-10 Landry Breuil <landry (a] openbsd.org> 99 100 * configure.ac: Ensure the linker supports @unwind sections in libffi. 101 102 2014-03-01 Anthony Green <green (a] moxielogic.com> 103 104 * Makefile.am (EXTRA_DIST): Replace old scripts with 105 generate-darwin-source-and-headers.py. 106 * Makefile.in: Rebuilt. 107 108 2014-02-28 Anthony Green <green (a] moxielogic.com> 109 110 * Makefile.am (AM_CFLAGS): Reintroduce missing -DFFI_DEBUG for 111 --enable-debug builds. 112 * Makefile.in: Rebuilt. 113 114 2014-02-28 Makoto Kato <m_kato (a] ga2.so-net.ne.jp> 115 116 * src/closures.c: Fix build failure when using clang for Android. 117 118 2014-02-28 Marcin Wojdyr <wojdyr (a] gmail.com> 119 120 * libffi.pc.in (toolexeclibdir): use -L${toolexeclibdir} instead 121 of -L${libdir}. 122 123 2014-02-28 Paulo Pizarro <paulo.pizarro (a] gmail.com> 124 125 * src/bfin/sysv.S: Calling functions in shared libraries requires 126 considering the GOT. 127 128 2014-02-28 Josh Triplett <josh (a] joshtriplett.org> 129 130 * src/x86/ffi64.c (classify_argument): Handle case where 131 FFI_TYPE_LONGDOUBLE == FFI_TYPE_DOUBLE. 132 133 2014-02-28 Anthony Green <green (a] 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 139 2014-02-28 Dominik Vogt <vogt (a] 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 146 2014-02-28 Will Newton <will.newton (a] linaro.org> 147 148 * src/arm/sysv.S: Initialize IP register with FP. 149 150 2014-02-28 Yufeng Zhang <yufeng.zhang (a] arm.com> 151 152 * src/aarch64/sysv.S (ffi_closure_SYSV): Use x29 as the 153 main CFA reg; update cfi_rel_offset. 154 155 2014-02-15 Marcus Comstedt <marcus (a] 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 160 2014-02-09 Heiher <r (a] hev.cc> 161 162 * src/mips/n32.S: Fix call floating point va function. 163 164 2014-01-21 Zachary Waldowski <zach (a] waldowski.me> 165 166 * src/aarch64/ffi.c: Fix missing semicolons on assertions under 167 debug mode. 168 169 2013-12-30 Zachary Waldowski <zach (a] 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 193 2013-12-02 Daniel Rodrguez Troitio <drodrigueztroitino (a] yahoo.es> 194 195 * generate-darwin-source-and-headers.py: Clean up, modernize, 196 merged version of previous scripts. 197 198 2013-11-21 Anthony Green <green (a] 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 203 2013-11-21 Alan Modra <amodra (a] 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 228 2013-11-20 Alan Modra <amodra (a] 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 236 2013-11-18 Iain Sandoe <iain (a] 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 242 2013-11-18 Anthony Green <green (a] 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 (a] krypto.org>. 249 250 2013-11-18 Anthony Green <green (a] moxielogic.com> 251 252 * README (tested): Mention PowerPC ELFv2. 253 254 2013-11-16 Alan Modra <amodra (a] gmail.com> 255 256 * src/powerpc/ppc_closure.S: Move errant #endif to where it belongs. 257 Don't bl .Luint128. 258 259 2013-11-16 Alan Modra <amodra (a] 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 288 2013-11-16 Alan Modra <amodra (a] 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 298 2013-11-16 Alan Modra <amodra (a] 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 305 2013-11-16 Alan Modra <amodra (a] 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 314 2013-11-16 Alan Modra <amodra (a] 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 331 2013-11-15 Andrew Haley <aph (a] 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 336 2013-11-15 Andrew Haley <aph (a] 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 343 2013-11-14 David Schneider <david.schneider (a] 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 350 2013-11-13 Alan Modra <amodra (a] gmail.com> 351 352 * doc/libffi.texi (Simple Example): Correct example code. 353 * doc/libffi.info, doc/stamp-vti, doc/version.texi: Rebuilt. 354 355 2013-11-13 Anthony Green <green (a] moxielogic.com> 356 357 * include/ffi_common.h: Respect HAVE_ALLOCA_H for GNU compiler 358 based build. (Thanks to tmr111116 on github) 359 360 2013-11-09 Anthony Green <green (a] moxielogic.com> 361 362 * m4/libtool.m4: Refresh. 363 * configure, Makefile.in: Rebuilt. 364 * README: Add more notes about next release. 365 366 2013-11-09 Shigeharu TAKENO <shige (a] iee.niit.ac.jp> 367 368 * m4/ax_gcc_archflag.m4 (ax_gcc_arch): Don't recognize 369 UltraSPARC-IIi as ultrasparc3. 370 371 2013-11-06 Mark Kettenis <kettenis (a] gnu.org> 372 373 * src/x86/freebsd.S (ffi_call_SYSV): Align the stack pointer to 374 16-bytes. 375 376 2013-11-06 Konstantin Belousov <kib (a] freebsd.org> 377 378 * src/x86/freebsd.S (ffi_closure_raw_SYSV): Mark the assembler 379 source as not requiring executable stack. 380 381 2013-11-02 Anthony Green <green (a] 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 388 2013-11-02 Mischa Jonker <mjonker (a] synopsys.com> 389 390 * Makefile.am (nodist_libffi_la_SOURCES): Fix build error. 391 * Makefile.in: Rebuilt. 392 393 2013-11-02 David Schneider <david.schneider (a] 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 399 2013-11-02 Vitaly Budovski 400 401 * src/x86/ffi.c (ffi_prep_cif_machdep): Don't align stack for win32. 402 403 2013-10-23 Mark H Weaver <mhw (a] netris.org> 404 405 * src/mips/ffi.c: Fix handling of uint32_t arguments on the 406 MIPS N32 ABI. 407 408 2013-10-13 Sandra Loosemore <sandra (a] 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 424 2013-10-10 Sandra Loosemore <sandra (a] codesourcery.com> 425 426 * testsuite/libffi.call/cls_many_mixed_args.c (cls_ret_double_fn): 427 Fix uninitialized variable. 428 429 2013-10-11 Marcus Shawcroft <marcus.shawcroft (a] arm.com> 430 431 * testsuite/libffi.call/many.c (many): Replace * with +. 432 433 2013-10-08 Ondej Blka <neleai (a] 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 443 2013-10-08 Anthony Green <green (a] 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 452 2013-07-15 Miod Vallat <miod (a] 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 463 2013-06-24 Alan Modra <amodra (a] 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 472 2013-06-12 Mischa Jonker <mjonker (a] 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 481 2013-03-28 David Schneider <david.schneider (a] 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 492 2013-03-17 Anthony Green <green (a] moxielogic.com> 493 494 * README: Update for 3.0.13. 495 * configure.ac: Ditto. 496 * configure: Rebuilt. 497 * doc/*: Update version. 498 499 2013-03-17 Dave Korn <dave.korn.cygwin (a] 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 505 2013-03-17 Anthony Green <green (a] moxielogic.com> 506 507 * configure.ac: Only modify toolexecdir in certain cases. 508 * configure: Rebuilt. 509 510 2013-03-16 Gilles Talis <gilles.talis (a] gmail.com> 511 512 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Don't use 513 fparg_count,etc on __NO_FPRS__ targets. 514 515 2013-03-16 Alan Hourihane <alanh (a] fairlite.co.uk> 516 517 * src/m68k/sysv.S (epilogue): Don't use extb instruction on 518 m680000 machines. 519 520 2013-03-16 Alex Gaynor <alex.gaynor (a] gmail.com> 521 522 * src/x86/ffi.c (ffi_prep_cif_machdep): Always align stack. 523 524 2013-03-13 Markos Chandras <markos.chandras (a] 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 533 2013-02-24 Andreas Schwab <schwab (a] linux-m68k.org> 534 535 * doc/libffi.texi (Structures): Fix missing category argument of 536 @deftp. 537 538 2013-02-11 Anthony Green <green (a] moxielogic.com> 539 540 * configure.ac: Update release number to 3.0.12. 541 * configure: Rebuilt. 542 * README: Update release info. 543 544 2013-02-10 Anthony Green <green (a] 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 557 2013-02-10 Anthony Green <green (a] moxielogic.com> 558 559 * Makefile.am (LTLDFLAGS): Fix reference. 560 * Makefile.in: Rebuilt. 561 562 2013-02-10 Anthony Green <green (a] moxielogic.com> 563 564 * README: Update supported platforms. Update test results link. 565 566 2013-02-09 Anthony Green <green (a] 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. Lwis for cpython 574 fork. 575 576 2013-02-08 Andreas Tobler <andreast (a] fgznet.ch> 577 578 * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix small struct 579 support. 580 * src/powerpc/sysv.S: Ditto. 581 582 2013-02-08 Anthony Green <green (a] moxielogic.com> 583 584 * testsuite/libffi.call/cls_longdouble.c: Remove xfail for 585 arm*-*-*. 586 587 2013-02-08 Anthony Green <green (a] moxielogic.com> 588 589 * src/sparc/ffi.c (ffi_prep_closure_loc): Fix cache flushing for GCC. 590 591 2013-02-08 Matthias Klose <doko (a] ubuntu.com> 592 593 * man/ffi_prep_cif.3: Clean up for debian linter. 594 595 2013-02-08 Peter Bergner <bergner (a] vnet.ibm.com> 596 597 * src/powerpc/ffi.c (ffi_prep_args_SYSV): Account for FP args pushed 598 on the stack. 599 600 2013-02-08 Anthony Green <green (a] moxielogic.com> 601 602 * Makefile.am (EXTRA_DIST): Add missing files. 603 * testsuite/Makefile.am (EXTRA_DIST): Ditto. 604 * Makefile.in: Rebuilt. 605 606 2013-02-08 Anthony Green <green (a] 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 616 2013-02-08 Nathan Rossi <nathan.rossi (a] 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 622 2013-02-07 Anthony Green <green (a] moxielogic.com> 623 624 * src/sparc/v8.S (ffi_call_v8): Fix typo from last patch 625 (effectively hiding ffi_call_v8). 626 627 2013-02-07 Anthony Green <green (a] 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 642 2013-02-07 Daniel Schepler <dschepler (a] 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 648 2013-02-07 Anthony Green <green (a] 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 655 2013-02-07 Anthony Green <green (a] 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 669 2013-02-06 Anthony Green <green (a] moxielogic.com> 670 671 * man/ffi_prep_cif.3: Clean up for debian lintian checker. 672 673 2013-02-06 Anthony Green <green (a] moxielogic.com> 674 675 * Makefile.am (pkgconfigdir): Add missing pkgconfig install bits. 676 * Makefile.in: Rebuild. 677 678 2013-02-02 Mark H Weaver <mhw (a] netris.org> 679 680 * src/x86/ffi64.c (ffi_call): Sign-extend integer arguments passed 681 via general purpose registers. 682 683 2013-01-21 Nathan Rossi <nathan.rossi (a] 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 692 2013-01-21 Nathan Rossi <nathan.rossi (a] xilinx.com> 693 * testsuite/libffi.call/return_uc.c: Fixed issue. 694 695 2013-01-21 Chris Zankel <chris (a] 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 708 2013-01-11 Anthony Green <green (a] 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 718 2013-01-11 Anthony Green <green (a] 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 726 2013-01-10 Anthony Green <green (a] moxielogic.com> 727 728 * README (tested): Add Compiler column to table. 729 730 2013-01-10 Anthony Green <green (a] moxielogic.com> 731 732 * src/x86/ffi64.c (struct register_args): Make sse array and array 733 of unions for sunpro compiler compatibility. 734 735 2013-01-10 Anthony Green <green (a] 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 742 2013-01-10 Anthony Green <green (a] 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 752 2013-01-10 Anthony Green <green (a] moxielogic.com> 753 754 * include/ffi_common.h: Don't use GCCisms to define types when 755 building with the SUNPRO compiler. 756 757 2013-01-10 Anthony Green <green (a] 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 767 2013-01-08 Anthony Green <green (a] 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 781 2013-01-08 Anthony Green <green (a] moxielogic.com> 782 783 * configure.ac: Switch x86 solaris target to X86 by default. 784 * configure: Rebuilt. 785 786 2013-01-08 Anthony Green <green (a] moxielogic.com> 787 788 * configure.ac: Fix test for read-only eh_frame. 789 * configure: Rebuilt. 790 791 2013-01-08 Anthony Green <green (a] 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 798 2013-01-07 Thorsten Glaser <tg (a] 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 804 2013-01-07 Thorsten Glaser <tg (a] 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 810 2013-01-04 Anthony Green <green (a] 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 817 2013-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 822 2013-01-02 Reini Urban <rurban (a] 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 828 2012-10-31 Alan Modra <amodra (a] gmail.co> 829 830 * src/powerpc/linux64_closure.S: Add new ABI support. 831 * src/powerpc/linux64.S: Likewise. 832 833 2012-10-30 Magnus Granberg <zorry (a] gentoo.org> 834 Pavel Labushev <pavel.labushev (a] 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 841 2012-10-30 Frederick Cheung <frederick.cheung (a] gmail.com> 842 843 * configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain 844 lion) and future version. 845 * configure: Rebuild. 846 847 2012-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 858 2012-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 874 2012-10-12 Walter Lee <walt (a] 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 886 2012-10-12 Matthias Klose <doko (a] ubuntu.com> 887 888 * generate-osx-source-and-headers.py: Normalize whitespace. 889 890 2012-09-14 David Edelsohn <dje.gcc (a] gmail.com> 891 892 * configure: Regenerated. 893 894 2012-08-26 Andrew Pinski <apinski (a] 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 900 2012-08-08 Uros Bizjak <ubizjak (a] 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 905 2012-07-18 H.J. Lu <hongjiu.lu (a] 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 912 2012-05-16 H.J. Lu <hongjiu.lu (a] intel.com> 913 914 * configure: Regenerated. 915 916 2012-05-05 Nicolas Lelong 917 918 * libffi.xcodeproj/project.pbxproj: Fixes. 919 * README: Update for iOS builds. 920 921 2012-04-23 Alexandre Keunecke I. de Mendonca <alexandre.keunecke (a] 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 928 2012-04-11 Anthony Green <green (a] moxielogic.com> 929 930 * Makefile.am (EXTRA_DIST): Add new script. 931 * Makefile.in: Rebuilt. 932 933 2012-04-11 Zachary Waldowski <zwaldowski (a] 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 941 2012-04-10 Anthony Green <green (a] moxielogic.com> 942 943 * src/powerpc/ffi_darwin.c (ffi_prep_args): Add missing semicolon. 944 945 2012-04-06 Anthony Green <green (a] moxielogic.com> 946 947 * Makefile.am (EXTRA_DIST): Add new iOS/xcode files. 948 * Makefile.in: Rebuilt. 949 950 2012-04-06 Mike Lewis <mikelikespie (a] 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 957 2012-04-06 Anthony Green <green (a] moxielogic.com> 958 959 * src/x86/ffi64.c (UINT128): Define differently for Intel and GNU 960 compilers, then use it. 961 962 2012-04-06 H.J. Lu <hongjiu.lu (a] intel.com> 963 964 * m4/libtool.m4 (_LT_ENABLE_LOCK): Support x32. 965 966 2012-04-06 Anthony Green <green (a] moxielogic.com> 967 968 * testsuite/Makefile.am (EXTRA_DIST): Add missing test cases. 969 * testsuite/Makefile.in: Rebuilt. 970 971 2012-04-05 Zachary Waldowski <zwaldowski (a] 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 978 2012-04-02 Peter Bergner <bergner (a] 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 986 2012-04-02 Peter Rosin <peda (a] 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 994 2012-03-29 Peter Rosin <peda (a] 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 1000 2012-03-29 Peter Rosin <peda (a] 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 1006 2012-03-23 Peter Rosin <peda (a] 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 1013 2012-03-29 Peter Rosin <peda (a] 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 1032 2012-03-22 Peter Rosin <peda (a] 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 1038 2012-03-23 Peter Rosin <peda (a] 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 1050 2012-03-22 Peter Rosin <peda (a] 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 1055 2012-03-22 Peter Rosin <peda (a] lysator.liu.se> 1056 1057 * testsuite/libffi.call/ffitest.h [MSVC]: Add kludge for missing 1058 bits in the MSVC headers. 1059 1060 2012-03-22 Peter Rosin <peda (a] 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 1131 2012-03-21 Peter Rosin <peda (a] 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 1137 2012-03-21 Peter Rosin <peda (a] 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 1144 2012-03-21 Peter Rosin <peda (a] 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 1151 2012-03-20 Peter Rosin <peda (a] 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 1157 2012-03-20 Peter Rosin <peda (a] 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 1163 2012-03-19 Alan Hourihane <alanh (a] fairlite.co.uk> 1164 1165 * src/m68k/ffi.c: Add MINT support. 1166 * src/m68k/sysv.S: Ditto. 1167 1168 2012-03-06 Chung-Lin Tang <cltang (a] 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 1176 2012-03-19 chennam <csit (a] axway.com> 1177 1178 * src/powerpc/ffi_darwin.c (ffi_prep_closure_loc): Fix AIX closure 1179 support. 1180 1181 2012-03-13 Kaz Kojima <kkojima (a] 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 1187 2012-03-09 David Edelsohn <dje.gcc (a] 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 1193 2012-03-03 H.J. Lu <hongjiu.lu (a] 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 1205 2012-03-03 H.J. Lu <hongjiu.lu (a] intel.com> 1206 1207 * src/prep_cif.c (ffi_prep_cif_core): Properly check bad ABI. 1208 1209 2012-03-03 Andoni Morales Alastruey <ylatuya (a] gmail.com> 1210 1211 * configure.ac: Add -no-undefined for both 32- and 64-bit x86 1212 windows-like hosts. 1213 * configure: Rebuilt. 1214 1215 2012-02-27 Mikael Pettersson <mikpe (a] it.uu.se> 1216 1217 PR libffi/52223 1218 * Makefile.am (FLAGS_TO_PASS): Define. 1219 * Makefile.in: Regenerate. 1220 1221 2012-02-23 Anthony Green <green (a] moxielogic.com> 1222 1223 * src/*/ffitarget.h: Ensure that users never include ffitarget.h 1224 directly. 1225 1226 2012-02-23 Kai Tietz <ktietz (a] 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 1237 2012-02-10 Kai Tietz <ktietz (a] redhat.com> 1238 1239 * configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64 1240 windows target. 1241 * configure: Regenerated. 1242 1243 2012-02-08 Kai Tietz <ktietz (a] 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 1255 2012-01-28 Kai Tietz <ktietz (a] 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 1274 2012-01-23 Uros Bizjak <ubizjak (a] gmail.com> 1275 1276 * src/alpha/ffi.c (ffi_prep_closure_loc): Check for bad ABI. 1277 1278 2012-01-23 Anthony Green <green (a] moxielogic.com> 1279 Chris Young <cdyoung (a] ntlworld.com> 1280 1281 * configure.ac: Add Amiga support. 1282 * configure: Rebuilt. 1283 1284 2012-01-23 Dmitry Nadezhin <dmitry.nadezhin (a] gmail.com> 1285 1286 * include/ffi_common.h (LIKELY, UNLIKELY): Fix definitions. 1287 1288 2012-01-23 Andreas Schwab <schwab (a] 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 1293 2012-01-19 Jakub Jelinek <jakub (a] redhat.com> 1294 1295 PR rtl-optimization/48496 1296 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations. 1297 1298 2012-01-09 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE> 1299 1300 * configure.ac (i?86-*-*): Set TARGET to X86_64. 1301 * configure: Regenerate. 1302 1303 2011-12-07 Andrew Pinski <apinski (a] cavium.com> 1304 1305 PR libffi/50051 1306 * src/mips/n32.S: Add ".set mips4". 1307 1308 2011-11-21 Andreas Tobler <andreast (a] fgznet.ch> 1309 1310 * configure: Regenerate. 1311 1312 2011-11-12 David Gilbert <david.gilbert (a] 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 1323 2011-11-12 Kyle Moffett <Kyle.D.Moffett (a] 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 1329 2011-11-12 Petr Salinger <Petr.Salinger (a] seznam.cz> 1330 1331 * configure.ac (FFI_EXEC_TRAMPOLINE_TABLE): Fix kfreebsd support. 1332 * configure: Rebuilt. 1333 1334 2011-11-12 Timothy Wall <twall (a] 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 1339 2011-11-12 Kyle Moffett <Kyle.D.Moffett (a] boeing.com> 1340 Anthony Green <green (a] 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 1345 2011-11-12 Kimura Wataru <kimuraw (a] 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 1353 2011-11-12 Anthony Green <green (a] moxielogic.com> 1354 1355 * Makefile.am (AM_CCASFLAGS): Add -g option to build assembly 1356 files with debug info. 1357 * Makefile.in: Rebuilt. 1358 1359 2011-11-12 Jasper Lievisse Adriaanse <jasper (a] openbsd.org> 1360 1361 * README: Update list of supported OpenBSD systems. 1362 1363 2011-11-12 Anthony Green <green (a] 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 1373 2011-11-10 Richard Henderson <rth (a] redhat.com> 1374 1375 * configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check. 1376 * configure, aclocal.m4: Rebuild. 1377 1378 2011-09-04 Iain Sandoe <iains (a] 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 1384 2011-08-25 Andrew Haley <aph (a] 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 1390 2011-07-11 Andrew Haley <aph (a] redhat.com> 1391 1392 * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache. 1393 1394 2011-06-29 Rainer Orth <ro (a] 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 1399 2011-06-29 Rainer Orth <ro (a] 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 1406 2011-06-14 Rainer Orth <ro (a] 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 1414 2011-04-29 Rainer Orth <ro (a] 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 1421 2011-03-30 Timothy Wall <twall (a] users.sf.net> 1422 1423 * src/powerpc/darwin.S: Fix unknown FDE encoding. 1424 * src/powerpc/darwin_closure.S: ditto. 1425 1426 2011-02-25 Anthony Green <green (a] moxielogic.com> 1427 1428 * src/powerpc/ffi.c (ffi_prep_closure_loc): Allow for more 1429 32-bit ABIs. 1430 1431 2011-02-15 Anthony Green <green (a] moxielogic.com> 1432 1433 * m4/ax_cc_maxopt.m4: Don't -malign-double or use -ffast-math. 1434 * configure: Rebuilt. 1435 1436 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues (a] gmx.de> 1437 1438 * configure: Regenerate. 1439 1440 2011-02-13 Anthony Green <green (a] 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 1457 2011-02-11 Anthony Green <green (a] 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 1462 2012-02-11 Eric Botcazou <ebotcazou (a] adacore.com> 1463 1464 * src/sparc/v9.S (STACKFRAME): Bump to 176. 1465 1466 2011-02-09 Stuart Shelton <srcshelton (a] 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 1474 2011-02-09 Anthony Green <green (a] moxielogic.com> 1475 1476 * configure.ac: Add powerpc64-*-darwin* support. 1477 1478 2011-02-09 Anthony Green <green (a] moxielogic.com> 1479 1480 * README: Mention Interix. 1481 1482 2011-02-09 Jonathan Callen <abcd (a] 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 1489 2011-02-09 Anthony Green <green (a] 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 1498 2011-02-09 Landon Fuller <landonf (a] 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 1518 2011-02-08 Oren Held <orenhe (a] il.ibm.com> 1519 1520 * src/dlmalloc.c (_STRUCT_MALLINFO): Define in order to avoid 1521 redefinition of mallinfo on HP-UX. 1522 1523 2011-02-08 Ginn Chen <ginn.chen (a] 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 1529 2011-02-11 Anthony Green <green (a] moxielogic.com> 1530 1531 From Tom Honermann <tom.honermann (a] 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 1538 2011-02-08 Ed <ed (a] kdtc.net> 1539 1540 * src/powerpc/asm.h: Fix grammar nit in comment. 1541 1542 2011-02-08 Uli Link <ul.mcamafia (a] linkitup.de> 1543 1544 * include/ffi.h.in (FFI_64_BIT_MAX): Define and use. 1545 1546 2011-02-09 Rainer Orth <ro (a] 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 1553 2011-02-08 Rafael Avila de Espindola <respindola (a] mozilla.com> 1554 1555 * configure.ac: Fix x86 test for pc related relocs. 1556 * configure: Rebuilt. 1557 1558 2011-02-07 Joel Sherrill <joel.sherrill (a] 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 1565 2011-02-07 Joel Sherrill <joel.sherrill (a] 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 1572 2011-01-26 Dave Korn <dave.korn.cygwin (a] gmail.com> 1573 1574 PR target/40125 1575 * configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs. 1576 * configure: Regenerate. 1577 1578 2010-12-18 Iain Sandoe <iains (a] 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 1590 2010-12-06 Rainer Orth <ro (a] 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 1597 2010-12-03 Chung-Lin Tang <cltang (a] 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 1604 2010-12-01 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE> 1605 1606 * testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define. 1607 (PRIuPTR): Define. 1608 1609 2010-11-29 Richard Henderson <rth (a] redhat.com> 1610 Rainer Orth <ro (a] 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 1616 2010-11-22 Jacek Caban <jacek (a] 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 1623 2010-11-15 Rainer Orth <ro (a] 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 1630 2010-10-28 Chung-Lin Tang <cltang (a] 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 1668 2010-10-01 Jakub Jelinek <jakub (a] 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 1675 2010-08-20 Mark Wielaard <mjw (a] redhat.com> 1676 1677 * src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r 1678 returns NULL. 1679 1680 2010-08-09 Andreas Tobler <andreast (a] 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 1690 2010-08-05 Dan Witte <dwitte (a] 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 1697 2010-08-04 Dan Witte <dwitte (a] 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 1705 2010-08-03 Neil Rashbrooke <neil (a] parkwaycc.co.uk> 1706 1707 * msvcc.sh: Don't pass -safeseh to ml64 because behavior is buggy. 1708 1709 2010-07-22 Dan Witte <dwitte (a] 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 1715 2010-07-10 Evan Phoenix <evan (a] fallingsnow.net> 1716 1717 * src/closures.c (selinux_enabled_check): Fix strncmp usage bug. 1718 1719 2010-07-07 Dan Hork <dan (a] 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 1726 2010-07-07 Neil Roberts <neil (a] linux.intel.com> 1727 1728 * src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to 1729 16-bytes. 1730 1731 2010-07-02 Jakub Jelinek <jakub (a] redhat.com> 1732 1733 * Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes. 1734 * Makefile.in: Regenerated. 1735 1736 2010-05-19 Rainer Orth <ro (a] 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 1746 2010-05-11 Dan Witte <dwitte (a] mozilla.com> 1747 1748 * doc/libffi.tex: Document previous change. 1749 1750 2010-05-11 Makoto Kato <m_kato (a] ga2.so-net.ne.jp> 1751 1752 * src/x86/ffi.c (ffi_call): Don't copy structs passed by value. 1753 1754 2010-05-05 Michael Kohler <michaelkohler (a] 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 1761 2010-04-13 Dan Witte <dwitte (a] 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 1768 2010-04-12 Dan Witte <dwitte (a] mozilla.com> 1769 Walter Meinl <wuno (a] 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 1777 2010-04-07 Jakub Jelinek <jakub (a] redhat.com> 1778 1779 * testsuite/libffi.call/err_bad_abi.c: Remove unused args variable. 1780 1781 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues (a] 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 1789 2010-03-30 Dan Witte <dwitte (a] mozilla.com> 1790 1791 * msvcc.sh: Disable build warnings. 1792 * README (tested): Clarify windows build procedure. 1793 1794 2010-03-15 Rainer Orth <ro (a] 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 1802 2010-03-14 Matthias Klose <doko (a] ubuntu.com> 1803 1804 * src/x86/ffi64.c: Fix typo in comment. 1805 * src/x86/ffi.c: Use /* ... */ comment style. 1806 1807 2010-02-24 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE> 1808 1809 * doc/libffi.texi (The Closure API): Fix typo. 1810 * doc/libffi.info: Remove. 1811 1812 2010-02-15 Matthias Klose <doko (a] ubuntu.com> 1813 1814 * src/arm/sysv.S (__ARM_ARCH__): Define for processor 1815 __ARM_ARCH_7EM__. 1816 1817 2010-01-15 Anthony Green <green (a] redhat.com> 1818 1819 * README: Add notes on building with Microsoft Visual C++. 1820 1821 2010-01-15 Daniel Witte <dwitte (a] 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 1840 2010-01-15 Oliver Kiddle <okiddle (a] yahoo.co.uk> 1841 1842 * src/x86/ffitarget.h (ffi_abi): Check for __i386 and __amd64 for 1843 Sun Studio compiler compatibility. 1844 1845 2010-01-12 Conrad Irwin <conrad.irwin (a] gmail.com> 1846 1847 * doc/libffi.texi: Add closure example. 1848 1849 2010-01-07 Rainer Orth <ro (a] 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 1863 2010-01-06 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE> 1864 1865 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__. 1866 1867 2009-12-31 Anthony Green <green (a] redhat.com> 1868 1869 * README: Update for libffi 3.0.9. 1870 1871 2009-12-27 Matthias Klose <doko (a] ubuntu.com> 1872 1873 * configure.ac (HAVE_LONG_DOUBLE): Define for mips when 1874 appropriate. 1875 * configure: Rebuilt. 1876 1877 2009-12-26 Anthony Green <green (a] 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 1883 2009-12-26 Andreas Tobler <a.tobler (a] 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 1889 2009-12-26 Andreas Tobler <a.tobler (a] 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 1896 2009-12-26 Anthony Green <green (a] 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 1911 2009-12-31 Kay Tietz <ktietz70 (a] googlemail.com> 1912 1913 * testsuite/libffi.call/ffitest.h, 1914 testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRuLL): Fix 1915 definitions. 1916 1917 2009-12-31 Carlo Bramini <carlo.bramix (a] 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 1924 2009-12-31 Anthony Green <green (a] redhat.com> 1925 Blake Chaffin. 1926 1927 * testsuite/libffi.call/huge_struct.c: New test case from Blake 1928 Chaffin @ Apple. 1929 1930 2009-12-28 David Edelsohn <edelsohn (a] 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 1937 2009-12-26 Andreas Tobler <a.tobler (a] 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 1945 2009-12-26 Andreas Schwab <schwab (a] 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 1952 2009-12-25 Matthias Klose <doko (a] ubuntu.com> 1953 1954 * man/ffi_call.3: Fix #include in examples. 1955 * doc/libffi.texi: Add dircategory. 1956 1957 2009-12-25 Frank Everdij <f.p.x.everdij (a] 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 1973 2009-12-25 Bradley Smith <brad (a] 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 1980 2009-12-21 Andreas Tobler <a.tobler (a] schweiz.org> 1981 1982 * configure.ac: Make i?86 build on FreeBSD and OpenBSD. 1983 * configure: Regenerate. 1984 1985 2009-12-15 John David Anglin <dave.anglin (a] nrc-cnrc.gc.ca> 1986 1987 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX. 1988 1989 2009-12-13 John David Anglin <dave.anglin (a] nrc-cnrc.gc.ca> 1990 1991 * src/pa/ffi.c (ffi_closure_inner_pa32): Handle FFI_TYPE_LONGDOUBLE 1992 type on HP-UX. 1993 1994 2012-02-13 Kai Tietz <ktietz (a] 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 2001 2009-12-11 Eric Botcazou <ebotcazou (a] adacore.com> 2002 2003 * src/sparc/ffi.c (ffi_closure_sparc_inner_v9): Properly align 'long 2004 double' arguments. 2005 2006 2009-12-11 Eric Botcazou <ebotcazou (a] adacore.com> 2007 2008 * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10. 2009 2010 2009-12-10 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE> 2011 2012 PR libffi/40700 2013 * src/closures.c [X86_64 && __sun__ && __svr4__] 2014 (FFI_MMAP_EXEC_WRIT): Define. 2015 2016 2009-12-08 David Daney <ddaney (a] 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 2025 2009-12-07 David Edelsohn <edelsohn (a] gnu.org> 2026 2027 * src/powerpc/aix_closure.S (libffi_closure_ASM): Fix tablejump 2028 typo. 2029 2030 2009-12-05 David Edelsohn <edelsohn (a] 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 2036 2009-12-05 Ralf Wildenhues <Ralf.Wildenhues (a] 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 2044 2009-12-04 David Edelsohn <edelsohn (a] gnu.org> 2045 2046 * src/powerpc/aix_closure.S: Reorganize 64-bit code to match 2047 linux64_closure.S. 2048 2049 2009-12-04 Uros Bizjak <ubizjak (a] 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 2059 2009-12-04 David Edelsohn <edelsohn (a] 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 2064 2009-12-03 David Edelsohn <edelsohn (a] gnu.org> 2065 2066 * src/powerpc/ffi_darwin.c (ffi_prep_args): Increment next_arg and 2067 fparg_count twice for long double. 2068 2069 2009-12-03 David Edelsohn <edelsohn (a] gnu.org> 2070 2071 PR libffi/42243 2072 * src/powerpc/ffi_darwin.c (ffi_prep_args): Remove extra parentheses. 2073 2074 2009-12-03 Uros Bizjak <ubizjak (a] gmail.com> 2075 2076 * testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string. 2077 Remove xfails for x86 linux targets. 2078 2079 2009-12-02 David Edelsohn <edelsohn (a] gnu.org> 2080 2081 * src/powerpc/ffi_darwin.c (ffi_prep_args): Fix typo in INT64 2082 case. 2083 2084 2009-12-01 David Edelsohn <edelsohn (a] 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 2099 2009-11-30 David Edelsohn <edelsohn (a] 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 2113 2009-11-02 Andreas Tobler <a.tobler (a] schweiz.org> 2114 2115 PR libffi/41908 2116 * testsuite/libffi.call/testclosure.c: New test. 2117 2118 2009-09-28 Kai Tietz <kai.tietz (a] onevision.com> 2119 2120 * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu 2121 assembly version use of ___chkstk. 2122 2123 2009-09-23 Matthias Klose <doko (a] 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 2132 2009-09-17 Loren J. Rittle <ljrittle (a] 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 2138 2009-09-15 David Daney <ddaney (a] 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 2158 2009-08-24 Ralf Wildenhues <Ralf.Wildenhues (a] gmx.de> 2159 2160 * configure.ac (AC_PREREQ): Bump to 2.64. 2161 2162 2009-08-22 Ralf Wildenhues <Ralf.Wildenhues (a] 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 2175 2011-08-22 Jasper Lievisse Adriaanse <jasper (a] openbsd.org> 2176 2177 * configure.ac: Add OpenBSD/hppa and OpenBSD/powerpc support. 2178 * configure: Rebuilt. 2179 2180 2009-07-30 Ralf Wildenhues <Ralf.Wildenhues (a] gmx.de> 2181 2182 * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force. 2183 2184 2009-07-24 Dave Korn <dave.korn.cygwin (a] 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 2196 2009-07-11 Richard Sandiford <rdsandiford (a] 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 2204 2009-07-01 Richard Sandiford <r.sandiford (a] 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 2211 2009-07-01 H.J. Lu <hongjiu.lu (a] 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 2218 2009-06-30 Richard Sandiford <r.sandiford (a] 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 2224 2009-06-16 Wim Lewis <wiml (a] 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 2231 2009-06-16 Andreas Tobler <a.tobler (a] schweiz.org> 2232 2233 PR libffi/40444 2234 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Add 2235 allow_stack_execute for Darwin. 2236 2237 2009-06-16 Andrew Haley <aph (a] redhat.com> 2238 2239 * configure.ac (TARGETDIR): Add missing blank lines. 2240 * configure: Regenerate. 2241 2242 2009-06-16 Andrew Haley <aph (a] 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 2254 2009-06-15 Andrew Haley <aph (a] redhat.com> 2255 2256 * testsuite/libffi.call/err_bad_typedef.c: xfail everywhere. 2257 * testsuite/libffi.call/err_bad_abi.c: Likewise. 2258 2259 2009-06-12 Andrew Haley <aph (a] redhat.com> 2260 2261 * Makefile.am: Remove info_TEXINFOS. 2262 2263 2009-06-12 Andrew Haley <aph (a] 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 2273 2009-06-11 Timothy Wall <twall (a] 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 2386 2009-06-11 Kaz Kojima <kkojima (a] 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 2392 2009-06-09 Andrew Haley <aph (a] redhat.com> 2393 2394 * src/x86/freebsd.S: Add missing file. 2395 2396 2009-06-08 Andrew Haley <aph (a] 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 2419 2009-06-08 Andrew Haley <aph (a] redhat.com> 2420 2421 * README: Import from libffi 3.0.8. 2422 2423 2009-06-08 Andrew Haley <aph (a] 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 2435 2008-12-26 Timothy Wall <twall (a] 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 2444 2008-12-22 Timothy Wall <twall (a] 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 2461 2008-07-24 Anthony Green <green (a] 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 2472 2008-03-04 Anthony Green <green (a] redhat.com> 2473 Blake Chaffin 2474 hos (a] 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 2491 2009-06-05 Andrew Haley <aph (a] redhat.com> 2492 2493 * src/x86/ffitarget.h, src/x86/ffi.c: Merge stdcall changes from 2494 libffi. 2495 2496 2009-06-04 Andrew Haley <aph (a] redhat.com> 2497 2498 * src/x86/ffitarget.h, src/x86/win32.S, src/x86/ffi.c: Back out 2499 stdcall changes. 2500 2501 2008-02-26 Anthony Green <green (a] redhat.com> 2502 Thomas Heller <theller (a] ctypes.org> 2503 2504 * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C 2505 comment. 2506 2507 2008-02-03 Timothy Wall <twall (a] 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 2512 2008-01-31 Timothy Wall <twall (a] 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 2521 2009-06-04 Andrew Haley <aph (a] redhat.com> 2522 2523 * include/ffi.h.in: Change void (*)() to void (*)(void). 2524 * src/x86/ffi.c: Likewise. 2525 2526 2009-06-04 Andrew Haley <aph (a] 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 2550 2008-02-15 David Daney <ddaney (a] 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 2557 2009-06-04 Andrew Haley <aph (a] 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 2608 2009-05-22 Dave Korn <dave.korn.cygwin (a] gmail.com> 2609 2610 * src/x86/win32.S (_ffi_closure_STDCALL): New function. 2611 (.eh_frame): Add FDE for it. 2612 2613 2009-05-22 Dave Korn <dave.korn.cygwin (a] 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 2626 2009-04-09 Jakub Jelinek <jakub (a] 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 2634 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues (a] gmx.de> 2635 2636 * configure: Regenerate. 2637 2638 2008-12-18 Rainer Orth <ro (a] 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 2652 2008-12-18 Ralf Wildenhues <Ralf.Wildenhues (a] gmx.de> 2653 2654 * configure: Regenerate. 2655 2656 2008-11-21 Eric Botcazou <ebotcazou (a] 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 2663 2008-09-26 Peter O'Gorman <pogma (a] thewrittenword.com> 2664 Steve Ellcey <sje (a] cup.hp.com> 2665 2666 * configure: Regenerate for new libtool. 2667 * Makefile.in: Ditto. 2668 * include/Makefile.in: Ditto. 2669 * aclocal.m4: Ditto. 2670 2671 2008-08-25 Andreas Tobler <a.tobler (a] 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 2684 2008-07-16 Kaz Kojima <kkojima (a] gcc.gnu.org> 2685 2686 * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned 2687 int. 2688 2689 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues (a] gmx.de> 2690 2691 * configure: Regenerate. 2692 * include/Makefile.in: Regenerate. 2693 * testsuite/Makefile.in: Regenerate. 2694 2695 2008-06-07 Joseph Myers <joseph (a] codesourcery.com> 2696 2697 * configure.ac (parisc*-*-linux*, powerpc-*-sysv*, 2698 powerpc-*-beos*): Remove. 2699 * configure: Regenerate. 2700 2701 2008-05-09 Julian Brown <julian (a] codesourcery.com> 2702 2703 * Makefile.am (LTLDFLAGS): New. 2704 (libffi_la_LDFLAGS): Use above. 2705 * Makefile.in: Regenerate. 2706 2707 2008-04-18 Paolo Bonzini <bonzini (a] gnu.org> 2708 2709 PR bootstrap/35457 2710 * aclocal.m4: Regenerate. 2711 * configure: Regenerate. 2712 2713 2008-03-26 Kaz Kojima <kkojima (a] gcc.gnu.org> 2714 2715 * src/sh/sysv.S: Add .note.GNU-stack on Linux. 2716 * src/sh64/sysv.S: Likewise. 2717 2718 2008-03-26 Daniel Jacobowitz <dan (a] debian.org> 2719 2720 * src/arm/sysv.S: Fix ARM comment marker. 2721 2722 2008-03-26 Jakub Jelinek <jakub (a] 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 2735 2008-03-16 Ralf Wildenhues <Ralf.Wildenhues (a] 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 2743 2008-02-12 Bjoern Koenig <bkoenig (a] alpha-tierchen.de> 2744 Andreas Tobler <a.tobler (a] schweiz.org> 2745 2746 * configure.ac: Add amd64-*-freebsd* target. 2747 * configure: Regenerate. 2748 2749 2008-01-30 H.J. Lu <hongjiu.lu (a] 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 2758 2008-01-24 David Edelsohn <edelsohn (a] gnu.org> 2759 2760 * configure: Regenerate. 2761 2762 2008-01-06 Andreas Tobler <a.tobler (a] schweiz.org> 2763 2764 * src/x86/ffi.c (ffi_prep_cif_machdep): Fix thinko. 2765 2766 2008-01-05 Andreas Tobler <a.tobler (a] 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 2784 2007-12-08 David Daney <ddaney (a] 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 2789 2007-12-07 David Daney <ddaney (a] avtrex.com> 2790 2791 * src/mips/ffi.c (ffi_prep_cif_machdep): Handle long double return 2792 type. 2793 2794 2007-12-06 David Daney <ddaney (a] 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 2820 2007-12-06 David Daney <ddaney (a] avtrex.com> 2821 2822 * src/mips/n32.S (ffi_closure_N32): Use 64-bit add instruction on 2823 pointer values. 2824 2825 2007-12-01 Andreas Tobler <a.tobler (a] 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 2845 2007-11-25 Andreas Tobler <a.tobler (a] 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 2851 2007-11-17 Andreas Tobler <a.tobler (a] 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 2858 2007-09-04 <aph (a] 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 2874 2007-08-05 Steven Newbury <s_j_newbury (a] 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 2879 2007-07-27 Andrew Haley <aph (a] redhat.com> 2880 2881 * src/arm/sysv.S (ffi_closure_SYSV): Add soft-float. 2882 2883 2007-09-03 Maciej W. Rozycki <macro (a] 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 2892 2007-08-24 David Daney <ddaney (a] avtrex.com> 2893 2894 * testsuite/libffi.call/return_sl.c: New test. 2895 2896 2007-08-10 David Daney <ddaney (a] 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 2969 2007-08-10 David Daney <ddaney (a] 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 3002 2007-08-08 David Daney <ddaney (a] 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 3039 2007-08-07 Andrew Haley <aph (a] redhat.com> 3040 3041 * src/x86/sysv.S (ffi_closure_raw_SYSV): Fix typo in previous 3042 checkin. 3043 3044 2007-08-06 Andrew Haley <aph (a] 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 3051 2007-08-02 David Daney <ddaney (a] avtrex.com> 3052 3053 * testsuite/libffi.call/return_ul.c (main): Define return type as 3054 ffi_arg. Use proper printf conversion specifier. 3055 3056 2007-07-30 Andrew Haley <aph (a] 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 3067 2007-07-26 Richard Guenther <rguenther (a] 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 3073 2007-07-16 Rainer Orth <ro (a] TechFak.Uni-Bielefeld.DE> 3074 3075 * configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64. 3076 * configure: Regenerate. 3077 3078 2007-07-11 David Daney <ddaney (a] 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 3084 2007-05-18 Aurelien Jarno <aurelien (a] 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 3090 2005-12-31 Phil Blundell <pb (a] 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 3098 2007-07-03 Andrew Haley <aph (a] 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 3171 2007-07-05 H.J. Lu <hongjiu.lu (a] intel.com> 3172 3173 * aclocal.m4: Regenerated. 3174 3175 2007-06-02 Paolo Bonzini <bonzini (a] gnu.org> 3176 3177 * configure: Regenerate. 3178 3179 2007-05-23 Steve Ellcey <sje (a] 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 3187 2007-05-10 Roman Zippel <zippel (a] 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 3195 2007-05-10 Roman Zippel <zippel (a] 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 3204 2007-05-10 Roman Zippel <zippel (a] 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 3210 2007-04-11 Paolo Bonzini <bonzini (a] 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 3216 2007-04-06 Richard Henderson <rth (a] 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 3241 2007-04-06 Tom Tromey <tromey (a] redhat.com> 3242 3243 PR libffi/31491: 3244 * README: Fixed bug in example. 3245 3246 2007-04-03 Jakub Jelinek <jakub (a] 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 3256 2007-03-24 Uros Bizjak <ubizjak (a] 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 3263 2007-03-08 Alexandre Oliva <aoliva (a] 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 3269 2007-03-07 Alexandre Oliva <aoliva (a] 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 3319 2007-03-07 Alexandre Oliva <aoliva (a] redhat.com> 3320 3321 * src/dlmalloc.c: New file, imported version 2.8.3 of Doug 3322 Lea's malloc. 3323 3324 2007-03-01 Brooks Moses <brooks.moses (a] codesourcery.com> 3325 3326 * Makefile.am: Add dummy install-pdf target. 3327 * Makefile.in: Regenerate 3328 3329 2007-02-13 Andreas Krebbel <krebbel1 (a] 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 3334 2007-02-02 Jakub Jelinek <jakub (a] redhat.com> 3335 3336 * src/powerpc/linux64.S (ffi_call_LINUX64): Move restore of r2 3337 immediately after bctrl instruction. 3338 3339 2007-01-18 Alexandre Oliva <aoliva (a] 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 3346 2006-12-14 Andreas Tobler <a.tobler (a] 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 3360 2006-12-13 Andreas Tobler <a.tobler (a] schweiz.org> 3361 3362 * aclocal.m4: Regenerate with aclocal -I .. as written in the 3363 Makefile.am. 3364 3365 2006-10-31 Geoffrey Keating <geoffk (a] 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 3373 2006-10-10 Paolo Bonzini <bonzini (a] gnu.org> 3374 Sandro Tolaini <tolaini (a] 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 3390 2006-09-12 David Daney <ddaney (a] 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 3400 2006-08-17 Andreas Tobler <a.tobler (a] schweiz.ch> 3401 3402 * include/ffi_common.h (struct): Revert accidental commit. 3403 3404 2006-08-15 Andreas Tobler <a.tobler (a] schweiz.ch> 3405 3406 * include/ffi_common.h: Remove lint directives. 3407 * include/ffi.h.in: Likewise. 3408 3409 2006-07-25 Torsten Schoenfeld <kaffeetisch (a] 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 3415 2006-07-19 David Daney <ddaney (a] avtrex.com> 3416 3417 * testsuite/libffi.call/closure_fn6.c: Remove xfail for mips, 3418 xfail remains for mips64. 3419 3420 2006-05-23 Carlos O'Donell <carlos (a] 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 3428 2006-05-18 John David Anglin <dave.anglin (a] nrc-cnrc.gc.ca> 3429 3430 * pa/ffi.c (ffi_prep_args_pa32): Load floating point arguments from 3431 stack slot. 3432 3433 2006-04-22 Andreas Tobler <a.tobler (a] 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 3454 2006-04-13 Andreas Tobler <a.tobler (a] schweiz.ch> 3455 3456 * src/pa/hpux32.S: Correct unwind offset calculation for 3457 ffi_closure_pa32. 3458 * src/pa/linux.S: Likewise. 3459 3460 2006-04-12 James E Wilson <wilson (a] 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 3469 2006-04-10 Matthias Klose <doko (a] debian.org> 3470 3471 * testsuite/lib/libffi-dg.exp (libffi-init): Recognize multilib 3472 directory names containing underscores. 3473 3474 2006-04-07 James E Wilson <wilson (a] specifix.com> 3475 3476 * testsuite/libffi.call/float4.c: New testcase. 3477 3478 2006-04-05 John David Anglin <dave.anglin (a] nrc-cnrc.gc.ca> 3479 Andreas Tobler <a.tobler (a] 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 3528 2006-03-24 Alan Modra <amodra (a] 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 3551 2006-03-15 Kaz Kojima <kkojima (a] 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 3558 2006-03-01 Andreas Tobler <a.tobler (a] 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 3565 2006-02-28 Andreas Tobler <a.tobler (a] 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 3696 2006-02-22 Kaz Kojima <kkojima (a] gcc.gnu.org> 3697 3698 * src/sh/sysv.S: Fix register numbers in the FDE for 3699 ffi_closure_SYSV. 3700 3701 2006-02-20 Andreas Tobler <a.tobler (a] 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 3706 2006-02-18 Kaz Kojima <kkojima (a] 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 3712 2006-02-17 Andreas Tobler <a.tobler (a] 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 3718 2006-02-16 Andreas Tobler <a.tobler (a] 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 3742 2006-01-21 Andreas Tobler <a.tobler (a] schweiz.ch> 3743 3744 * configure.ac: Enable libffi for sparc64-*-freebsd*. 3745 * configure: Rebuilt. 3746 3747 2006-01-18 Jakub Jelinek <jakub (a] 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 3756 2005-12-07 Thiemo Seufer <ths (a] 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 3771 2005-12-03 Alan Modra <amodra (a] 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 3777 2005-09-30 Geoffrey Keating <geoffk (a] 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 3782 2005-09-26 Tom Tromey <tromey (a] 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 3791 2005-08-25 Alan Modra <amodra (a] 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 3798 2005-08-11 Jakub Jelinek <jakub (a] 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 3815 2005-08-10 Alfred M. Szmidt <ams (a] gnu.org> 3816 3817 PR libffi/21819: 3818 * configure: Rebuilt. 3819 * configure.ac: Handle i*86-*-gnu*. 3820 3821 2005-08-09 Jakub Jelinek <jakub (a] 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 3828 2005-07-22 SUGIOKA Toshinobu <sugioka (a] 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 3838 2005-07-20 Kaz Kojima <kkojima (a] 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 3851 2005-07-19 Andreas Tobler <a.tobler (a] 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 3870 2005-07-10 Andreas Tobler <a.tobler (a] 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 3876 2005-07-05 Randolph Chung <tausq (a] 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 3893 2005-06-15 Rainer Orth <ro (a] TechFak.Uni-Bielefeld.DE> 3894 3895 PR libgcj/21943 3896 * src/mips/n32.S: Enforce PIC code. 3897 * src/mips/o32.S: Likewise. 3898 3899 2005-06-15 Rainer Orth <ro (a] TechFak.Uni-Bielefeld.DE> 3900 3901 * configure.ac: Treat i*86-*-solaris2.10 and up as X86_64. 3902 * configure: Regenerate. 3903 3904 2005-06-01 Alan Modra <amodra (a] 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 3910 2005-05-17 Kelley Cook <kcook (a] 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 3918 2005-05-09 Mike Stump <mrs (a] apple.com> 3919 3920 * configure: Regenerate. 3921 3922 2005-05-08 Richard Henderson <rth (a] redhat.com> 3923 3924 PR libffi/21285 3925 * src/alpha/osf.S: Update unwind into to match code. 3926 3927 2005-05-04 Andreas Degert <ad (a] papyrus-gmbh.de> 3928 Richard Henderson <rth (a] 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 3938 2005-04-29 Ralf Corsepius <ralf.corsepius (a] rtems.org> 3939 3940 * configure.ac: Add i*86-*-rtems*, sparc*-*-rtems*, 3941 powerpc-*rtems*, arm*-*-rtems*, sh-*-rtems*. 3942 * configure: Regenerate. 3943 3944 2005-04-20 Hans-Peter Nilsson <hp (a] axis.com> 3945 3946 * testsuite/lib/libffi-dg.exp (libffi-dg-test-1): In regsub use, 3947 have Tcl8.3-compatible intermediate variable. 3948 3949 2005-04-18 Simon Posnjak <simon.posnjak (a] siol.net> 3950 Hans-Peter Nilsson <hp (a] 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 3963 2005-04-12 Mike Stump <mrs (a] apple.com> 3964 3965 * configure: Regenerate. 3966 3967 2005-03-30 Hans Boehm <Hans.Boehm (a] hp.com> 3968 3969 * src/ia64/ffitarget.h (ffi_arg): Use long long instead of DI. 3970 3971 2005-03-30 Steve Ellcey <sje (a] 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 3979 2005-03-23 Mike Stump <mrs (a] apple.com> 3980 3981 * src/powerpc/darwin.S: Update for -m64 multilib. 3982 * src/powerpc/darwin_closure.S: Likewise. 3983 3984 2005-03-21 Zack Weinberg <zack (a] 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 3993 2005-02-22 Andrew Haley <aph (a] 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 3998 2005-02-23 Andreas Tobler <a.tobler (a] schweiz.ch> 3999 4000 PR libffi/20104 4001 * testsuite/libffi.call/return_ll1.c: New test case. 4002 4003 2005-02-11 Janis Johnson <janis187 (a] 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 4010 2005-02-08 Andreas Tobler <a.tobler (a] schweiz.ch> 4011 4012 * src/frv/ffitarget.h: Remove PPC stuff which does not belong to frv. 4013 4014 2005-01-12 Eric Botcazou <ebotcazou (a] libertysurf.fr> 4015 4016 * testsuite/libffi.special/special.exp (cxx_options): Add 4017 -shared-libgcc. 4018 4019 2004-12-31 Richard Henderson <rth (a] 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 4026 2004-12-31 Richard Henderson <rth (a] 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 4035 2004-12-27 Richard Henderson <rth (a] redhat.com> 4036 4037 * src/x86/unix64.S: Fix typo in unwind info. 4038 4039 2004-12-25 Richard Henderson <rth (a] 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 4065 2004-12-08 David Edelsohn <edelsohn (a] gnu.org> 4066 4067 * Makefile.am (AM_MAKEFLAGS): Remove duplicate LIBCFLAGS and 4068 PICFLAG. 4069 * Makefile.in: Regenerated. 4070 4071 2004-12-02 Richard Sandiford <rsandifo (a] 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 4077 2004-11-29 Kelley Cook <kcook (a] gcc.gnu.org> 4078 4079 * configure: Regenerate for libtool change. 4080 4081 2004-11-25 Kelley Cook <kcook (a] gcc.gnu.org> 4082 4083 * configure: Regenerate for libtool reversion. 4084 4085 2004-11-24 Kelley Cook <kcook (a] gcc.gnu.org> 4086 4087 * configure: Regenerate for libtool change. 4088 4089 2004-11-23 John David Anglin <dave.anglin (a] nrc-cnrc.gc.ca> 4090 4091 * testsuite/lib/libffi-dg.exp: Use new procs in target-libpath.exp. 4092 4093 2004-11-23 Richard Sandiford <rsandifo (a] 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 4098 2004-11-23 Kelley Cook <kcook (a] 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 4106 2004-11-22 Eric Botcazou <ebotcazou (a] 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 4112 2004-10-27 Richard Earnshaw <rearnsha (a] 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 4121 2004-10-27 Richard Earnshaw <rearnsha (a] 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 4127 2004-10-25 Eric Botcazou <ebotcazou (a] libertysurf.fr> 4128 4129 PR other/18138 4130 * testsuite/lib/libffi-dg.exp: Accept more than one multilib libgcc. 4131 4132 2004-10-25 Kazuhiro Inaoka <inaoka.kazuhiro (a] renesas.com> 4133 4134 * src/m32r/libffitarget.h (FFI_CLOSURES): Set to 0. 4135 4136 2004-10-20 Kaz Kojima <kkojima (a] 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 4141 2004-10-18 Kaz Kojima <kkojima (a] 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 4149 2004-10-13 Kazuhiro Inaoka <inaoka.kazuhiro (a] 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 4162 2004-10-02 Kaz Kojima <kkojima (a] gcc.gnu.org> 4163 4164 * testsuite/libffi.call/negint.c: New test case. 4165 4166 2004-09-14 H.J. Lu <hongjiu.lu (a] 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 4174 2004-09-05 Andreas Tobler <a.tobler (a] 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 4183 2004-09-05 Andreas Tobler <a.tobler (a] schweiz.ch> 4184 4185 * src/powerpc/darwin.S: Fix comments and identation. 4186 * src/powerpc/darwin_closure.S: Likewise. 4187 4188 2004-09-02 Andreas Tobler <a.tobler (a] 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 4200 2004-09-02 Andreas Tobler <a.tobler (a] 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 4212 2004-08-30 Anthony Green <green (a] 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 4224 2004-08-24 David Daney <daney (a] 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 4286 2004-08-23 David Daney <daney (a] 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 4300 2004-08-14 Casey Marshall <csm (a] 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 4314 2004-08-10 Andrew Haley <aph (a] redhat.com> 4315 4316 * src/x86/ffi64.c (ffi_prep_args ): 8-align all stack arguments. 4317 4318 2004-08-01 Robert Millan <robertmh (a] gnu.org> 4319 4320 * configure.ac: Detect knetbsd-gnu and kfreebsd-gnu. 4321 * configure: Regenerate. 4322 4323 2004-07-30 Maciej W. Rozycki <macro (a] 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 4331 2004-07-11 Ulrich Weigand <uweigand (a] 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 4336 2004-06-30 Geoffrey Keating <geoffk (a] apple.com> 4337 4338 * src/powerpc/ffi_darwin.c (flush_icache): ';' is a comment 4339 character on Darwin, use '\n\t' instead. 4340 4341 2004-06-26 Matthias Klose <doko (a] debian.org> 4342 4343 * libtool-version: Fix typo in revision/age. 4344 4345 2004-06-17 Matthias Klose <doko (a] debian.org> 4346 4347 * libtool-version: New. 4348 * Makefile.am (libffi_la_LDFLAGS): Use -version-info for soname. 4349 * Makefile.in: Regenerate. 4350 4351 2004-06-15 Paolo Bonzini <bonzini (a] 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 4359 2004-06-15 Paolo Bonzini <bonzini (a] gnu.org> 4360 4361 * .cvsignore: New file. 4362 4363 2004-06-10 Jakub Jelinek <jakub (a] 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 4370 2004-06-06 Sean McNeil <sean (a] mcneil.com> 4371 4372 * configure.ac: Add x86_64-*-freebsd* support. 4373 * configure: Regenerate. 4374 4375 2004-04-26 Joe Buck <jbuck (a] 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 4382 2004-04-26 Matt Austern <austern (a] 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 4388 2004-04-24 Andreas Tobler <a.tobler (a] schweiz.ch> 4389 4390 * testsuite/libffi.call/cls_multi_schar.c (main): Fix initialization 4391 error. Reported by Thomas Heller <theller (a] python.net>. 4392 * testsuite/libffi.call/cls_multi_sshort.c (main): Likewise. 4393 * testsuite/libffi.call/cls_multi_ushort.c (main): Likewise. 4394 4395 2004-03-20 Matthias Klose <doko (a] debian.org> 4396 4397 * src/pa/linux.S: Fix typo. 4398 4399 2004-03-19 Matthias Klose <doko (a] 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 4406 2004-02-10 Randolph Chung <tausq (a] 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 4418 2004-03-16 Hosaka Yuji <hos (a] 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 4431 2004-03-15 Kelley Cook <kcook (a] 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 4440 2004-03-12 Matt Austern <austern (a] 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 4446 2004-03-11 Andreas Tobler <a.tobler (a] schweiz.ch> 4447 Paolo Bonzini <bonzini (a] 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 4466 2004-03-11 Andreas Schwab <schwab (a] 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 4472 2004-03-09 Hans-Peter Nilsson <hp (a] axis.com> 4473 4474 * configure: Regenerate for config/accross.m4 correction. 4475 4476 2004-02-25 Matt Kraai <kraai (a] 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 4482 2004-02-09 Alan Modra <amodra (a] 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 4493 2004-02-08 Alan Modra <amodra (a] 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 4506 2004-02-07 Alan Modra <amodra (a] bigpond.net.au> 4507 4508 * src/types.c: Use 16 byte long double for POWERPC64. 4509 4510 2004-01-25 Eric Botcazou <ebotcazou (a] 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 4539 2004-01-24 Andreas Tobler <a.tobler (a] 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 4545 2004-01-22 Ulrich Weigand <uweigand (a] 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 4550 2004-01-21 Michael Ritzert <ritzert (a] t-online.de> 4551 4552 * ffi64.c (ffi_prep_args): Cast the RHS of an assignment instead 4553 of the LHS. 4554 4555 2004-01-12 Andreas Tobler <a.tobler (a] schweiz.ch> 4556 4557 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_32 for 4558 Solaris. 4559 4560 2004-01-08 Rainer Orth <ro (a] TechFak.Uni-Bielefeld.DE> 4561 4562 * testsuite/libffi.call/ffitest.h (allocate_mmap): Cast MAP_FAILED 4563 to void *. 4564 4565 2003-12-10 Richard Henderson <rth (a] redhat.com> 4566 4567 * testsuite/libffi.call/cls_align_pointer.c: Cast pointers to 4568 size_t instead of int. 4569 4570 2003-12-04 Hosaka Yuji <hos (a] 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 4587 2003-12-02 Hosaka Yuji <hos (a] 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 4593 2003-12-01 Andreas Tobler <a.tobler (a] 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 4605 2003-11-26 Kaveh R. Ghazi <ghazi (a] caip.rutgers.edu> 4606 4607 * testsuite/libffi.call/ffitest.h: Include <fcntl.h>. 4608 * testsuite/libffi.special/ffitestcxx.h: Likewise. 4609 4610 2003-11-22 Andreas Tobler <a.tobler (a] 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 4617 2003-11-21 Andreas Jaeger <aj (a] suse.de> 4618 Andreas Tobler <a.tobler (a] 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 4673 2003-11-20 Andreas Tobler <a.tobler (a] schweiz.ch> 4674 4675 * testsuite/lib/libffi-dg.exp: Make the -lgcc_s conditional. 4676 4677 2003-11-19 Andreas Tobler <a.tobler (a] schweiz.ch> 4678 4679 * testsuite/lib/libffi-dg.exp: Add DYLD_LIBRARY_PATH for darwin. 4680 Add -lgcc_s to additional flags. 4681 4682 2003-11-12 Andreas Tobler <a.tobler (a] 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 4691 2003-11-09 Andreas Tobler <a.tobler (a] 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 4735 2003-11-08 Andreas Tobler <a.tobler (a] 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 4751 2003-11-08 Andreas Tobler <a.tobler (a] 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 4760 2003-11-06 Andreas Tobler <a.tobler (a] schweiz.ch> 4761 4762 * src/prep_cif.c (ffi_prep_cif): Move the validity check after 4763 the initialization. 4764 4765 2003-10-23 Andreas Tobler <a.tobler (a] schweiz.ch> 4766 4767 * src/java_raw_api.c (ffi_java_ptrarray_to_raw): Replace 4768 FFI_ASSERT(FALSE) with FFI_ASSERT(0). 4769 4770 2003-10-22 David Daney <ddaney (a] avtrex.com> 4771 4772 * src/mips/ffitarget.h: Replace undefined UINT32 and friends with 4773 __attribute__((__mode__(__SI__))) and friends. 4774 4775 2003-10-22 Andreas Schwab <schwab (a] suse.de> 4776 4777 * src/ia64/ffi.c: Replace FALSE/TRUE with false/true. 4778 4779 2003-10-21 Andreas Tobler <a.tobler (a] 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 4788 2003-10-21 Paolo Bonzini <bonzini (a] gnu.org> 4789 Richard Henderson <rth (a] 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 4854 2003-10-20 Rainer Orth <ro (a] TechFak.Uni-Bielefeld.DE> 4855 4856 * src/mips/ffi.c: Use _ABIN32, _ABIO32 instead of external 4857 _MIPS_SIM_NABI32, _MIPS_SIM_ABI32. 4858 4859 2003-10-19 Andreas Tobler <a.tobler (a] schweiz.ch> 4860 4861 * src/powerpc/ffi_darwin.c (ffi_prep_args): Declare bytes again. 4862 Used when FFI_DEBUG = 1. 4863 4864 2003-10-14 Alan Modra <amodra (a] bigpond.net.au> 4865 4866 * src/types.c (double, longdouble): Default POWERPC64 to 8 byte size 4867 and align. 4868 4869 2003-10-06 Rainer Orth <ro (a] 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 4874 2003-10-01 Andreas Tobler <a.tobler (a] schweiz.ch> 4875 4876 * testsuite/lib/libffi-dg.exp: Set LD_LIBRARY_PATH_64 for 4877 SPARC64. Cleanup whitespaces. 4878 4879 2003-09-19 Andreas Tobler <a.tobler (a] 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 4913 2003-09-18 David Edelsohn <edelsohn (a] gnu.org> 4914 4915 * src/powerpc/aix.S: Cleanup whitespaces. 4916 * src/powerpc/aix_closure.S: Likewise. 4917 4918 2003-09-18 Andreas Tobler <a.tobler (a] 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 4924 2003-09-18 Andreas Tobler <a.tobler (a] schweiz.ch> 4925 David Edelsohn <edelsohn (a] 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 4940 2003-09-18 Kaz Kojima <kkojima (a] 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 4951 2003-09-17 Rainer Orth <ro (a] TechFak.Uni-Bielefeld.DE> 4952 4953 * testsuite/lib/libffi-dg.exp (libffi_target_compile): Search in 4954 srcdir for ffi_mips.h. 4955 4956 2003-09-12 Alan Modra <amodra (a] 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 4965 2003-09-11 Alan Modra <amodra (a] 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 4974 2003-09-09 Andreas Tobler <a.tobler (a] schweiz.ch> 4975 4976 * src/powerpc/ffi.c (ffi_closure_helper_SYSV) Handle struct 4977 passing correctly. 4978 4979 2003-09-09 Alan Modra <amodra (a] bigpond.net.au> 4980 4981 * configure: Regenerate. 4982 4983 2003-09-04 Andreas Tobler <a.tobler (a] schweiz.ch> 4984 4985 * Makefile.am: Remove build rules for ffitest. 4986 * Makefile.in: Rebuilt. 4987 4988 2003-09-04 Andreas Tobler <a.tobler (a] schweiz.ch> 4989 4990 * src/java_raw_api.c: Include <stdlib.h> to fix compiler warning 4991 about implicit declaration of abort(). 4992 4993 2003-09-04 Andreas Tobler <a.tobler (a] 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 5060 2003-08-13 Kaz Kojima <kkojima (a] gcc.gnu.org> 5061 5062 * src/sh/ffi.c (OFS_INT16): Set 0 for little endian case. Update 5063 copyright years. 5064 5065 2003-08-02 Alan Modra <amodra (a] 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 5075 2003-07-28 Andreas Tobler <a.tobler (a] 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 5080 2003-07-11 Gerald Pfeifer <pfeifer (a] dbai.tuwien.ac.at> 5081 5082 * README: Note that libffi is not part of GCC. Update the project 5083 URL and status. 5084 5085 2003-06-19 Franz Sirl <Franz.Sirl-kernel (a] lauterbach.com> 5086 5087 * src/powerpc/ppc_closure.S: Include ffi.h. 5088 5089 2003-06-13 Rainer Orth <ro (a] TechFak.Uni-Bielefeld.DE> 5090 5091 * src/x86/sysv.S: Avoid gas-only .uleb128/.sleb128 directives. 5092 Use C style comments. 5093 5094 2003-06-13 Kaz Kojima <kkojima (a] 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 5104 2003-05-16 Jakub Jelinek <jakub (a] 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 5124 2003-05-07 Jeff Sturm <jsturm (a] 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 5133 2003-04-18 Jakub Jelinek <jakub (a] 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 5172 2003-04-16 Richard Earnshaw <rearnsha (a] arm.com> 5173 5174 * configure.in (arm-*-netbsdelf*): Add configuration. 5175 (configure): Regenerated. 5176 5177 2003-04-04 Loren J. Rittle <ljrittle (a] acm.org> 5178 5179 * include/Makefile.in: Regenerate. 5180 5181 2003-03-21 Zdenek Dvorak <rakdver (a] 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 5190 2003-03-12 Andreas Schwab <schwab (a] suse.de> 5191 5192 * configure.in: Avoid trailing /. in toolexeclibdir. 5193 * configure: Rebuilt. 5194 5195 2003-03-03 Andreas Tobler <a.tobler (a] schweiz.ch> 5196 5197 * src/powerpc/darwin_closure.S: Recode to fit dynamic libraries. 5198 5199 2003-02-06 Andreas Tobler <a.tobler (a] 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 5208 2003-02-06 Jakub Jelinek <jakub (a] redhat.com> 5209 5210 * src/s390/ffi.c (ffi_closure_helper_SYSV): Add hidden visibility 5211 attribute. 5212 5213 2003-01-31 Christian Cornelssen <ccorn (a] cs.tu-berlin.de>, 5214 Andreas Schwab <schwab (a] 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 5223 2003-01-29 Franz Sirl <Franz.Sirl-kernel (a] lauterbach.com> 5224 5225 * src/powerpc/ppc_closure.S: Recode to fit shared libs. 5226 5227 2003-01-28 Andrew Haley <aph (a] 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 5234 2003-01-27 Alexandre Oliva <aoliva (a] 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 5241 2003-01027 David Edelsohn <edelsohn (a] gnu.org> 5242 5243 * Makefile.am (TARGET_SRC_POWERPC_AIX): Fix typo. 5244 * Makefile.in: Regenerate. 5245 5246 2003-01-22 Andrew Haley <aph (a] redhat.com> 5247 5248 * src/powerpc/darwin.S (_ffi_call_AIX): Add Augmentation size to 5249 unwind info. 5250 5251 2003-01-21 Andreas Tobler <a.tobler (a] schweiz.ch> 5252 5253 * src/powerpc/darwin.S: Add unwind info. 5254 * src/powerpc/darwin_closure.S: Likewise. 5255 5256 2003-01-14 Andrew Haley <aph (a] 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 5262 2003-01-14 Andreas Jaeger <aj (a] suse.de> 5263 5264 * src/ffitest.c (main): Only use ffi_closures if those are 5265 supported. 5266 5267 2003-01-13 Andreas Tobler <a.tobler (a] schweiz.ch> 5268 5269 * libffi/src/ffitest.c 5270 add closure testcases 5271 5272 2003-01-13 Kevin B. Hendricks <khendricks (a] ivey.uwo.ca> 5273 5274 * libffi/src/powerpc/ffi.c 5275 fix alignment bug for float (4 byte aligned iso 8 byte) 5276 5277 2003-01-09 Geoffrey Keating <geoffk (a] apple.com> 5278 5279 * src/powerpc/ffi_darwin.c: Remove RCS version string. 5280 * src/powerpc/darwin.S: Remove RCS version string. 5281 5282 2003-01-03 Jeff Sturm <jsturm (a] 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 5290 2002-11-10 Ranjit Mathew <rmathew (a] 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 5305 2002-12-02 Kaz Kojima <kkojima (a] gcc.gnu.org> 5306 5307 * src/sh/sysv.S: Add DWARF2 unwind info. 5308 5309 2002-11-27 Ulrich Weigand <uweigand (a] de.ibm.com> 5310 5311 * src/s390/sysv.S (.eh_frame section): Make section read-only. 5312 5313 2002-11-26 Jim Wilson <wilson (a] redhat.com> 5314 5315 * src/types.c (FFI_TYPE_POINTER): Has size 8 on IA64. 5316 5317 2002-11-23 H.J. Lu <hjl (a] gnu.org> 5318 5319 * acinclude.m4: Add dummy AM_PROG_LIBTOOL. 5320 Include ../config/accross.m4. 5321 * aclocal.m4; Rebuild. 5322 * configure: Likewise. 5323 5324 2002-11-15 Ulrich Weigand <uweigand (a] de.ibm.com> 5325 5326 * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding. 5327 5328 2002-11-11 DJ Delorie <dj (a] redhat.com> 5329 5330 * configure.in: Look for common files in the right place. 5331 5332 2002-10-08 Ulrich Weigand <uweigand (a] 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 5348 2002-10-02 Andreas Jaeger <aj (a] suse.de> 5349 5350 * src/x86/ffi64.c (ffi_prep_cif_machdep): Remove debug output. 5351 5352 2002-10-01 Bo Thorsen <bo (a] smetana.suse.de> 5353 5354 * include/ffi.h.in: Fix i386 win32 compilation. 5355 5356 2002-09-30 Ulrich Weigand <uweigand (a] 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 5370 2002-09-29 Richard Earnshaw <rearnsha (a] arm.com> 5371 5372 * src/arm/sysv.S: Fix typo. 5373 5374 2002-09-28 Richard Earnshaw <rearnsha (a] 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 5380 2002-09-27 Bo Thorsen <bo (a] suse.de> 5381 5382 * include/ffi.h.in: Fix multilib x86-64 support. 5383 5384 2002-09-22 Kaveh R. Ghazi <ghazi (a] caip.rutgers.edu> 5385 5386 * Makefile.am (all-multi): Fix multilib parallel build. 5387 5388 2002-07-19 Kaz Kojima <kkojima (a] gcc.gnu.org> 5389 5390 * configure.in (sh[34]*-*-linux*): Add brackets. 5391 * configure: Regenerate. 5392 5393 2002-07-18 Kaz Kojima <kkojima (a] 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 5404 2002-07-16 Bo Thorsen <bo (a] 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 5429 2002-06-24 Bo Thorsen <bo (a] suse.de> 5430 5431 * src/types.c: Merge settings for similar architectures. 5432 Add x86-64 sizes and alignments. 5433 5434 2002-06-23 Bo Thorsen <bo (a] 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 5441 2002-07-18 H.J. Lu (hjl (a] 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 5454 2002-06-06 Ulrich Weigand <uweigand (a] de.ibm.com> 5455 5456 * src/s390/sysv.S: Save/restore %r6. Add DWARF-2 unwind info. 5457 5458 2002-05-27 Roger Sayle <roger (a] eyesopen.com> 5459 5460 * src/x86/ffi.c (ffi_prep_args): Remove reference to avn. 5461 5462 2002-05-27 Bo Thorsen <bo (a] suse.de> 5463 5464 * src/x86/ffi.c (ffi_prep_args): Remove unused variable and 5465 fix formatting. 5466 5467 2002-05-13 Andreas Tobler <a.tobler (a] schweiz.ch> 5468 5469 * src/powerpc/ffi_darwin.c (ffi_prep_closure): Declare fd at 5470 beginning of function (for older apple cc). 5471 5472 2002-05-08 Alexandre Oliva <aoliva (a] 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 5478 2002-05-05 Jason Thorpe <thorpej (a] wasabisystems.com> 5479 5480 * configure.in (sparc64-*-netbsd*): Add target. 5481 (sparc-*-netbsdelf*): Likewise. 5482 * configure: Regenerate. 5483 5484 2002-04-28 David S. Miller <davem (a] redhat.com> 5485 5486 * configure.in, configure: Fix SPARC test in previous change. 5487 5488 2002-04-29 Gerhard Tonn <GerhardTonn (a] 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 5498 2002-04-28 Jakub Jelinek <jakub (a] 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 5507 2002-04-08 Hans Boehm <Hans_Boehm (a] 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 5516 2002-04-08 Jakub Jelinek <jakub (a] redhat.com> 5517 5518 * src/sparc/v8.S: Make .eh_frame dependent on target word size. 5519 5520 2002-04-06 Jason Thorpe <thorpej (a] wasabisystems.com> 5521 5522 * configure.in (alpha*-*-netbsd*): Add target. 5523 * configure: Regenerate. 5524 5525 2002-04-04 Jeff Sturm <jsturm (a] one-point.com> 5526 5527 * src/sparc/v8.S: Add unwind info. 5528 * src/sparc/v9.S: Likewise. 5529 5530 2002-03-30 Krister Walfridsson <cato (a] df.lth.se> 5531 5532 * configure.in: Enable i*86-*-netbsdelf*. 5533 * configure: Rebuilt. 5534 5535 2002-03-29 David Billinghurst <David.Billinghurst (a] riotinto.com> 5536 5537 PR other/2620 5538 * src/mips/n32.s: Delete 5539 * src/mips/o32.s: Delete 5540 5541 2002-03-21 Loren J. Rittle <ljrittle (a] acm.org> 5542 5543 * configure.in: Enable alpha*-*-freebsd*. 5544 * configure: Rebuilt. 5545 5546 2002-03-17 Bryce McKinlay <bryce (a] 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 5554 2002-03-07 Andreas Tobler <toa (a] pop.agri.ch> 5555 David Edelsohn <edelsohn (a] 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 5568 2002-02-24 Jeff Sturm <jsturm (a] 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 5573 2002-02-21 Andreas Tobler <toa (a] pop.agri.ch> 5574 5575 * src/powerpc/ffi_darwin.c (ffi_prep_args): Skip appropriate 5576 number of GPRs for floating-point arguments. 5577 5578 2002-01-31 Anthony Green <green (a] 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 5586 2002-01-18 David Edelsohn <edelsohn (a] gnu.org> 5587 5588 * src/powerpc/darwin.S (_ffi_call_AIX): New. 5589 * src/powerpc/aix.S (ffi_call_DARWIN): New. 5590 5591 2002-01-17 David Edelsohn <edelsohn (a] 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 5605 2001-10-09 John Hornkvist <john (a] 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 5617 2001-10-07 Joseph S. Myers <jsm28 (a] cam.ac.uk> 5618 5619 * src/x86/ffi.c: Fix spelling error of "separate" as "seperate". 5620 5621 2001-07-16 Rainer Orth <ro (a] TechFak.Uni-Bielefeld.DE> 5622 5623 * src/x86/sysv.S: Avoid gas-only .balign directive. 5624 Use C style comments. 5625 5626 2001-07-16 Rainer Orth <ro (a] TechFak.Uni-Bielefeld.DE> 5627 5628 * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic. 5629 Fixes PR bootstrap/3563. 5630 5631 2001-06-26 Rainer Orth <ro (a] TechFak.Uni-Bielefeld.DE> 5632 5633 * src/alpha/osf.S (ffi_closure_osf): Use .rdata for ECOFF. 5634 5635 2001-06-25 Rainer Orth <ro (a] TechFak.Uni-Bielefeld.DE> 5636 5637 * configure.in: Recognize sparc*-sun-* host. 5638 * configure: Regenerate. 5639 5640 2001-06-06 Andrew Haley <aph (a] redhat.com> 5641 5642 * src/alpha/osf.S (__FRAME_BEGIN__): Conditionalize for ELF. 5643 5644 2001-06-03 Andrew Haley <aph (a] 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 5650 2000-05-31 Jeff Sturm <jsturm (a] one-point.com> 5651 5652 * configure.in: Fix AC_ARG_ENABLE usage. 5653 * configure: Rebuilt. 5654 5655 2001-05-06 Bryce McKinlay <bryce (a] waitaki.otago.ac.nz> 5656 5657 * configure.in: Remove warning about beta code. 5658 * configure: Rebuilt. 5659 5660 2001-04-25 Hans Boehm <Hans_Boehm (a] 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 5666 2001-04-18 Jim Wilson <wilson (a] redhat.com> 5667 5668 * src/ia64/unix.S: Delete unnecessary increment and decrement of loc2 5669 to eliminate RAW DV. 5670 5671 2001-04-12 Bryce McKinlay <bryce (a] albatross.co.nz> 5672 5673 * Makefile.am: Make a libtool convenience library. 5674 * Makefile.in: Rebuilt. 5675 5676 2001-03-29 Bryce McKinlay <bryce (a] albatross.co.nz> 5677 5678 * configure.in: Use different syntax for subdirectory creation. 5679 * configure: Rebuilt. 5680 5681 2001-03-27 Jon Beniston <jon (a] 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 5696 2001-03-26 Bryce McKinlay <bryce (a] 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 5704 2001-03-23 Kevin B Hendricks <khendricks (a] 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 5719 2001-03-19 Tom Tromey <tromey (a] redhat.com> 5720 5721 * Makefile.in: Rebuilt. 5722 * Makefile.am (ffitest_LDFLAGS): New macro. 5723 5724 2001-03-02 Nick Clifton <nickc (a] 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 5745 2001-02-08 Joseph S. Myers <jsm28 (a] cam.ac.uk> 5746 5747 * include/ffi.h.in: Change sourceware.cygnus.com references to 5748 gcc.gnu.org. 5749 5750 2000-12-09 Richard Henderson <rth (a] 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 5758 2000-12-07 Richard Henderson <rth (a] 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 5774 2000-09-10 Alexandre Oliva <aoliva (a] 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 5783 2000-08-22 Alexandre Oliva <aoliva (a] redhat.com> 5784 5785 * configure.in [i*86-*-freebsd*] (TARGET, TARGETDIR): Set. 5786 * configure: Rebuilt. 5787 5788 2000-05-11 Scott Bambrough <scottb (a] 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 5794 2000-05-04 Tom Tromey <tromey (a] cygnus.com> 5795 5796 * configure: Rebuilt. 5797 * configure.in: Match `arm*-*-linux-*'. 5798 From Chris Dornan <cdornan (a] arm.com>. 5799 5800 2000-04-28 Jakub Jelinek <jakub (a] 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 5816 2000-04-16 Anthony Green <green (a] redhat.com> 5817 5818 * configure: Rebuilt. 5819 * configure.in: Change i*86-pc-linux* to i*86-*-linux*. 5820 5821 2000-04-14 Jakub Jelinek <jakub (a] 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 5856 2000-04-04 Alexandre Petit-Bianco <apbianco (a] cygnus.com> 5857 5858 * configure: Rebuilt. 5859 * configure.in: (i*86-*-solaris*): New libffi target. Patch 5860 proposed by Bryce McKinlay. 5861 5862 2000-03-20 Tom Tromey <tromey (a] cygnus.com> 5863 5864 * Makefile.in: Hand edit for java_raw_api.lo. 5865 5866 2000-03-08 Bryce McKinlay <bryce (a] albatross.co.nz> 5867 5868 * config.guess, config.sub: Update from the gcc tree. 5869 Fix for PR libgcj/168. 5870 5871 2000-03-03 Tom Tromey <tromey (a] 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 5880 2000-03-02 Tom Tromey <tromey (a] cygnus.com> 5881 5882 * Makefile.in: Rebuilt. 5883 * Makefile.am (TARGET_SRC_IA64): Use `ia64', not `alpha', as 5884 directory name. 5885 5886 2000-02-25 Hans Boehm <boehm (a] 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 5907 2000-01-04 Tom Tromey <tromey (a] cygnus.com> 5908 5909 * Makefile.in: Rebuilt with newer automake. 5910 5911 1999-12-31 Tom Tromey <tromey (a] cygnus.com> 5912 5913 * Makefile.am (INCLUDES): Added -I$(top_srcdir)/src. 5914 5915 1999-09-01 Tom Tromey <tromey (a] 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 5925 1999-08-09 Anthony Green <green (a] 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 5938 1999-08-02 Kresten Krab Thorup <krab (a] 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 5968 Thu Jul 8 14:28:42 1999 Anthony Green <green (a] cygnus.com> 5969 5970 * configure.in: Add x86 and powerpc BeOS configurations. 5971 From Makoto Kato <m_kato (a] ga2.so-net.ne.jp>. 5972 5973 1999-05-09 Anthony Green <green (a] 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 5992 1998-11-29 Anthony Green <green (a] 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