[tor-commits] [torsocks/master] configure.ac: avoid tests which have both -pie and -static

dgoulet at torproject.org dgoulet at torproject.org
Mon Jan 19 18:01:58 UTC 2015


commit a791f32a4dff71aaf03f086723572d7f98e2ac12
Author: Anthony G. Basile <blueness at gentoo.org>
Date:   Sun Jan 11 17:13:35 2015 +0000

    configure.ac: avoid tests which have both -pie and -static
    
    Building and linking with both -pie and -static is not supported for
    some toolchain combinations (eg. glibc or binutil's gold).  Yet this
    combination is hit if the check for gcc hardening is done before
    AC_PROG_LIBTOOL and AC_ENABLE_STATIC.  We avoid the issue by moving the
    gcc hardening check to after AC_PROG_LIBTOOL and friends.
    
    See:
    
    https://sourceware.org/bugzilla/show_bug.cgi?id=17826
    https://sourceware.org/bugzilla/show_bug.cgi?id=16428
    https://bugs.gentoo.org/show_bug.cgi?id=533862
    
    Signed-off-by: Anthony G. Basile <blueness at gentoo.org>
    Signed-off-by: David Goulet <dgoulet at ev0ke.net>
---
 configure.ac |   46 ++++++++++++++++++++++++++++------------------
 1 file changed, 28 insertions(+), 18 deletions(-)

diff --git a/configure.ac b/configure.ac
index 3eb9060..f4aadfb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -144,24 +144,6 @@ AC_SUBST(TESTLDFLAGS)
 # Version information for libtorsocks
 TORSOCKSLDFLAGS="$LDFLAGS -version-info 1:0:0"
 
-# Check for the gcc hardening flags.
-AX_CHECK_COMPILE_FLAG([-fPIE],[CFLAGS="$CFLAGS -fPIE"],[],[])
-AX_CHECK_COMPILE_FLAG([-fwrapv],[CFLAGS="$CFLAGS -fwrapv"],[],[])
-AX_CHECK_COMPILE_FLAG([--param ssp-buffer-size=1],
-	[CFLAGS="$CFLAGS --param ssp-buffer-size=1"],[],[])
-AX_CHECK_COMPILE_FLAG([-fstack-protector-all],
-	[CFLAGS="$CFLAGS -fstack-protector-all"],[],[]
-)
-AX_CHECK_COMPILE_FLAG([-fno-strict-overflow],
-	[CFLAGS="$CFLAGS -fno-strict-overflow"],[],[]
-)
-
-dnl Add hardening linker flags
-AX_CHECK_LINK_FLAG([-pie],[LDFLAGS="$LDFLAGS -pie"],[],[])
-AX_CHECK_LINK_FLAG([-z relro],[LDFLAGS="$LDFLAGS -z relro"],[],[])
-AX_CHECK_LINK_FLAG([-z now],[LDFLAGS="$LDFLAGS -z now"],[],[])
-LDFLAGS="$LDFLAGS -D_FORTIFY_SOURCE=2"
-
 dnl Linker checks for Mac OSX, which uses DYLD_INSERT_LIBRARIES
 dnl instead of LD_PRELOAD
 case "$host_os" in
@@ -255,6 +237,34 @@ AC_ENABLE_STATIC
 DEFAULT_INCLUDES="-I\$(top_srcdir) -I\$(top_builddir) -I\$(top_builddir)/src -I\$(top_builddir)/include -include config.h"
 AC_SUBST(DEFAULT_INCLUDES)
 
+##############################################################################
+# 9. Test and add hardening flags
+##############################################################################
+
+# Check for the gcc hardening flags.
+AX_CHECK_COMPILE_FLAG([-fPIE],[CFLAGS="$CFLAGS -fPIE"],[],[])
+AX_CHECK_COMPILE_FLAG([-fwrapv],[CFLAGS="$CFLAGS -fwrapv"],[],[])
+AX_CHECK_COMPILE_FLAG([--param ssp-buffer-size=1],
+	[CFLAGS="$CFLAGS --param ssp-buffer-size=1"],[],[])
+AX_CHECK_COMPILE_FLAG([-fstack-protector-all],
+	[CFLAGS="$CFLAGS -fstack-protector-all"],[],[]
+)
+AX_CHECK_COMPILE_FLAG([-fno-strict-overflow],
+	[CFLAGS="$CFLAGS -fno-strict-overflow"],[],[]
+)
+
+dnl Add hardening linker flags
+AX_CHECK_LINK_FLAG([-pie],[LDFLAGS="$LDFLAGS -pie"],[],[])
+AX_CHECK_LINK_FLAG([-z relro],[LDFLAGS="$LDFLAGS -z relro"],[],[])
+AX_CHECK_LINK_FLAG([-z now],[LDFLAGS="$LDFLAGS -z now"],[],[])
+
+dnl Add glibc hardening
+CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2"
+
+##############################################################################
+# 10. Finish up
+##############################################################################
+
 AC_CONFIG_FILES([
 	Makefile
 	extras/Makefile



More information about the tor-commits mailing list