761 lines
26 KiB
Plaintext
761 lines
26 KiB
Plaintext
Index: libffi/ChangeLog
|
|
===================================================================
|
|
--- libffi.orig/ChangeLog
|
|
+++ libffi/ChangeLog
|
|
@@ -3,6 +3,14 @@
|
|
* src/powerpc/linux64_closure.S: Add new ABI support.
|
|
* src/powerpc/linux64.S: Likewise.
|
|
|
|
+2012-10-30 Magnus Granberg <zorry@gentoo.org>
|
|
+ Pavel Labushev <pavel.labushev@runbox.ru>
|
|
+
|
|
+ * configure.ac: New options pax_emutramp
|
|
+ * configure, fficonfig.h.in: Regenerated
|
|
+ * src/closures.c: New function emutramp_enabled_check() and
|
|
+ checks.
|
|
+
|
|
2012-10-30 Frederick Cheung <frederick.cheung@gmail.com>
|
|
|
|
* configure.ac: Enable FFI_MAP_EXEC_WRIT for Darwin 12 (mountain
|
|
@@ -27,7 +35,7 @@
|
|
* testsuite/libffi.call/cls_struct_va1.c: New.
|
|
* testsuite/libffi.call/cls_uchar_va.c: Likewise.
|
|
* testsuite/libffi.call/cls_uint_va.c: Likewise.
|
|
- * testsuite/libffi.call/cls_ulong_va.c: Liekwise.
|
|
+ * testsuite/libffi.call/cls_ulong_va.c: Likewise.
|
|
* testsuite/libffi.call/cls_ushort_va.c: Likewise.
|
|
* testsuite/libffi.call/nested_struct11.c: Likewise.
|
|
* testsuite/libffi.call/uninitialized.c: Likewise.
|
|
Index: libffi/README
|
|
===================================================================
|
|
--- libffi.orig/README
|
|
+++ libffi/README
|
|
@@ -154,6 +154,7 @@ See the ChangeLog files for details.
|
|
Add Blackfin support.
|
|
Add TILE-Gx/TILEPro support.
|
|
Add AArch64 support.
|
|
+ Add support for PaX enabled kernels with MPROTECT.
|
|
|
|
3.0.11 Apr-11-12
|
|
Lots of build fixes.
|
|
Index: libffi/configure
|
|
===================================================================
|
|
--- libffi.orig/configure
|
|
+++ libffi/configure
|
|
@@ -828,6 +828,7 @@ enable_libtool_lock
|
|
enable_portable_binary
|
|
with_gcc_arch
|
|
enable_maintainer_mode
|
|
+enable_pax_emutramp
|
|
enable_debug
|
|
enable_structs
|
|
enable_raw_api
|
|
@@ -1475,6 +1476,7 @@ Optional Features:
|
|
unportable binaries
|
|
--enable-maintainer-mode enable make rules and dependencies not useful
|
|
(and sometimes confusing) to the casual installer
|
|
+ --enable-pax_emutramp enable pax emulated trampolines, for we can't use PROT_EXEC
|
|
--enable-debug debugging mode
|
|
--disable-structs omit code for struct support
|
|
--disable-raw-api make the raw api unavailable
|
|
@@ -1483,7 +1485,7 @@ Optional Features:
|
|
Optional Packages:
|
|
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
|
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
|
|
- --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
|
|
+ --with-pic try to use only PIC/non-PIC objects [default=use
|
|
both]
|
|
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
|
|
--with-sysroot=DIR Search for dependent libraries within DIR
|
|
@@ -5284,11 +5286,6 @@ else
|
|
lt_cv_sys_max_cmd_len=196608
|
|
;;
|
|
|
|
- os2*)
|
|
- # The test takes a long time on OS/2.
|
|
- lt_cv_sys_max_cmd_len=8192
|
|
- ;;
|
|
-
|
|
osf*)
|
|
# Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
|
|
# due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
|
|
@@ -5328,7 +5325,7 @@ else
|
|
# If test is not a shell built-in, we'll probably end up computing a
|
|
# maximum length that is only half of the actual maximum length, but
|
|
# we can't tell.
|
|
- while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
|
|
+ while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
|
|
= "X$teststring$teststring"; } >/dev/null 2>&1 &&
|
|
test $i != 17 # 1/2 MB should be enough
|
|
do
|
|
@@ -5757,7 +5754,7 @@ irix5* | irix6* | nonstopux*)
|
|
lt_cv_deplibs_check_method=pass_all
|
|
;;
|
|
|
|
-# This must be glibc/ELF.
|
|
+# This must be Linux ELF.
|
|
linux* | k*bsd*-gnu | kopensolaris*-gnu)
|
|
lt_cv_deplibs_check_method=pass_all
|
|
;;
|
|
@@ -6398,13 +6395,13 @@ old_postuninstall_cmds=
|
|
if test -n "$RANLIB"; then
|
|
case $host_os in
|
|
openbsd*)
|
|
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
|
|
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
|
|
;;
|
|
*)
|
|
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
|
|
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
|
|
;;
|
|
esac
|
|
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
|
|
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
|
|
fi
|
|
|
|
case $host_os in
|
|
@@ -6551,7 +6548,6 @@ for ac_symprfx in "" "_"; do
|
|
# which start with @ or ?.
|
|
lt_cv_sys_global_symbol_pipe="$AWK '"\
|
|
" {last_section=section; section=\$ 3};"\
|
|
-" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
|
|
" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
|
|
" \$ 0!~/External *\|/{next};"\
|
|
" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
|
|
@@ -6856,7 +6852,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*
|
|
LD="${LD-ld} -m elf_i386_fbsd"
|
|
;;
|
|
x86_64-*linux*)
|
|
- LD="${LD-ld} -m elf_i386"
|
|
+ case `/usr/bin/file conftest.o` in
|
|
+ *x86-64*)
|
|
+ LD="${LD-ld} -m elf32_x86_64"
|
|
+ ;;
|
|
+ *)
|
|
+ LD="${LD-ld} -m elf_i386"
|
|
+ ;;
|
|
+ esac
|
|
;;
|
|
ppc64-*linux*|powerpc64-*linux*)
|
|
LD="${LD-ld} -m elf32ppclinux"
|
|
@@ -6940,7 +6943,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
|
|
CFLAGS="$SAVE_CFLAGS"
|
|
fi
|
|
;;
|
|
-*-*solaris*)
|
|
+sparc*-*solaris*)
|
|
# Find out which ABI we are using.
|
|
echo 'int i;' > conftest.$ac_ext
|
|
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
|
|
@@ -6951,20 +6954,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
|
|
case `/usr/bin/file conftest.o` in
|
|
*64-bit*)
|
|
case $lt_cv_prog_gnu_ld in
|
|
- yes*)
|
|
- case $host in
|
|
- i?86-*-solaris*)
|
|
- LD="${LD-ld} -m elf_x86_64"
|
|
- ;;
|
|
- sparc*-*-solaris*)
|
|
- LD="${LD-ld} -m elf64_sparc"
|
|
- ;;
|
|
- esac
|
|
- # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
|
|
- if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
|
|
- LD="${LD-ld}_sol2"
|
|
- fi
|
|
- ;;
|
|
+ yes*) LD="${LD-ld} -m elf64_sparc" ;;
|
|
*)
|
|
if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
|
|
LD="${LD-ld} -64"
|
|
@@ -7604,13 +7594,7 @@ else
|
|
$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
|
|
-dynamiclib -Wl,-single_module conftest.c 2>conftest.err
|
|
_lt_result=$?
|
|
- # If there is a non-empty error log, and "single_module"
|
|
- # appears in it, assume the flag caused a linker warning
|
|
- if test -s conftest.err && $GREP single_module conftest.err; then
|
|
- cat conftest.err >&5
|
|
- # Otherwise, if the output was created with a 0 exit code from
|
|
- # the compiler, it worked.
|
|
- elif test -f libconftest.dylib && test $_lt_result -eq 0; then
|
|
+ if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
|
|
lt_cv_apple_cc_single_mod=yes
|
|
else
|
|
cat conftest.err >&5
|
|
@@ -7621,7 +7605,6 @@ else
|
|
fi
|
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
|
|
$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
|
|
-
|
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
|
|
$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
|
|
if ${lt_cv_ld_exported_symbols_list+:} false; then :
|
|
@@ -7654,7 +7637,6 @@ rm -f core conftest.err conftest.$ac_obj
|
|
fi
|
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
|
|
$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
|
|
-
|
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
|
|
$as_echo_n "checking for -force_load linker flag... " >&6; }
|
|
if ${lt_cv_ld_force_load+:} false; then :
|
|
@@ -7676,9 +7658,7 @@ _LT_EOF
|
|
echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
|
|
$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
|
|
_lt_result=$?
|
|
- if test -s conftest.err && $GREP force_load conftest.err; then
|
|
- cat conftest.err >&5
|
|
- elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
|
|
+ if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
|
|
lt_cv_ld_force_load=yes
|
|
else
|
|
cat conftest.err >&5
|
|
@@ -8083,22 +8063,7 @@ fi
|
|
|
|
# Check whether --with-pic was given.
|
|
if test "${with_pic+set}" = set; then :
|
|
- withval=$with_pic; lt_p=${PACKAGE-default}
|
|
- case $withval in
|
|
- yes|no) pic_mode=$withval ;;
|
|
- *)
|
|
- pic_mode=default
|
|
- # Look at the argument we got. We use all the common list separators.
|
|
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
|
|
- for lt_pkg in $withval; do
|
|
- IFS="$lt_save_ifs"
|
|
- if test "X$lt_pkg" = "X$lt_p"; then
|
|
- pic_mode=yes
|
|
- fi
|
|
- done
|
|
- IFS="$lt_save_ifs"
|
|
- ;;
|
|
- esac
|
|
+ withval=$with_pic; pic_mode="$withval"
|
|
else
|
|
pic_mode=default
|
|
fi
|
|
@@ -8176,10 +8141,6 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtoo
|
|
|
|
|
|
|
|
-
|
|
-
|
|
-
|
|
-
|
|
test -z "$LN_S" && LN_S="ln -s"
|
|
|
|
|
|
@@ -8469,6 +8430,10 @@ _lt_linker_boilerplate=`cat conftest.err
|
|
$RM -r conftest*
|
|
|
|
|
|
+## CAVEAT EMPTOR:
|
|
+## There is no encapsulation within the following macros, do not change
|
|
+## the running order or otherwise move them around unless you know exactly
|
|
+## what you are doing...
|
|
if test -n "$compiler"; then
|
|
|
|
lt_prog_compiler_no_builtin_flag=
|
|
@@ -8635,9 +8600,7 @@ lt_prog_compiler_static=
|
|
case $cc_basename in
|
|
nvcc*) # Cuda Compiler Driver 2.2
|
|
lt_prog_compiler_wl='-Xlinker '
|
|
- if test -n "$lt_prog_compiler_pic"; then
|
|
- lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
|
|
- fi
|
|
+ lt_prog_compiler_pic='-Xcompiler -fPIC'
|
|
;;
|
|
esac
|
|
else
|
|
@@ -8728,33 +8691,18 @@ lt_prog_compiler_static=
|
|
;;
|
|
*)
|
|
case `$CC -V 2>&1 | sed 5q` in
|
|
- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
|
|
+ *Sun\ F* | *Sun*Fortran*)
|
|
# Sun Fortran 8.3 passes all unrecognized flags to the linker
|
|
lt_prog_compiler_pic='-KPIC'
|
|
lt_prog_compiler_static='-Bstatic'
|
|
lt_prog_compiler_wl=''
|
|
;;
|
|
- *Sun\ F* | *Sun*Fortran*)
|
|
- lt_prog_compiler_pic='-KPIC'
|
|
- lt_prog_compiler_static='-Bstatic'
|
|
- lt_prog_compiler_wl='-Qoption ld '
|
|
- ;;
|
|
*Sun\ C*)
|
|
# Sun C 5.9
|
|
lt_prog_compiler_pic='-KPIC'
|
|
lt_prog_compiler_static='-Bstatic'
|
|
lt_prog_compiler_wl='-Wl,'
|
|
;;
|
|
- *Intel*\ [CF]*Compiler*)
|
|
- lt_prog_compiler_wl='-Wl,'
|
|
- lt_prog_compiler_pic='-fPIC'
|
|
- lt_prog_compiler_static='-static'
|
|
- ;;
|
|
- *Portland\ Group*)
|
|
- lt_prog_compiler_wl='-Wl,'
|
|
- lt_prog_compiler_pic='-fpic'
|
|
- lt_prog_compiler_static='-Bstatic'
|
|
- ;;
|
|
esac
|
|
;;
|
|
esac
|
|
@@ -9116,6 +9064,7 @@ $as_echo_n "checking whether the $compil
|
|
hardcode_direct=no
|
|
hardcode_direct_absolute=no
|
|
hardcode_libdir_flag_spec=
|
|
+ hardcode_libdir_flag_spec_ld=
|
|
hardcode_libdir_separator=
|
|
hardcode_minus_L=no
|
|
hardcode_shlibpath_var=unsupported
|
|
@@ -9365,7 +9314,8 @@ _LT_EOF
|
|
xlf* | bgf* | bgxlf* | mpixlf*)
|
|
# IBM XL Fortran 10.1 on PPC cannot create shared libs itself
|
|
whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
|
|
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
|
+ hardcode_libdir_flag_spec=
|
|
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
|
|
archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
|
|
if test "x$supports_anon_versioning" = xyes; then
|
|
archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
|
|
@@ -9744,7 +9694,6 @@ fi
|
|
# The linker will not automatically build a static lib if we build a DLL.
|
|
# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
|
|
enable_shared_with_static_runtimes=yes
|
|
- exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
|
|
export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
|
|
# Don't use ranlib
|
|
old_postinstall_cmds='chmod 644 $oldlib'
|
|
@@ -9790,7 +9739,6 @@ fi
|
|
hardcode_shlibpath_var=unsupported
|
|
if test "$lt_cv_ld_force_load" = "yes"; then
|
|
whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
|
|
-
|
|
else
|
|
whole_archive_flag_spec=''
|
|
fi
|
|
@@ -9819,6 +9767,10 @@ fi
|
|
hardcode_shlibpath_var=no
|
|
;;
|
|
|
|
+ freebsd1*)
|
|
+ ld_shlibs=no
|
|
+ ;;
|
|
+
|
|
# FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
|
|
# support. Future versions do this automatically, but an explicit c++rt0.o
|
|
# does not break anything, and helps significantly (at the cost of a little
|
|
@@ -9831,7 +9783,7 @@ fi
|
|
;;
|
|
|
|
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
|
|
- freebsd2.*)
|
|
+ freebsd2*)
|
|
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
|
|
hardcode_direct=yes
|
|
hardcode_minus_L=yes
|
|
@@ -9870,6 +9822,7 @@ fi
|
|
fi
|
|
if test "$with_gnu_ld" = no; then
|
|
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
|
+ hardcode_libdir_flag_spec_ld='+b $libdir'
|
|
hardcode_libdir_separator=:
|
|
hardcode_direct=yes
|
|
hardcode_direct_absolute=yes
|
|
@@ -10493,6 +10446,11 @@ esac
|
|
|
|
|
|
|
|
+
|
|
+
|
|
+
|
|
+
|
|
+
|
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
|
|
$as_echo_n "checking dynamic linker characteristics... " >&6; }
|
|
|
|
@@ -10582,7 +10540,7 @@ need_version=unknown
|
|
|
|
case $host_os in
|
|
aix3*)
|
|
- version_type=linux # correct to gnu/linux during the next big refactor
|
|
+ version_type=linux
|
|
library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
|
|
shlibpath_var=LIBPATH
|
|
|
|
@@ -10591,7 +10549,7 @@ aix3*)
|
|
;;
|
|
|
|
aix[4-9]*)
|
|
- version_type=linux # correct to gnu/linux during the next big refactor
|
|
+ version_type=linux
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
hardcode_into_libs=yes
|
|
@@ -10656,7 +10614,7 @@ beos*)
|
|
;;
|
|
|
|
bsdi[45]*)
|
|
- version_type=linux # correct to gnu/linux during the next big refactor
|
|
+ version_type=linux
|
|
need_version=no
|
|
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
|
|
soname_spec='${libname}${release}${shared_ext}$major'
|
|
@@ -10795,7 +10753,7 @@ darwin* | rhapsody*)
|
|
;;
|
|
|
|
dgux*)
|
|
- version_type=linux # correct to gnu/linux during the next big refactor
|
|
+ version_type=linux
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
|
|
@@ -10803,6 +10761,10 @@ dgux*)
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
;;
|
|
|
|
+freebsd1*)
|
|
+ dynamic_linker=no
|
|
+ ;;
|
|
+
|
|
freebsd* | dragonfly*)
|
|
# DragonFly does not have aout. When/if they implement a new
|
|
# versioning mechanism, adjust this.
|
|
@@ -10810,7 +10772,7 @@ freebsd* | dragonfly*)
|
|
objformat=`/usr/bin/objformat`
|
|
else
|
|
case $host_os in
|
|
- freebsd[23].*) objformat=aout ;;
|
|
+ freebsd[123]*) objformat=aout ;;
|
|
*) objformat=elf ;;
|
|
esac
|
|
fi
|
|
@@ -10828,7 +10790,7 @@ freebsd* | dragonfly*)
|
|
esac
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
case $host_os in
|
|
- freebsd2.*)
|
|
+ freebsd2*)
|
|
shlibpath_overrides_runpath=yes
|
|
;;
|
|
freebsd3.[01]* | freebsdelf3.[01]*)
|
|
@@ -10848,18 +10810,17 @@ freebsd* | dragonfly*)
|
|
;;
|
|
|
|
gnu*)
|
|
- version_type=linux # correct to gnu/linux during the next big refactor
|
|
+ version_type=linux
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
|
|
soname_spec='${libname}${release}${shared_ext}$major'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
- shlibpath_overrides_runpath=no
|
|
hardcode_into_libs=yes
|
|
;;
|
|
|
|
haiku*)
|
|
- version_type=linux # correct to gnu/linux during the next big refactor
|
|
+ version_type=linux
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
dynamic_linker="$host_os runtime_loader"
|
|
@@ -10920,7 +10881,7 @@ hpux9* | hpux10* | hpux11*)
|
|
;;
|
|
|
|
interix[3-9]*)
|
|
- version_type=linux # correct to gnu/linux during the next big refactor
|
|
+ version_type=linux
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
|
|
@@ -10936,7 +10897,7 @@ irix5* | irix6* | nonstopux*)
|
|
nonstopux*) version_type=nonstopux ;;
|
|
*)
|
|
if test "$lt_cv_prog_gnu_ld" = yes; then
|
|
- version_type=linux # correct to gnu/linux during the next big refactor
|
|
+ version_type=linux
|
|
else
|
|
version_type=irix
|
|
fi ;;
|
|
@@ -10973,9 +10934,9 @@ linux*oldld* | linux*aout* | linux*coff*
|
|
dynamic_linker=no
|
|
;;
|
|
|
|
-# This must be glibc/ELF.
|
|
+# This must be Linux ELF.
|
|
linux* | k*bsd*-gnu | kopensolaris*-gnu)
|
|
- version_type=linux # correct to gnu/linux during the next big refactor
|
|
+ version_type=linux
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
|
|
@@ -11023,14 +10984,10 @@ fi
|
|
# before this can be enabled.
|
|
hardcode_into_libs=yes
|
|
|
|
- # Add ABI-specific directories to the system library path.
|
|
- sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
|
|
-
|
|
# Append ld.so.conf contents to the search path
|
|
if test -f /etc/ld.so.conf; then
|
|
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
|
|
- sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
|
|
-
|
|
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
|
|
fi
|
|
|
|
# We used to test for /lib/ld.so.1 and disable shared libraries on
|
|
@@ -11061,7 +11018,7 @@ netbsd*)
|
|
;;
|
|
|
|
newsos6)
|
|
- version_type=linux # correct to gnu/linux during the next big refactor
|
|
+ version_type=linux
|
|
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
shlibpath_overrides_runpath=yes
|
|
@@ -11130,7 +11087,7 @@ rdos*)
|
|
;;
|
|
|
|
solaris*)
|
|
- version_type=linux # correct to gnu/linux during the next big refactor
|
|
+ version_type=linux
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
|
|
@@ -11155,7 +11112,7 @@ sunos4*)
|
|
;;
|
|
|
|
sysv4 | sysv4.3*)
|
|
- version_type=linux # correct to gnu/linux during the next big refactor
|
|
+ version_type=linux
|
|
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
|
|
soname_spec='${libname}${release}${shared_ext}$major'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
@@ -11179,7 +11136,7 @@ sysv4 | sysv4.3*)
|
|
|
|
sysv4*MP*)
|
|
if test -d /usr/nec ;then
|
|
- version_type=linux # correct to gnu/linux during the next big refactor
|
|
+ version_type=linux
|
|
library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
|
|
soname_spec='$libname${shared_ext}.$major'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
@@ -11210,7 +11167,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware*
|
|
|
|
tpf*)
|
|
# TPF is a cross-target only. Preferred cross-host = GNU/Linux.
|
|
- version_type=linux # correct to gnu/linux during the next big refactor
|
|
+ version_type=linux
|
|
need_lib_prefix=no
|
|
need_version=no
|
|
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
|
|
@@ -11220,7 +11177,7 @@ tpf*)
|
|
;;
|
|
|
|
uts4*)
|
|
- version_type=linux # correct to gnu/linux during the next big refactor
|
|
+ version_type=linux
|
|
library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
|
|
soname_spec='${libname}${release}${shared_ext}$major'
|
|
shlibpath_var=LD_LIBRARY_PATH
|
|
@@ -12002,8 +11959,6 @@ CC="$lt_save_CC"
|
|
|
|
|
|
|
|
-
|
|
-
|
|
ac_config_commands="$ac_config_commands libtool"
|
|
|
|
|
|
@@ -14259,7 +14214,40 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUI
|
|
esac
|
|
|
|
|
|
-GCC_AS_CFI_PSEUDO_OP
|
|
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler .cfi pseudo-op support" >&5
|
|
+$as_echo_n "checking assembler .cfi pseudo-op support... " >&6; }
|
|
+if ${gcc_cv_as_cfi_pseudo_op+:} false; then :
|
|
+ $as_echo_n "(cached) " >&6
|
|
+else
|
|
+
|
|
+ gcc_cv_as_cfi_pseudo_op=unknown
|
|
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
+/* end confdefs.h. */
|
|
+asm (".cfi_startproc\n\t.cfi_endproc");
|
|
+int
|
|
+main ()
|
|
+{
|
|
+
|
|
+ ;
|
|
+ return 0;
|
|
+}
|
|
+_ACEOF
|
|
+if ac_fn_c_try_compile "$LINENO"; then :
|
|
+ gcc_cv_as_cfi_pseudo_op=yes
|
|
+else
|
|
+ gcc_cv_as_cfi_pseudo_op=no
|
|
+fi
|
|
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
|
+
|
|
+fi
|
|
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_cfi_pseudo_op" >&5
|
|
+$as_echo "$gcc_cv_as_cfi_pseudo_op" >&6; }
|
|
+ if test "x$gcc_cv_as_cfi_pseudo_op" = xyes; then
|
|
+
|
|
+$as_echo "#define HAVE_AS_CFI_PSEUDO_OP 1" >>confdefs.h
|
|
+
|
|
+ fi
|
|
+
|
|
|
|
if test x$TARGET = xSPARC; then
|
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler and linker support unaligned pc related relocs" >&5
|
|
@@ -14485,6 +14473,16 @@ $as_echo "#define SYMBOL_UNDERSCORE 1" >
|
|
fi
|
|
fi
|
|
|
|
+# On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC.
|
|
+# Check whether --enable-pax_emutramp was given.
|
|
+if test "${enable_pax_emutramp+set}" = set; then :
|
|
+ enableval=$enable_pax_emutramp; if test "$enable_pax_emutramp" = "yes"; then
|
|
+
|
|
+$as_echo "#define FFI_MMAP_EXEC_EMUTRAMP_PAX 1" >>confdefs.h
|
|
+
|
|
+ fi
|
|
+fi
|
|
+
|
|
|
|
FFI_EXEC_TRAMPOLINE_TABLE=0
|
|
case "$target" in
|
|
@@ -15580,7 +15578,6 @@ pic_mode='`$ECHO "$pic_mode" | $SED "$de
|
|
enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
|
|
SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
|
|
ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
|
|
-PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
|
|
host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
|
|
host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
|
|
host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
|
|
@@ -15663,6 +15660,7 @@ with_gnu_ld='`$ECHO "$with_gnu_ld" | $SE
|
|
allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
|
|
no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
|
|
hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
|
|
+hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
|
|
hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
|
|
hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
|
|
hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
|
|
@@ -15718,7 +15716,6 @@ _LTECHO_EOF'
|
|
# Quote evaled strings.
|
|
for var in SHELL \
|
|
ECHO \
|
|
-PATH_SEPARATOR \
|
|
SED \
|
|
GREP \
|
|
EGREP \
|
|
@@ -15769,6 +15766,7 @@ with_gnu_ld \
|
|
allow_undefined_flag \
|
|
no_undefined_flag \
|
|
hardcode_libdir_flag_spec \
|
|
+hardcode_libdir_flag_spec_ld \
|
|
hardcode_libdir_separator \
|
|
exclude_expsyms \
|
|
include_expsyms \
|
|
@@ -16750,8 +16748,8 @@ $as_echo X"$file" |
|
|
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
|
|
#
|
|
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
|
|
-# 2006, 2007, 2008, 2009, 2010, 2011 Free Software
|
|
-# Foundation, Inc.
|
|
+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
|
|
+# Inc.
|
|
# Written by Gordon Matzigkeit, 1996
|
|
#
|
|
# This file is part of GNU Libtool.
|
|
@@ -16805,9 +16803,6 @@ SHELL=$lt_SHELL
|
|
# An echo program that protects backslashes.
|
|
ECHO=$lt_ECHO
|
|
|
|
-# The PATH separator for the build system.
|
|
-PATH_SEPARATOR=$lt_PATH_SEPARATOR
|
|
-
|
|
# The host system.
|
|
host_alias=$host_alias
|
|
host=$host
|
|
@@ -17109,6 +17104,10 @@ no_undefined_flag=$lt_no_undefined_flag
|
|
# This must work even if \$libdir does not exist
|
|
hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
|
|
|
|
+# If ld is used when linking, flag to hardcode \$libdir into a binary
|
|
+# during linking. This must work even if \$libdir does not exist.
|
|
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
|
|
+
|
|
# Whether we need a single "-rpath" flag with a separated argument.
|
|
hardcode_libdir_separator=$lt_hardcode_libdir_separator
|
|
|
|
Index: libffi/configure.ac
|
|
===================================================================
|
|
--- libffi.orig/configure.ac
|
|
+++ libffi/configure.ac
|
|
@@ -357,6 +357,13 @@ if test x$TARGET = xX86_WIN64; then
|
|
fi
|
|
fi
|
|
|
|
+# On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC.
|
|
+AC_ARG_ENABLE(pax_emutramp,
|
|
+ [ --enable-pax_emutramp enable pax emulated trampolines, for we can't use PROT_EXEC],
|
|
+ if test "$enable_pax_emutramp" = "yes"; then
|
|
+ AC_DEFINE(FFI_MMAP_EXEC_EMUTRAMP_PAX, 1,
|
|
+ [Define this if you want to enable pax emulated trampolines])
|
|
+ fi)
|
|
|
|
FFI_EXEC_TRAMPOLINE_TABLE=0
|
|
case "$target" in
|
|
Index: libffi/src/closures.c
|
|
===================================================================
|
|
--- libffi.orig/src/closures.c
|
|
+++ libffi/src/closures.c
|
|
@@ -172,6 +172,27 @@ selinux_enabled_check (void)
|
|
|
|
#endif /* !FFI_MMAP_EXEC_SELINUX */
|
|
|
|
+/* On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC. */
|
|
+#ifdef FFI_MMAP_EXEC_EMUTRAMP_PAX
|
|
+#include <stdlib.h>
|
|
+
|
|
+static int emutramp_enabled = -1;
|
|
+
|
|
+static int
|
|
+emutramp_enabled_check (void)
|
|
+{
|
|
+ if (getenv ("FFI_DISABLE_EMUTRAMP") == NULL)
|
|
+ return 1;
|
|
+ else
|
|
+ return 0;
|
|
+}
|
|
+
|
|
+#define is_emutramp_enabled() (emutramp_enabled >= 0 ? emutramp_enabled \
|
|
+ : (emutramp_enabled = emutramp_enabled_check ()))
|
|
+#else
|
|
+#define is_emutramp_enabled() 0
|
|
+#endif /* FFI_MMAP_EXEC_EMUTRAMP_PAX */
|
|
+
|
|
#elif defined (__CYGWIN__) || defined(__INTERIX)
|
|
|
|
#include <sys/mman.h>
|
|
@@ -458,6 +479,12 @@ dlmmap (void *start, size_t length, int
|
|
printf ("mapping in %zi\n", length);
|
|
#endif
|
|
|
|
+ if (execfd == -1 && is_emutramp_enabled ())
|
|
+ {
|
|
+ ptr = mmap (start, length, prot & ~PROT_EXEC, flags, fd, offset);
|
|
+ return ptr;
|
|
+ }
|
|
+
|
|
if (execfd == -1 && !is_selinux_enabled ())
|
|
{
|
|
ptr = mmap (start, length, prot | PROT_EXEC, flags, fd, offset);
|