aboutsummaryrefslogtreecommitdiffstats
path: root/devel/libffi
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2017-12-19 01:48:43 +0800
committerdim <dim@FreeBSD.org>2017-12-19 01:48:43 +0800
commit0eec1093da21ead27ed123c140a0fd6a2236347e (patch)
treebc9abea77c6d0fa1afa99bade74ef92c2e40c2f5 /devel/libffi
parent772c34490b06e586fbeed1b45dfa7e3650a96a70 (diff)
downloadfreebsd-ports-gnome-0eec1093da21ead27ed123c140a0fd6a2236347e.tar.gz
freebsd-ports-gnome-0eec1093da21ead27ed123c140a0fd6a2236347e.tar.zst
freebsd-ports-gnome-0eec1093da21ead27ed123c140a0fd6a2236347e.zip
Apply upstream change from libffi to check for HAVE_AS_X86_PCREL for all
x86 targets. This should eliminate any text relocations, in particular for the i386 build, making it possible to build the port with lld without having to use -z notext. Obtained from: https://github.com/libffi/libffi/pull/174 Approved by: zeising (maintainer) PR: 214864 MFH: 2017Q4
Diffstat (limited to 'devel/libffi')
-rw-r--r--devel/libffi/Makefile2
-rw-r--r--devel/libffi/files/patch-configure116
2 files changed, 110 insertions, 8 deletions
diff --git a/devel/libffi/Makefile b/devel/libffi/Makefile
index 4e2ff4059088..7e0e958b1cc4 100644
--- a/devel/libffi/Makefile
+++ b/devel/libffi/Makefile
@@ -3,7 +3,7 @@
PORTNAME= libffi
PORTVERSION= 3.2.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= devel
MASTER_SITES= SOURCEWARE/${PORTNAME}
diff --git a/devel/libffi/files/patch-configure b/devel/libffi/files/patch-configure
index 84ea88649a92..996b0998a34b 100644
--- a/devel/libffi/files/patch-configure
+++ b/devel/libffi/files/patch-configure
@@ -1,6 +1,6 @@
---- configure.orig 2014-11-12 05:59:57.000000000 -0600
-+++ configure 2017-07-13 14:20:48.680289000 -0500
-@@ -17221,7 +17221,7 @@
+--- configure.orig 2014-11-12 11:59:57 UTC
++++ configure
+@@ -17221,7 +17221,7 @@ case "$host" in
mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*)
TARGET=MIPS; TARGETDIR=mips
;;
@@ -9,14 +9,116 @@
# Support 128-bit long double for NewABI.
HAVE_LONG_DOUBLE='defined(__mips64)'
TARGET=MIPS; TARGETDIR=mips
-@@ -17254,6 +17254,10 @@
- powerpc-*-freebsd* | powerpc-*-openbsd*)
+@@ -17255,6 +17255,10 @@ case "$host" in
TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
HAVE_LONG_DOUBLE_VARIANT=1
-+ ;;
+ ;;
+ powerpcspe-*-freebsd*)
+ TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
+ CFLAGS="$CFLAGS -D__NO_FPRS__"
- ;;
++ ;;
powerpc64-*-freebsd*)
TARGET=POWERPC; TARGETDIR=powerpc
+ ;;
+@@ -18289,7 +18293,8 @@ $as_echo "#define HAVE_AS_CFI_PSEUDO_OP 1" >>confdefs.
+ fi
+
+
+-if test x$TARGET = xSPARC; then
++case "$TARGET" in
++ SPARC)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler and linker support unaligned pc related relocs" >&5
+ $as_echo_n "checking assembler and linker support unaligned pc related relocs... " >&6; }
+ if ${libffi_cv_as_sparc_ua_pcrel+:} false; then :
+@@ -18363,9 +18368,9 @@ $as_echo "$libffi_cv_as_register_pseudo_op" >&6; }
+ $as_echo "#define HAVE_AS_REGISTER_PSEUDO_OP 1" >>confdefs.h
+
+ fi
+-fi
++ ;;
+
+-if test x$TARGET = xX86 || test x$TARGET = xX86_WIN32 || test x$TARGET = xX86_64; then
++ X86*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler supports pc related relocs" >&5
+ $as_echo_n "checking assembler supports pc related relocs... " >&6; }
+ if ${libffi_cv_as_x86_pcrel+:} false; then :
+@@ -18386,77 +18391,8 @@ $as_echo "$libffi_cv_as_x86_pcrel" >&6; }
+ $as_echo "#define HAVE_AS_X86_PCREL 1" >>confdefs.h
+
+ fi
+-
+- { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler .ascii pseudo-op support" >&5
+-$as_echo_n "checking assembler .ascii pseudo-op support... " >&6; }
+-if ${libffi_cv_as_ascii_pseudo_op+:} false; then :
+- $as_echo_n "(cached) " >&6
+-else
+-
+- libffi_cv_as_ascii_pseudo_op=unknown
+- # Check if we have .ascii
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-int
+-main ()
+-{
+-asm (".ascii \\"string\\"");
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_compile "$LINENO"; then :
+- libffi_cv_as_ascii_pseudo_op=yes
+-else
+- libffi_cv_as_ascii_pseudo_op=no
+-fi
+-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+-
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_ascii_pseudo_op" >&5
+-$as_echo "$libffi_cv_as_ascii_pseudo_op" >&6; }
+- if test "x$libffi_cv_as_ascii_pseudo_op" = xyes; then
+-
+-$as_echo "#define HAVE_AS_ASCII_PSEUDO_OP 1" >>confdefs.h
+-
+- fi
+-
+- { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler .string pseudo-op support" >&5
+-$as_echo_n "checking assembler .string pseudo-op support... " >&6; }
+-if ${libffi_cv_as_string_pseudo_op+:} false; then :
+- $as_echo_n "(cached) " >&6
+-else
+-
+- libffi_cv_as_string_pseudo_op=unknown
+- # Check if we have .string
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-int
+-main ()
+-{
+-asm (".string \\"string\\"");
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_compile "$LINENO"; then :
+- libffi_cv_as_string_pseudo_op=yes
+-else
+- libffi_cv_as_string_pseudo_op=no
+-fi
+-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+-
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_string_pseudo_op" >&5
+-$as_echo "$libffi_cv_as_string_pseudo_op" >&6; }
+- if test "x$libffi_cv_as_string_pseudo_op" = xyes; then
+-
+-$as_echo "#define HAVE_AS_STRING_PSEUDO_OP 1" >>confdefs.h
+-
+- fi
+-fi
++ ;;
++esac
+
+ # On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC.
+ # Check whether --enable-pax_emutramp was given.