From: jakub Date: Tue, 3 Apr 2007 09:12:40 +0000 (+0000) Subject: * src/closures.c: Include sys/statfs.h. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=169d14e97e8a40b6617e7dffc34b46a9b3a79055;p=gc * src/closures.c: Include sys/statfs.h. (_GNU_SOURCE): Define on Linux. (FFI_MMAP_EXEC_SELINUX): Define. (selinux_enabled): New variable. (selinux_enabled_check): New function. (is_selinux_enabled): Define. (dlmmap): Use it. * configure.ac (NO_EXECUTE_PERMISSION): Set by default. * configure: Rebuilt. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123457 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/ChangeLog b/ChangeLog index 89cabf0e..aad88393 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-04-03 Jakub Jelinek + + * configure.ac (NO_EXECUTE_PERMISSION): Set by default. + * configure: Rebuilt. + 2007-03-07 Alexandre Oliva * include/gc.h (GC_REGISTER_FINALIZER_UNREACHABLE): New. diff --git a/configure b/configure index 8d34fbdf..c13c8ec8 100755 --- a/configure +++ b/configure @@ -6826,11 +6826,9 @@ LIBS="$oldLIBS" # Configuration of machine-dependent code # -# We don't set NO_EXECUTE_PERMISSION by default because gcj (and -# anything else that creates trampolines in gc-allocated memory) -# always needs exec permission. The exceptions to this are IA-64 and -# some variations of Power PC, where trampolines don't contain -# executable code. +# Set NO_EXECUTE_PERMISSION by default because gcj already uses +# ffi_closure_{alloc,free} which takes care of allocating trampolines +# in executable memory. # echo "$as_me:$LINENO: checking which machine-dependent code should be used" >&5 echo $ECHO_N "checking which machine-dependent code should be used... $ECHO_C" >&6 @@ -6891,14 +6889,14 @@ _ACEOF machdep="sparc_mach_dep.lo" ;; ia64-*-*) + machdep="mach_dep.lo ia64_save_regs_in_stack.lo" + ;; +esac cat >>confdefs.h <<\_ACEOF #define NO_EXECUTE_PERMISSION 1 _ACEOF - machdep="mach_dep.lo ia64_save_regs_in_stack.lo" - ;; -esac if test x"$machdep" = x; then echo "$as_me:$LINENO: result: $machdep" >&5 echo "${ECHO_T}$machdep" >&6 diff --git a/configure.ac b/configure.ac index afc014d7..d4dd16b9 100644 --- a/configure.ac +++ b/configure.ac @@ -364,11 +364,9 @@ LIBS="$oldLIBS" # Configuration of machine-dependent code # -# We don't set NO_EXECUTE_PERMISSION by default because gcj (and -# anything else that creates trampolines in gc-allocated memory) -# always needs exec permission. The exceptions to this are IA-64 and -# some variations of Power PC, where trampolines don't contain -# executable code. +# Set NO_EXECUTE_PERMISSION by default because gcj already uses +# ffi_closure_{alloc,free} which takes care of allocating trampolines +# in executable memory. # AC_MSG_CHECKING(which machine-dependent code should be used) machdep= @@ -411,10 +409,10 @@ case "$host" in machdep="sparc_mach_dep.lo" ;; ia64-*-*) - AC_DEFINE(NO_EXECUTE_PERMISSION,1,[cause some or all of the heap to not have execute permission]) machdep="mach_dep.lo ia64_save_regs_in_stack.lo" ;; esac +AC_DEFINE(NO_EXECUTE_PERMISSION,1,[cause some or all of the heap to not have execute permission]) if test x"$machdep" = x; then AC_MSG_RESULT($machdep) machdep="mach_dep.lo"