Commit Graph

574 Commits

Author SHA1 Message Date
Alan Modra
3521ba8b2e PowerPC64 ELFv2 support
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-11-18 01:05:08 +10:30
Alan Modra
3cbe17f7de libtool.m4 (_LT_ENABLE_LOCK <ld -m flags>): Remove non-canonical ppc host match.
* 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-09-20 19:17:52 +09:30
Alan Modra
40b45a6d76 ffi.c (ffi_prep_args_SYSV): Move var declaration before statements.
* 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-06-25 09:38:47 +09:30
Dominique d'Humieres
1e1ba2d795 Fix several libffi testsuite failures on 64-bit SPARC and PowerPC (PR 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-05-22 11:47:52 +00:00
Kai Tietz
8280eba03b win64.S: Make use of ffi_closure_win64_inner symbol pc-relative.
* src/x86/win64.S: Make use of ffi_closure_win64_inner
	symbol pc-relative.

From-SVN: r196900
2013-03-22 10:38:55 +01:00
Dave Korn
bb78d7c4a2 closures.c (is_emutramp_enabled [!FFI_MMAP_EXEC_EMUTRAMP_PAX]): Move default 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-03-07 22:25:20 +00:00
Andreas Tobler
8f093ea0b1 ffi.c (ffi_prep_cif_machdep): Fix case where DOUBLE equal LONGDOUBLE.
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-02-06 18:32:41 +01:00
Thorsten Glaser
7b045477e2 re PR libffi/56000 (FAIL: libffi.call/cls_uchar_va.c -O0 -W -Wall output 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
2013-01-17 19:24:08 +01:00
Andreas Schwab
4e70f25ffe * Makefile.am (ACLOCAL_AMFLAGS, TEXINFO_TEX, MAKEINFOFLAGS)
(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-29 16:25:27 +00:00
Anthony Green
b4b575ce78 libffi merge
From-SVN: r194722
2012-12-26 16:28:02 +00:00
Alan Modra
7054d980c1 linux64_closure.S: Add new ABI support.
* src/powerpc/linux64_closure.S: Add new ABI support.
	* src/powerpc/linux64.S: Likewise.

From-SVN: r193015
2012-10-31 14:15:34 +10:30
David Edelsohn
cbbd536a26 * configure: Regenerated.
From-SVN: r191320
2012-09-14 19:31:56 -04:00
Andrew Pinski
c5a3fffaab re PR libffi/53014 (libffi failures on mips64-linux-gnu with soft-float)
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-26 11:29:21 -07:00
Uros Bizjak
aa5d8db019 ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, just return FFI_BAD_ABI 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-08-08 16:48:43 +02:00
Uros Bizjak
1ff8c79bc5 ChangeLog.libgcj: Move last two entries ...
* ChangeLog.libgcj: Move last two entries ...
	* ChangeLog: ... here.

From-SVN: r189627
2012-07-18 21:40:46 +02:00
H.J. Lu
d6a89122a6 Define FFI_SIZEOF_JAVA_RAW to 4 for x32
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-07-18 12:19:34 -07:00
H.J. Lu
e6d5f8c9c4 Regenerate configure files for libtool.m4 change
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-05-16 15:11:18 -07:00
Peter Bergner
efe2a4b70e ffi.c (ffi_prep_args_SYSV): Declare double_tmp.
* 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-04-02 13:29:22 -05:00
Anthony Green
6adb730866 Restore trampled commits
From-SVN: r185955
2012-03-29 12:41:52 +00:00
David Edelsohn
e555251484 Add missing ChangeLog entry from 2012-03-09 commit.
From-SVN: r185499
2012-03-17 20:45:24 -04:00
Kaz Kojima
60f9021b2a ffi.c (ffi_prep_closure_loc): Don't ASSERT ABI test, just return FFI_BAD_ABI 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-13 22:50:16 +00:00
David Edelsohn
935a74eea2 aix_closure.S (ffi_closure_ASM): Adjust for Darwin64 change to return value 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-09 14:51:54 -05:00
Anthony Green
34fa7690ac Merge upstream libffi
From-SVN: r184897
2012-03-04 21:11:09 +00:00
Mikael Pettersson
2c2a780f7f re PR libffi/52223 (libffi's man page install breaks with multilibs and overridden mandir)
PR libffi/52223
	* Makefile.am (FLAGS_TO_PASS): Define.
	* Makefile.in: Regenerate.

From-SVN: r184592
2012-02-27 11:00:12 +01:00
Kai Tietz
9ebe314b13 Correct date in ChangeLog
From-SVN: r184527
2012-02-23 22:03:13 +01:00
Kai Tietz
ffc81ae2c8 re PR libffi/52221 ([libffi] r183675,r184021 needs to be fixed.)
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-23 22:02:27 +01:00
Kai Tietz
d86c2d9495 re PR libffi/52221 ([libffi] r183675,r184021 needs to be fixed.)
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-13 16:18:14 +01:00
Eric Botcazou
a0dfc1fed5 * src/sparc/v9.S (STACKFRAME): Bump to 176.
From-SVN: r184129
2012-02-11 11:00:40 +00:00
Kai Tietz
1e98f62d74 configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64 windows target.
* configure.ac (AM_LTLDFLAGS): Add -no-undefine for x64
        windows target.
        * configure: Regenerated.

From-SVN: r184103
2012-02-10 17:44:08 +01:00
Kai Tietz
893f430128 prep_cif.c (ffi_prep_cif): Allow for X86_WIN32 also FFI_THISCALL.
* 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-02-08 22:35:19 +01:00
Kai Tietz
9b850dd969 ffi.c (ffi_call_win32): Add new argument to prototype for specify 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-29 14:29:53 +01:00
Andreas Schwab
c1d5e72390 sysv.S (ffi_call_SYSV): Properly test for plain mc68000.
* 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-23 20:00:44 +00:00
Jakub Jelinek
01ddefeba7 re PR target/48496 ('asm' operand requires impossible reload)
PR rtl-optimization/48496
	* src/ia64/ffi.c (ffi_call): Fix up aliasing violations.

From-SVN: r183301
2012-01-19 11:47:59 +01:00
Rainer Orth
51a9af17e0 Build 64-bit libffi multilib for i?86-linux
* configure.ac (i?86-*-*): Set TARGET to X86_64.
	* configure: Regenerate.

From-SVN: r183017
2012-01-09 16:20:18 +00:00
Andrew Pinski
69090788c1 re PR libffi/50051 (MIPS libffi does not compile for mips64octeon-linux-gnu)
2011-12-07  Andrew Pinski  <apinski@cavium.com>

	PR libffi/50051
	* src/mips/n32.S: Add ".set mips4".

From-SVN: r182092
2011-12-07 14:59:06 -08:00
Andrew Pinski
3b21983d06 n32.S: Add ".set mips4".
2011-12-07  Andrew Pinski  <apinski@cavium.com>

	* src/mips/n32.S: Add ".set mips4".

From-SVN: r182091
2011-12-07 14:58:31 -08:00
Andreas Tobler
c6084f681e Additional fixes for FreeBSD-10 build:
/:			* 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-21 20:22:35 +01:00
Richard Henderson
8b01bdb087 configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
* configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check.
        * configure, aclocal.m4: Rebuild.

From-SVN: r181266
2011-11-10 11:34:57 -08:00
Iain Sandoe
b90c2c4c0b re PR libffi/49594 (bootstrap failure in libffi:darwin_closure for 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-09-04 19:19:39 +00:00
Andrew Haley
4ac9cf2b5d ffi.c (FFI_INIT_TRAMPOLINE): Remove hard-coded assembly instructions.
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-08-25 10:37:36 +00:00
Andrew Haley
4d4a9b72be ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
2011-07-11  Andrew Haley  <aph@redhat.com>

        * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.

From-SVN: r176172
2011-07-11 17:50:04 +00:00
Rainer Orth
902233e09c cls_double_va.c: Move PR number to comment.
* 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-29 12:47:56 +00:00
Rainer Orth
2ac88e57d7 re PR libffi/46660 (cls_double_va.c, cls_longdouble_va.c FAIL on IRIX 6.5)
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-29 07:31:05 +00:00
Rainer Orth
652de9ffb6 huge_struct.c (test_large_fn): Use PRIu8, PRId8 instead of %hhu, %hhd.
* 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-06-14 15:54:22 +00:00
Rainer Orth
9d9305ea5d osf.S (UA_SI, [...]): Define.
* 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-04-29 08:49:08 +00:00
Ralf Wildenhues
029c8f3e77 Remove freebsd1 from libtool.m4 macros and config.rpath.
/:
	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
2011-02-13 11:45:53 +00:00
Rainer Orth
1bbb474148 re PR libffi/46661 (32-bit cls_pointer.c, cls_pointer_stack.c FAIL on IRIX 6.5)
PR libffi/46661
	* testsuite/libffi.call/cls_pointer.c (main): Cast void * to
	uintptr_t first.
	* testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.

From-SVN: r169963
2011-02-09 10:01:07 +00:00
Joel Sherrill
9993cf6070 ffi.c: Add RTEMS support for cache flushing.
2011-02-07  Joel Sherrill <joel.sherrill@oarcorp.com>

	* libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
	Handle case when CPU variant does not have long double support.
	* libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
	and cores with soft floating point.

From-SVN: r169938
2011-02-08 19:19:01 +00:00
Joel Sherrill
899fb23dc0 ffi.c: Add RTEMS support for cache flushing.
2011-02-07  Joel Sherrill <joel.sherrill@oarcorp.com>

	* libffi/src/m68k/ffi.c: Add RTEMS support for cache flushing.
	Handle case when CPU variant does not have long double support.
	* libffi/src/m68k/sysv.S: Add support for mc68000, Coldfire,
	and cores with soft floating point.

From-SVN: r169937
2011-02-08 19:18:31 +00:00
Joel Sherrill
38db4d09fa configure.ac: Add mips*-*-rtems* support.
2011-02-07  Joel Sherrill <joel.sherrill@oarcorp.com>

	* configure.ac: Add mips*-*-rtems* support.
	* configure: Regenerate.
	* src/mips/ffitarget.h: Ensure needed constants are available
	for targets which do not have sgidefs.h.

From-SVN: r169936
2011-02-08 19:17:55 +00:00
Uros Bizjak
38be4072f9 transpose_optimization_2.f90: Cleanup original dump.
* gfortran.dg/transpose_optimization_2.f90: Cleanup original dump.

From-SVN: r169876
2011-02-07 08:34:57 +01:00
Dave Korn
214dab6607 re PR target/40125 (libgcc_s DLL installed in wrong directory in cross toolchain)
PR target/40125
	* configure.ac (AM_LTLDFLAGS): Add -bindir option for windows DLLs.
	* configure: Regenerate.

From-SVN: r169272
2011-01-26 03:33:09 +00:00
Jakub Jelinek
d652f226fc Update Copyright years for files modified in 2010.
From-SVN: r168438
2011-01-03 21:52:22 +01:00
Iain Sandoe
3a9f56e8c8 re PR libffi/29152 (64-bit darwin ppc port needed for libffi)
libffi:
	PR libffi/29152
	PR libffi/42378
	* src/powerpc/darwin_closure.S: Provide Darwin64 implementation,
	update comments.
	* src/powerpc/ffitarget.h (POWERPC_DARWIN64): New,
	(FFI_TRAMPOLINE_SIZE): Update for Darwin64.
	* src/powerpc/darwin.S: Provide Darwin64 implementation,
	update comments.
	* src/powerpc/ffi_darwin.c: Likewise.

From-SVN: r168016
2010-12-18 08:56:46 +00:00
Rainer Orth
b62305b019 configure.ac (libffi_cv_as_ascii_pseudo_op): Use double backslashes.
* configure.ac (libffi_cv_as_ascii_pseudo_op): Use double
	backslashes.
	(libffi_cv_as_string_pseudo_op): Likewise.
	* configure: Regenerate.

From-SVN: r167502
2010-12-06 16:17:45 +00:00
Chung-Lin Tang
fac6806566 sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
2010-12-03  Chung-Lin Tang  <cltang@codesourcery.com>

	* src/arm/sysv.S (ffi_closure_SYSV): Add UNWIND to .pad directive.
	(ffi_closure_VFP): Same.
	(ffi_call_VFP): Move down to before ffi_closure_VFP. Add '.fpu vfp'
	directive.

From-SVN: r167434
2010-12-03 16:15:26 +00:00
Rainer Orth
ce9315a9f5 ffitest.h [__sgi] (PRId64, PRIu64): Define.
* testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
	(PRIuPTR): Define.

From-SVN: r167332
2010-12-01 14:00:01 +00:00
Richard Henderson
e12bcbf492 sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
2010-11-29  Richard Henderson  <rth@redhat.com>
	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* src/x86/sysv.S (FDE_ENCODING, FDE_ENCODE): Define.
	(.eh_frame): Use FDE_ENCODING.
	(.LASFDE1, .LASFDE2, LASFDE3): Simplify with FDE_ENCODE.

Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>

From-SVN: r167251
2010-11-29 16:43:24 +00:00
Rainer Orth
ed2a97eb0d libffi-dg.exp: Rename ...
* testsuite/lib/libffi-dg.exp: Rename ...
	* testsuite/lib/libffi.exp: ... to this.
	* libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
	* libffi/testsuite/libffi.special/special.exp: Likewise.

From-SVN: r166768
2010-11-15 20:30:37 +00:00
Chung-Lin Tang
46e0720d66 Add ARM VFP ABI support to libffi.
From-SVN: r166032
2010-10-28 18:11:11 +00:00
Jakub Jelinek
731fc5f040 re PR libffi/45677 (Bad stack allocation for ffi function calls on x86-64)
PR libffi/45677
	* src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
	a multiple of 8.
	* testsuite/libffi.call/many2.c: New test.

From-SVN: r164829
2010-10-01 09:31:49 +02:00
Mark Wielaard
2cd8686617 closures.c (open_temp_exec_file_mnt): Check if getmntent_r returns NULL.
* src/closures.c (open_temp_exec_file_mnt): Check if getmntent_r
	returns NULL.

From-SVN: r163809
2010-09-03 10:35:35 +00:00
Jakub Jelinek
be94d007e6 Fix up a wrong ChangeLog entry:
* testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.

From-SVN: r163099
2010-08-11 15:59:35 +02:00
Andreas Tobler
87d072e09a configure.ac: Add target powerpc64-*-freebsd*.
2010-08-09  Andreas Tobler  <andreast@fgznet.ch>

        * configure.ac: Add target powerpc64-*-freebsd*.
        * configure: Regenerate.
        * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
        -mlong-double-128 only to linux targets.
        * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
        * testsuite/libffi.call/cls_longdouble.c: Likewise.
        * testsuite/libffi.call/huge_struct.c: Likewise.

From-SVN: r163030
2010-08-09 15:00:32 +02:00
Dan Witte
7862d49629 Remove warnings
From-SVN: r162959
2010-08-06 20:05:33 +00:00
Anthony Green
833bb7dfad Add missing commit from patch earlier today
From-SVN: r162958
2010-08-06 20:02:41 +00:00
Dan Witte
49f6cd1f25 Add OS/2 Support
Co-Authored-By: Walter Meinl <wuno@lsvw.de>

From-SVN: r162946
2010-08-06 12:36:26 +00:00
Dan Horák
3d420bdf4d Define libffi macros carefully
From-SVN: r162945
2010-08-06 12:26:52 +00:00
Michael Kohler
0af2372948 Fix spelling errors
From-SVN: r162938
2010-08-06 05:45:23 +00:00
Evan Phoenix
07b6d9efd9 Fix SELinux test
From-SVN: r162937
2010-08-06 05:40:15 +00:00
Matthias Klose
4736718a4e Improve libffi comments
From-SVN: r162936
2010-08-06 05:28:37 +00:00
Anthony Green
3ac097a580 Enable build with microsoft compiler
From-SVN: r162935
2010-08-06 05:24:11 +00:00
Oliver Kiddle
fc28e435cf Enable build with sun compiler
From-SVN: r162933
2010-08-06 04:55:25 +00:00
Conrad Irwin
f2e994f3c6 Add closure API example to documentation
From-SVN: r162932
2010-08-06 04:45:46 +00:00
Neil Roberts
4138b429ca sysv.S (ffi_call_SYSV): Align the stack pointer to 16-bytes.
2010-07-07   Neil Roberts <neil@linux.intel.com>

	* src/x86/sysv.S (ffi_call_SYSV): Align the stack pointer to
	16-bytes.

From-SVN: r161922
2010-07-07 15:59:30 +00:00
Jakub Jelinek
f0ee5e3e2a Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
* Makefile.am (AM_MAKEFLAGS): Pass also mandir to submakes.
	* Makefile.in: Regenerated.

From-SVN: r161731
2010-07-02 18:52:38 +02:00
Rainer Orth
d416abb494 configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as output, too.
* configure.ac (libffi_cv_as_x86_pcrel): Check for illegal in as
	output, too.
	(libffi_cv_as_ascii_pseudo_op): Check for .ascii.
	(libffi_cv_as_string_pseudo_op): Check for .string.
	* configure: Regenerate.
	* fficonfig.h.in: Regenerate.
	* src/x86/sysv.S (.eh_frame): Use .ascii, .string or error.

From-SVN: r159570
2010-05-19 15:31:36 +00:00
Jakub Jelinek
60d3aec487 tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not used count variable.
* tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
	used count variable.
	* genemit.c (gen_expand, gen_split): Avoid set but not used warnings
	when operandN variables aren't used in the body of the expander
	or splitter.
	* tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
	FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
	* tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
	* tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
	FOR_EACH_IMM_USE_ON_STMT): Likewise.
	* tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
	* tree.c (PROCESS_ARG): Likewise.
fortran/
	* parse.c (parse_derived, parse_enum): Avoid set but not used
	warning.
java/
	* expr.c (process_jvm_instruction): Avoid set but not used warning.
	* builtins.c (compareAndSwapInt_builtin, compareAndSwapLong_builtin,
	getVolatile_builtin): Likewise.
libjava/
	* exception.cc (_Jv_Throw): Avoid set but not used warning.
	* include/java-assert.h (JvAssertMessage, JvAssert): Use argument in
	sizeof to avoid set but not used warnings.
libjava/classpath/
	* native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c
	(Java_gnu_javax_sound_midi_alsa_AlsaPortDevice_run_1receiver_1thread_1):
	Avoid set but not used warning.
libiberty/
	* regex.c (byte_re_match_2_internal): Avoid set but not used
	warning.
gcc/testsuite/
	* gcc.dg/builtin-choose-expr.c: Avoid set but not used warnings.
	* gcc.dg/trunc-1.c: Likewise.
	* gcc.dg/vla-9.c: Likewise.
	* gcc.dg/dfp/composite-type.c: Likewise.
libffi/
	* testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.

From-SVN: r158084
2010-04-07 22:27:37 +02:00
Ralf Wildenhues
4d9e844614 Update to Automake 1.11.1.
gcc/:
	PR other/43620
	* doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
	* aclocal.m4: Regenerate.

lto-plugin/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.

intl/:
	* aclocal.m4: Regenerate.

boehm-gc/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* include/Makefile.in: Regenerate.

fixincludes/:
	* aclocal.m4: Regenerate.

libcpp/:
	* aclocal.m4: Regenerate.

libdecnumber/:
	* aclocal.m4: Regenerate.

libffi/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* include/Makefile.in: Regenerate.
	* man/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libgfortran/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.

libgomp/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libjava/classpath/:
	* HACKING: Update required Automake version.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* doc/Makefile.in: Regenerate.
	* doc/api/Makefile.in: Regenerate.
	* examples/Makefile.in: Regenerate.
	* external/Makefile.in: Regenerate.
	* external/jsr166/Makefile.in: Regenerate.
	* external/relaxngDatatype/Makefile.in: Regenerate.
	* external/sax/Makefile.in: Regenerate.
	* external/w3c_dom/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* lib/Makefile.in: Regenerate.
	* native/Makefile.in: Regenerate.
	* native/fdlibm/Makefile.in: Regenerate.
	* native/jawt/Makefile.in: Regenerate.
	* native/jni/Makefile.in: Regenerate.
	* native/jni/classpath/Makefile.in: Regenerate.
	* native/jni/gconf-peer/Makefile.in: Regenerate.
	* native/jni/gstreamer-peer/Makefile.in: Regenerate.
	* native/jni/gtk-peer/Makefile.in: Regenerate.
	* native/jni/java-io/Makefile.in: Regenerate.
	* native/jni/java-lang/Makefile.in: Regenerate.
	* native/jni/java-math/Makefile.in: Regenerate.
	* native/jni/java-net/Makefile.in: Regenerate.
	* native/jni/java-nio/Makefile.in: Regenerate.
	* native/jni/java-util/Makefile.in: Regenerate.
	* native/jni/midi-alsa/Makefile.in: Regenerate.
	* native/jni/midi-dssi/Makefile.in: Regenerate.
	* native/jni/native-lib/Makefile.in: Regenerate.
	* native/jni/qt-peer/Makefile.in: Regenerate.
	* native/jni/xmlj/Makefile.in: Regenerate.
	* native/plugin/Makefile.in: Regenerate.
	* resource/Makefile.in: Regenerate.
	* scripts/Makefile.in: Regenerate.
	* tools/Makefile.in: Regenerate.

libjava/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* gcj/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libjava/libltdl/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.

libmudflap/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* testsuite/Makefile.in: Regenerate.

libobjc/:
	* aclocal.m4: Regenerate.

libssp/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.

libstdc++-v3/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* doc/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* libsupc++/Makefile.in: Regenerate.
	* po/Makefile.in: Regenerate.
	* python/Makefile.in: Regenerate.
	* src/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

zlib/:
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.

From-SVN: r157949
2010-04-02 18:18:06 +00:00
Rainer Orth
f4b130bb74 configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
* configure.ac (libffi_cv_as_x86_64_unwind_section_type): New test.
	* configure: Regenerate.
	* fficonfig.h.in: Regenerate.
	* libffi/src/x86/unix64.S (.eh_frame)
	[HAVE_AS_X86_64_UNWIND_SECTION_TYPE]: Use @unwind section type.

From-SVN: r157466
2010-03-15 19:36:26 +00:00
Rainer Orth
22faf0048f libffi.texi (The Closure API): Fix typo.
* doc/libffi.texi (The Closure API): Fix typo.
	* doc/libffi.info: Remove.

From-SVN: r157049
2010-02-24 16:02:17 +00:00
Matthias Klose
694d3cfd60 sysv.S (__ARM_ARCH__): Define for processor __ARM_ARCH_7EM__.
2010-02-15  Matthias Klose  <doko@ubuntu.com>

        * src/arm/sysv.S (__ARM_ARCH__): Define for processor
        __ARM_ARCH_7EM__.

From-SVN: r156771
2010-02-15 15:19:30 +00:00
Rainer Orth
ec168029ae re PR libffi/40701 (Many libffi tests fail to compile on Tru64 UNIX)
PR libffi/40701
	* testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
	PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
	* testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
	alpha*-dec-osf*.
	* testsuite/libffi.call/cls_align_uint64.c: Likewise.
	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
	* testsuite/libffi.call/return_ll1.c: Likewise.
	* testsuite/libffi.call/stret_medium2.c: Likewise.
	* testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
	MAP_FAILED to char *.

From-SVN: r155710
2010-01-07 20:35:33 +00:00
Rainer Orth
86d1b9d1e0 * src/mips/n32.S: Use .abicalls and .eh_frame with __GNUC__.
From-SVN: r155674
2010-01-06 14:22:26 +00:00
Anthony Green
78542dee33 Update README for libffi 3.0.9.
From-SVN: r155553
2010-01-01 12:50:08 +00:00
Matthias Klose
50117ecbdb Define HAVE_LONG_DOUBLE appropriately for MIPS.
From-SVN: r155552
2010-01-01 12:46:02 +00:00
Anthony Green
bc472c0054 xfail tests for AVR32
From-SVN: r155551
2010-01-01 12:40:18 +00:00
Andreas Tobler
d7e9538ee5 Fixes for HPUX.
From-SVN: r155550
2010-01-01 12:36:07 +00:00
Andreas Tobler
cb14fcb878 Add openbsd support.
From-SVN: r155549
2010-01-01 12:32:24 +00:00
Anthony Green
1098bcf812 Update xfails.
From-SVN: r155548
2010-01-01 12:26:49 +00:00
Anthony Green
a761df3da4 Windows patch
From-SVN: r155540
2009-12-31 17:44:32 +00:00
Anthony Green
493278bea5 New test case.
From-SVN: r155538
2009-12-31 16:58:55 +00:00
David Edelsohn
72b79d3945 ffi_darwin.c (ffi_prep_args): Copy abi and nargs to local variables.
* src/powerpc/ffi_darwin.c (ffi_prep_args): Copy abi and nargs to
        local variables.
        (aix_adjust_aggregate_sizes): New function.
        (ffi_prep_cif_machdep): Call it.

From-SVN: r155492
2009-12-28 13:19:18 -05:00
Andreas Tobler
99fba2c42a configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
2009-12-26  Andreas Tobler  <a.tobler@schweiz.org>

	* configure.ac: Define FFI_MMAP_EXEC_WRIT for the given targets.
	* configure: Regenerate.
	* fficonfig.h.in: Likewise.
	* src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
	Solaris/x86.

From-SVN: r155475
2009-12-26 19:49:55 +01:00
Andreas Schwab
302486f4fb ffi.c (ffi_prep_args_SYSV): Advance intarg_count when a float arguments is passed in memory.
* src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count
when a float arguments is passed in memory.
(ffi_closure_helper_SYSV): Mark general registers as used up when
a 64bit or soft-float long double argument is passed in memory.

From-SVN: r155473
2009-12-26 12:40:27 +00:00
Anthony Green
b8f38e8917 Fix ChangeLog entry date
From-SVN: r155472
2009-12-26 05:04:08 +00:00
Matthias Klose
2c57b16134 Fix libffi docs
From-SVN: r155471
2009-12-26 05:01:43 +00:00
Frank Everdij
c4205f77f3 IRIX support
From-SVN: r155470
2009-12-26 04:59:25 +00:00
Bradley Smith
124f60ab29 avr32 libffi port
From-SVN: r155469
2009-12-26 04:21:07 +00:00
Andreas Tobler
938a483f0d configure.ac: Make i?86 build on FreeBSD and OpenBSD.
2009-12-21  Andreas Tobler  <a.tobler@schweiz.org>

	* configure.ac: Make i?86 build on FreeBSD and OpenBSD.
	* configure: Regenerate.

From-SVN: r155373
2009-12-21 17:31:31 +01:00