From e9ab29c6ad9976fcf45ec09c5b647d667201d841 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Mon, 30 Oct 2017 11:09:26 +0000 Subject: Make all-pic a user option --- configure | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'configure') diff --git a/configure b/configure index d4f484b..3bebe3b 100755 --- a/configure +++ b/configure @@ -40,6 +40,7 @@ Optional features: --disable-static do not build static libraries [enabled] --disable-allstatic do not prefer linking against static libraries [enabled] --enable-static-libc make entirely static binaries [disabled] + --enable-all-pic build everything as PIC [enabled iff toolchain builds PIE] --enable-slashpackage[=ROOT] assume /package installation at ROOT [disabled] --enable-absolute-paths do not rely on PATH to access this package's binaries, hardcode absolute BINDIR/foobar paths instead [disabled] @@ -146,6 +147,7 @@ sysdeps='$prefix/lib/skalibs/sysdeps' manualsysdeps=false shared=false static=true +allpic=detect slashpackage=false abspath=false sproot= @@ -183,6 +185,8 @@ for arg ; do --disable-allstatic|--enable-allstatic=no) allstatic=false ; evenmorestatic=false ;; --enable-static-libc|--enable-static-libc=yes) allstatic=true ; evenmorestatic=true ;; --disable-static-libc|--enable-static-libc=no) evenmorestatic=false ;; + --enable-all-pic|--enable-all-pic=yes) allpic=true ;; + --disable-all-pic|--enable-all-pic=no) allpic=false ;; --enable-slashpackage=*) sproot=${arg#*=} ; slashpackage=true ; ;; --enable-slashpackage) sproot= ; slashpackage=true ;; --disable-slashpackage) sproot= ; slashpackage=false ;; @@ -301,14 +305,18 @@ if [ "x$target" != "x$(cat $sysdeps/target)" ] ; then exit 1 fi -defaultpie=false -echo "Checking whether we're building PIE..." -if $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST -dM -E - < /dev/null | grep -qF __PIE__ ; then - defaultpie=true - CFLAGS_AUTO="$CFLAGS_AUTO -fPIC" - echo " ... yes" -else - echo " ... no" +if test $allpic = detect ; then + echo "Checking whether we need to build everything as PIC..." + if $CC_AUTO $CPPFLAGS_AUTO $CPPFLAGS $CPPFLAGS_POST $CFLAGS_AUTO $CFLAGS $CFLAGS_POST -dM -E - < /dev/null | grep -qF __PIE__ ; then + allpic=true + echo " ... yes" + else + allpic=false + echo " ... no" + fi +fi +if $allpic ; then + tryflag CFLAGS_AUTO -fPIC fi spawn_lib=$(cat $sysdeps/spawn.lib) @@ -424,10 +432,10 @@ if $shared ; then else echo "DO_SHARED :=" fi -if $defaultpie ; then - echo "DEFAULT_PIE := 1" +if $ allpic ; then + echo "STATIC_LIBS_ARE_PIC := 1" else - echo "DEFAULT_PIE :=" + echo "STATIC_LIBS_ARE_PIC :=" fi if test -n $ssl ; then echo "SSL_IMPL := $ssl" -- cgit v1.2.3