diff options
author | andreast <andreast@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-12-26 18:49:55 +0000 |
---|---|---|
committer | andreast <andreast@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-12-26 18:49:55 +0000 |
commit | 3531d81fc96e1a056686527aafe18cf934ce6d44 (patch) | |
tree | 1662bd43280fd0c940233f8e229b9a2eaec7361e | |
parent | 81b376aefe496a92f695ce84f8a7271a9bcee8c1 (diff) | |
download | gcc-3531d81fc96e1a056686527aafe18cf934ce6d44.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155475 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | libffi/ChangeLog | 8 | ||||
-rwxr-xr-x | libffi/configure | 8 | ||||
-rw-r--r-- | libffi/configure.ac | 8 | ||||
-rw-r--r-- | libffi/fficonfig.h.in | 3 | ||||
-rw-r--r-- | libffi/src/closures.c | 5 |
5 files changed, 27 insertions, 5 deletions
diff --git a/libffi/ChangeLog b/libffi/ChangeLog index cf3605016e1..9d06305c58a 100644 --- a/libffi/ChangeLog +++ b/libffi/ChangeLog @@ -1,3 +1,11 @@ +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. + 2009-12-26 Andreas Schwab <schwab@linux-m68k.org> * src/powerpc/ffi.c (ffi_prep_args_SYSV): Advance intarg_count diff --git a/libffi/configure b/libffi/configure index f8456c9f4b7..aa40a013661 100755 --- a/libffi/configure +++ b/libffi/configure @@ -12405,6 +12405,14 @@ $as_echo "#define HAVE_AS_X86_PCREL 1" >>confdefs.h fi fi +case "$target" in + *-apple-darwin10* | *-*-freebsd* | *-*-openbsd* | *-pc-solaris*) + +$as_echo "#define FFI_MMAP_EXEC_WRIT 1" >>confdefs.h + + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether .eh_frame section should be read-only" >&5 $as_echo_n "checking whether .eh_frame section should be read-only... " >&6; } if test "${libffi_cv_ro_eh_frame+set}" = set; then : diff --git a/libffi/configure.ac b/libffi/configure.ac index a1a016cf082..f101f494177 100644 --- a/libffi/configure.ac +++ b/libffi/configure.ac @@ -271,6 +271,14 @@ if test x$TARGET = xX86 || test x$TARGET = xX86_WIN32 || test x$TARGET = xX86_64 fi fi +case "$target" in + *-apple-darwin10* | *-*-freebsd* | *-*-openbsd* | *-pc-solaris*) + AC_DEFINE(FFI_MMAP_EXEC_WRIT, 1, + [Cannot use malloc on this target, so, we revert to + alternative means]) + ;; +esac + AC_CACHE_CHECK([whether .eh_frame section should be read-only], libffi_cv_ro_eh_frame, [ libffi_cv_ro_eh_frame=no diff --git a/libffi/fficonfig.h.in b/libffi/fficonfig.h.in index 9fce46b2ea9..e03bbf90b27 100644 --- a/libffi/fficonfig.h.in +++ b/libffi/fficonfig.h.in @@ -17,6 +17,9 @@ /* Define this if you want extra debugging. */ #undef FFI_DEBUG +/* Cannot use malloc on this target, so, we revert to alternative means */ +#undef FFI_MMAP_EXEC_WRIT + /* Define this is you do not want support for the raw API. */ #undef FFI_NO_RAW_API diff --git a/libffi/src/closures.c b/libffi/src/closures.c index 48cb41567a9..0b156e0f00d 100644 --- a/libffi/src/closures.c +++ b/libffi/src/closures.c @@ -50,11 +50,6 @@ executable memory. */ # define FFI_MMAP_EXEC_WRIT 1 # endif -# if defined(X86_64) && defined(__sun__) && defined(__svr4__) -/* The data segment on 64-bit Solaris/x86 isn't executable, so use mmap - instead. */ -# define FFI_MMAP_EXEC_WRIT 1 -# endif #endif #if FFI_MMAP_EXEC_WRIT && !defined FFI_MMAP_EXEC_SELINUX |