summaryrefslogtreecommitdiff
path: root/libffi
AgeCommit message (Collapse)Author
2014-02-17re PR libffi/60073 (64-bit libffi.call/cls_double_va.c FAILs after recent ↵Eric Botcazou
modification) PR libffi/60073 * src/sparc/v8.S: Assemble only if !SPARC64. * src/sparc/v9.S: Remove obsolete comment. * src/sparc/ffitarget.h (enum ffi_abi): Add FFI_COMPAT_V9. (V8_ABI_P): New macro. (V9_ABI_P): Likewise. (FFI_EXTRA_CIF_FIELDS): Define only if SPARC64. * src/sparc/ffi.c (ffi_prep_args_v8): Compile only if !SPARC64. (ffi_prep_args_v9): Compile only if SPARC64. (ffi_prep_cif_machdep_core): Use V9_ABI_P predicate. (ffi_prep_cif_machdep): Guard access to nfixedargs field. (ffi_prep_cif_machdep_var): Likewise. (ffi_v9_layout_struct): Compile only if SPARC64. (ffi_call): Deal with FFI_V8PLUS and FFI_COMPAT_V9 and fix warnings. (ffi_prep_closure_loc): Use V9_ABI_P and V8_ABI_P predicates. (ffi_closure_sparc_inner_v8): Compile only if !SPARC64. (ffi_closure_sparc_inner_v9): Compile only if SPARC64. Guard access to nfixedargs field. From-SVN: r207822
2014-02-13re PR libffi/60073 (64-bit libffi.call/cls_double_va.c FAILs after recent ↵Eric Botcazou
modification) PR libffi/60073 * src/sparc/ffitarget.h (FFI_TARGET_SPECIFIC_VARIADIC): Define. (FFI_EXTRA_CIF_FIELDS): Likewise. (FFI_NATIVE_RAW_API): Move around. * src/sparc/ffi.c (ffi_prep_cif_machdep_core): New function from... (ffi_prep_cif_machdep): ...here. Call ffi_prep_cif_machdep_core. (ffi_prep_cif_machdep_var): New function. (ffi_closure_sparc_inner_v9): Do not pass anonymous FP arguments in FP registers. * doc/libffi.texi (Introduction): Fix inaccuracy. From-SVN: r207763
2013-12-10ffitarget.h: Import from upstream.Alan Modra
* src/powerpc/ffitarget.h: Import from upstream. * src/powerpc/ffi_powerpc.h: Likewise. * src/powerpc/ffi.c: Likewise. * src/powerpc/ffi_sysv.c: Likewise. * src/powerpc/ffi_linux64.c: Likewise. * src/powerpc/sysv.S: Likewise. * src/powerpc/ppc_closure.S: Likewise. * src/powerpc/linux64.S: Likewise. * src/powerpc/linux64_closure.S: Likewise. * src/types.c: Likewise. * Makefile.am (EXTRA_DIST): Add new src/powerpc files. (nodist_libffi_la_SOURCES <POWERPC, POWERPC_FREEBSD>): Likewise. * configure.ac (HAVE_LONG_DOUBLE_VARIANT): Define for powerpc. * include/ffi.h.in (ffi_prep_types): Declare. * src/prep_cif.c (ffi_prep_cif_core): Call ffi_prep_types. * configure: Regenerate. * fficonfig.h.in: Regenerate. * Makefile.in: Regenerate. * man/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. From-SVN: r205844
2013-11-18ppc_closure.S: Don't bl .Luint128.Alan Modra
* src/powerpc/ppc_closure.S: Don't bl .Luint128. From-SVN: r204918
2013-11-18PowerPC64 ELFv2 supportAlan Modra
PowerPC64 ELFv2 support * src/powerpc/ffitarget.h: Import from upstream. * src/powerpc/ffi.c: Likewise. * src/powerpc/linux64.S: Likewise. * src/powerpc/linux64_closure.S: Likewise. * doc/libffi.texi: Likewise. * testsuite/libffi.call/cls_double_va.c: Likewise. * testsuite/libffi.call/cls_longdouble_va.c: Likewise. From-SVN: r204917
2013-09-20libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical ppc host match.Alan Modra
* libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical ppc host match. Support little-endian powerpc linux hosts. Regenerate configure throughout. From-SVN: r202773
2013-06-25ffi.c (ffi_prep_args_SYSV): Move var declaration before statements.Alan Modra
* src/powerpc/ffi.c (ffi_prep_args_SYSV): Move var declaration before statements. (ffi_prep_args64): Support little-endian. (ffi_closure_helper_SYSV, ffi_closure_helper_LINUX64): Likewise. * src/powerpc/linux64_closure.S (ffi_closure_LINUX64): Likewise. * src/powerpc/ppc_closure.S (ffi_closure_SYSV): Likewise. From-SVN: r200383
2013-05-22Fix several libffi testsuite failures on 64-bit SPARC and PowerPC (PR ↵Dominique d'Humieres
libffi/56033) PR libffi/56033 * testsuite/libffi.call/cls_struct_va1.c (test_fn): Cast resp to ffi_arg *. * testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise. * testsuite/libffi.call/va_1.c (main): Change res to ffi_arg. * testsuite/libffi.call/va_struct1.c (main): Likewise. Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> From-SVN: r199194
2013-03-22win64.S: Make use of ffi_closure_win64_inner symbol pc-relative.Kai Tietz
* src/x86/win64.S: Make use of ffi_closure_win64_inner symbol pc-relative. From-SVN: r196900
2013-03-07closures.c (is_emutramp_enabled [!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default ↵Dave Korn
definition outside enclosing #if scope. * src/closures.c (is_emutramp_enabled [!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default definition outside enclosing #if scope. From-SVN: r196527
2013-02-06ffi.c (ffi_prep_cif_machdep): Fix case where DOUBLE equal LONGDOUBLE.Andreas Tobler
2013-02-06 Andreas Tobler <andreast@fgznet.ch> * src/powerpc/ffi.c (ffi_prep_cif_machdep): Fix case where DOUBLE equal LONGDOUBLE. From-SVN: r195812
2013-01-17re PR libffi/56000 (FAIL: libffi.call/cls_uchar_va.c -O0 -W -Wall output ↵Thorsten Glaser
pattern test) 2013-01-07 Thorsten Glaser <tg@mirbsd.org> PR middle-end/56000 * testsuite/libffi.call/cls_uchar_va.c, testsuite/libffi.call/cls_ushort_va.c, testsuite/libffi.call/va_1.c: Testsuite fixes. From-SVN: r195277
2012-12-29* Makefile.am (ACLOCAL_AMFLAGS, TEXINFO_TEX, MAKEINFOFLAGS)Andreas Schwab
(STAMP_GENINSRC, STAMP_BUILD_INFO, CLEANFILES) (MAINTAINERCLEANFILES): Define. (all-local, stamp-geninsrc, stamp-build-info): New targets. (doc/libffi.info): Depend on $(STAMP_BUILD_INFO) * configure.ac: Check for modern makeinfo. Add support for --enable-generated-files-in-srcdir. * libffi/mdate-sh: New file. * testsuite/lib/libffi.exp (load_gcc_lib): Load from gcc testsuite lib dir. (libffi-init): Properly set library paths for multilibs and add path to libstdc++. * configure: Regenerate. * aclocal.m4: Regenerate. * Makefile.in: Regenerate. * doc/stamp-vti: Regenerate. * doc/version.texi: Regenerate. * fficonfig.h.in: Regenerate. * include/Makefile.in: Regenerate. * man/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. From-SVN: r194752
2012-12-26libffi mergeAnthony Green
From-SVN: r194722
2012-10-31linux64_closure.S: Add new ABI support.Alan Modra
* src/powerpc/linux64_closure.S: Add new ABI support. * src/powerpc/linux64.S: Likewise. From-SVN: r193015
2012-09-14* configure: Regenerated.David Edelsohn
From-SVN: r191320
2012-08-26re PR libffi/53014 (libffi failures on mips64-linux-gnu with soft-float)Andrew Pinski
2012-08-26 Andrew Pinski <apinski@cavium.com> PR libffi/53014 * src/mips/ffi.c (ffi_prep_closure_loc): Allow n32 with soft-float and n64 with soft-float. From-SVN: r190696
2012-08-08ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, just return FFI_BAD_ABI ↵Uros Bizjak
when things are wrong. * src/s390/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, just return FFI_BAD_ABI when things are wrong. From-SVN: r190230
2012-07-18ChangeLog.libgcj: Move last two entries ...Uros Bizjak
* ChangeLog.libgcj: Move last two entries ... * ChangeLog: ... here. From-SVN: r189627
2012-07-18Define FFI_SIZEOF_JAVA_RAW to 4 for x32H.J. Lu
PR libffi/53982 PR libffi/53973 * src/x86/ffitarget.h: Check __ILP32__ instead of __LP64__ for x32. (FFI_SIZEOF_JAVA_RAW): Defined to 4 for x32. From-SVN: r189626
2012-05-16Regenerate configure files for libtool.m4 changeH.J. Lu
boehm-gc/ * configure: Regenerated. gcc/ * configure: Regenerated. libatomic/ * configure: Regenerated. libffi/ * configure: Regenerated. libgfortran/ * configure: Regenerated. libgomp/ * configure: Regenerated. libitm/ * configure: Regenerated. libjava/classpath/ * configure: Regenerated. libjava/ * configure: Regenerated. libmudflap/ * configure: Regenerated. libobjc/ * configure: Regenerated. libquadmath/ * configure: Regenerated. libssp/ * configure: Regenerated. libstdc++-v3/ * configure: Regenerated. lto-plugin/ * configure: Regenerated. zlib/ * configure: Regenerated. From-SVN: r187616
2012-04-02ffi.c (ffi_prep_args_SYSV): Declare double_tmp.Peter Bergner
* src/powerpc/ffi.c (ffi_prep_args_SYSV): Declare double_tmp. Silence casting pointer to integer of different size warning. Delete goto to previously deleted label. (ffi_call): Silence possibly undefined warning. (ffi_closure_helper_SYSV): Declare variable type. From-SVN: r186091
2012-03-29Restore trampled commitsAnthony Green
From-SVN: r185955
2012-03-17Add missing ChangeLog entry from 2012-03-09 commit.David Edelsohn
From-SVN: r185499
2012-03-13ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, just return FFI_BAD_ABI ↵Kaz Kojima
when things are wrong. * src/sh/ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, just return FFI_BAD_ABI when things are wrong. * src/sh64/ffi.c (ffi_prep_closure_loc): Ditto. From-SVN: r185361
2012-03-09aix_closure.S (ffi_closure_ASM): Adjust for Darwin64 change to return value ↵David Edelsohn
of ffi_closure_helper_DARWIN and... * src/powerpc/aix_closure.S (ffi_closure_ASM): Adjust for Darwin64 change to return value of ffi_closure_helper_DARWIN and load type from return type. From-SVN: r185152
2012-03-04Merge upstream libffiAnthony Green
From-SVN: r184897
2012-02-27re PR libffi/52223 (libffi's man page install breaks with multilibs and ↵Mikael Pettersson
overridden mandir) PR libffi/52223 * Makefile.am (FLAGS_TO_PASS): Define. * Makefile.in: Regenerate. From-SVN: r184592
2012-02-23Correct date in ChangeLogKai Tietz
From-SVN: r184527
2012-02-23re PR libffi/52221 ([libffi] r183675,r184021 needs to be fixed.)Kai Tietz
PR libffi/52221 * src/x86/ffi.c (ffi_closure_raw_THISCALL): New prototype. (ffi_prep_raw_closure_loc): Use ffi_closure_raw_THISCALL for thiscall-convention. (ffi_raw_call): Use ffi_prep_args_raw. * src/x86/win32.S (ffi_closure_raw_THISCALL): Add implementation for stub. From-SVN: r184526
2012-02-13re PR libffi/52221 ([libffi] r183675,r184021 needs to be fixed.)Kai Tietz
PR libffi/52221 * src/x86/ffi.c (ffi_prep_raw_closure_loc): Add thiscall support for X86_WIN32. (FFI_INIT_TRAMPOLINE_THISCALL): Fix displacement. From-SVN: r184155
2012-02-11* src/sparc/v9.S (STACKFRAME): Bump to 176.Eric Botcazou
From-SVN: r184129
2012-02-10configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64 windows target.Kai Tietz
* configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64 windows target. * configure: Regenerated. From-SVN: r184103
2012-02-08prep_cif.c (ffi_prep_cif): Allow for X86_WIN32 also FFI_THISCALL.Kai Tietz
* src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32 also FFI_THISCALL. * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype. (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code. (ffi_prep_closure_loc): Add FFI_THISCALL support. * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size. * src/x86/win32.S (ffi_closure_THISCALL): New closure code for thiscall-calling convention. * testsuite/libffi.call/closure_thiscall.c: New test. From-SVN: r184021
2012-01-29ffi.c (ffi_call_win32): Add new argument to prototype for specify ↵Kai Tietz
calling-convention. * src/libffi/src/x86/ffi.c (ffi_call_win32): Add new argument to prototype for specify calling-convention. (ffi_call): Add support for stdcall/thiscall convention. (ffi_prep_args): Likewise. (ffi_raw_call): Likewise. * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and FFI_FASTCALL. * src/x86/win32.S (_ffi_call_win32): Add support for fastcall/thiscall calling-convention calls. * testsuite/libffi.call/fastthis1_win32.c: New test. * testsuite/libffi.call/fastthis2_win32.c: New test. * testsuite/libffi.call/fastthis3_win32.c: New test. * testsuite/libffi.call/strlen2_win32.c: New test. * testsuite/libffi.call/many2_win32.c: New test. * testsuite/libffi.call/struct1_win32.c: New test. * testsuite/libffi.call/struct2_win32.c: New test. From-SVN: r183676
2012-01-23sysv.S (ffi_call_SYSV): Properly test for plain mc68000.Andreas Schwab
* src/m68k/sysv.S (ffi_call_SYSV): Properly test for plain mc68000. Test for __HAVE_68881__ in addition to __MC68881__. From-SVN: r183451
2012-01-19re PR target/48496 ('asm' operand requires impossible reload)Jakub Jelinek
PR rtl-optimization/48496 * src/ia64/ffi.c (ffi_call): Fix up aliasing violations. From-SVN: r183301
2012-01-09Build 64-bit libffi multilib for i?86-linuxRainer Orth
* configure.ac (i?86-*-*): Set TARGET to X86_64. * configure: Regenerate. From-SVN: r183017
2011-12-07re PR libffi/50051 (MIPS libffi does not compile for mips64octeon-linux-gnu)Andrew Pinski
2011-12-07 Andrew Pinski <apinski@cavium.com> PR libffi/50051 * src/mips/n32.S: Add ".set mips4". From-SVN: r182092
2011-12-07n32.S: Add ".set mips4".Andrew Pinski
2011-12-07 Andrew Pinski <apinski@cavium.com> * src/mips/n32.S: Add ".set mips4". From-SVN: r182091
2011-11-21Additional fixes for FreeBSD-10 build:Andreas Tobler
/: * libtool.m4: Additional FreeBSD 10 fixes. boehm-gc/: * configure: Regenerate. gcc/: * configure: Regenerate. libffi/: * configure: Regenerate. libgfortran/: * configure: Regenerate. libgomp/: * configure: Regenerate. libitm/: * configure: Regenerate. libjava/: * configure.ac: Fix some more FreeBSD 10 issues.. * configure: Regenerate. libjava/libltdl/: * acinclude.m4: Additional FreeBSD 10 fixes. * configure: Regenerate. libmudflap/: * configure: Regenerate. libobjc/: * configure: Regenerate. libquadmath/: * configure: Regenerate. libssp/: * configure: Regenerate. libstdc++-v3/: * configure: Regenerate. lto-plugin/: * configure: Regenerate. zlib/: * configure: Regenerate. From-SVN: r181593
2011-11-10configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.Richard Henderson
* configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check. * configure, aclocal.m4: Rebuild. From-SVN: r181266
2011-09-04re PR libffi/49594 (bootstrap failure in libffi:darwin_closure for ↵Iain Sandoe
powerpc-darwin8) PR libffi/49594 * src/powerpc/darwin_closure.S (stubs): Make the stub binding helper reference track the architecture pointer size. From-SVN: r178512
2011-08-25ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly instructions.Andrew Haley
2011-08-25 Andrew Haley <aph@redhat.com> * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly instructions. * src/arm/sysv.S (ffi_arm_trampoline): Put them here instead. From-SVN: r178060
2011-07-11ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.Andrew Haley
2011-07-11 Andrew Haley <aph@redhat.com> * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache. From-SVN: r176172
2011-06-29cls_double_va.c: Move PR number to comment.Rainer Orth
* testsuite/libffi.call/cls_double_va.c: Move PR number to comment. * testsuite/libffi.call/cls_longdouble_va.c: Likewise. From-SVN: r175632
2011-06-29re PR libffi/46660 (cls_double_va.c, cls_longdouble_va.c FAIL on IRIX 6.5)Rainer Orth
PR libffi/46660 * testsuite/libffi.call/cls_double_va.c: xfail dg-output on mips-sgi-irix6*. * testsuite/libffi.call/cls_longdouble_va.c: Likewise. From-SVN: r175618
2011-06-14huge_struct.c (test_large_fn): Use PRIu8, PRId8 instead of %hhu, %hhd.Rainer Orth
* testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8, PRId8 instead of %hhu, %hhd. * testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8, PRIu8): Define. [__sgi__] (PRId8, PRIu8): Define. From-SVN: r175032
2011-04-29osf.S (UA_SI, [...]): Define.Rainer Orth
* src/alpha/osf.S (UA_SI, FDE_ENCODING, FDE_ENCODE, FDE_ARANGE): Define. Use them to handle ELF vs. ECOFF differences. [__osf__] (_GLOBAL__F_ffi_call_osf): Define. From-SVN: r173151
2011-02-13Remove freebsd1 from libtool.m4 macros and config.rpath.Ralf Wildenhues
/: Import from Libtool and gnulib: 2011-01-27 Gerald Pfeifer <gerald@pfeifer.com> Prepare for supporting FreeBSD 10. * config.rpath: Remove handling of freebsd1* which soon would match FreeBSD 10.0. 2011-01-20 Gerald Pfeifer <gerald@pfeifer.com> (tiny change) Remove support for FreeBSD 1.x. * libtool.m4 (_LT_LINKER_SHLIBS) (_LT_SYS_DYNAMIC_LINKER): Remove handling of freebsd1* which soon would incorrectly match FreeBSD 10.0. boehm-gc/: * configure: Regenerate. gcc/: * configure: Regenerate. libffi/: * configure: Regenerate. libgfortran/: * Makefile.in: Regenerate. * aclocal.m4: Likewise. * configure: Likewise. libgo/: * config/libtool.m4: (_LT_LINKER_SHLIBS) (_LT_SYS_DYNAMIC_LINKER): Remove handling of freebsd1* which soon would incorrectly match FreeBSD 10.0. * configure: Regenerate. libgomp/: * configure: Regenerate. libjava/: * configure: Regenerate. * shlibpath.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Remove handling of freebsd1* which soon would incorrectly match FreeBSD 10.0. libjava/classpath/: * config.rpath, ltcf-c.sh, ltcf-gcj.sh, ltconfig: Remove handling of freebsd1* which soon would match FreeBSD 10.0. * configure: Regenerate. libjava/libltdl/: * acinclude.m4 (AC_LIBTOOL_PROG_LD_SHLIBS) (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Remove handling of freebsd1* which soon would incorrectly match FreeBSD 10.0. * configure: Regenerate. libmudflap/: * configure: Regenerate. libobjc/: * configure: Regenerate. libquadmath/: * Makefile.in: Regenerate. * aclocal.m4: Likewise. * configure: Likewise. libssp/: * Makefile.in: Regenerate. * aclocal.m4: Likewise. * configure: Likewise. libstdc++-v3/: * configure: Regenerate. lto-plugin/: * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * configure: Regenerate. zlib/: * configure: Regenerate. From-SVN: r170106