From 8330521d9b370bad4b804d7fb6dfeb9ed8aafc2c Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Sun, 29 Oct 2017 23:21:19 +0000 Subject: Support default pie --- configure | 15 +++++++++++++++ tools/gen-deps.sh | 8 ++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/configure b/configure index c1d807f..d4f484b 100755 --- a/configure +++ b/configure @@ -301,6 +301,16 @@ 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" +fi + spawn_lib=$(cat $sysdeps/spawn.lib) socket_lib=$(cat $sysdeps/socket.lib) sysclock_lib=$(cat $sysdeps/sysclock.lib) @@ -414,6 +424,11 @@ if $shared ; then else echo "DO_SHARED :=" fi +if $defaultpie ; then + echo "DEFAULT_PIE := 1" +else + echo "DEFAULT_PIE :=" +fi if test -n $ssl ; then echo "SSL_IMPL := $ssl" else diff --git a/tools/gen-deps.sh b/tools/gen-deps.sh index 4eb487e..67ec2d4 100755 --- a/tools/gen-deps.sh +++ b/tools/gen-deps.sh @@ -59,13 +59,17 @@ for dir in $(ls -1 src | grep -v ^include) ; do deps= libs= while read dep ; do - if echo $dep | grep -q -e ^-l -e '^\${LIB.*}$' -e '^\${.*_LIB}$' ; then + if echo $dep | grep -q -e ^-l -e '^\${.*_LIB}' ; then libs="$libs $dep" else deps="$deps src/$dir/$dep" fi done < src/$dir/deps-lib/$file + echo 'ifeq ($(strip $(DEFAULT_PIE)),)' echo "lib${file}.a.xyzzy:$deps" + echo else + echo "lib${file}.a.xyzzy:$(echo "$deps" | sed 's/\.o/.lo/g')" + echo endif echo "lib${file}.so.xyzzy: EXTRA_LIBS :=$libs" echo "lib${file}.so.xyzzy:$(echo "$deps" | sed 's/\.o/.lo/g')" done @@ -77,7 +81,7 @@ for dir in $(ls -1 src | grep -v ^include) ; do if echo $dep | grep -q -- \\.o$ ; then dep="src/$dir/$dep" fi - if echo $dep | grep -q -- '^\${.*_LIB}$' ; then + if echo $dep | grep -q -- '^\${.*_LIB}' ; then libs="$libs $dep" else deps="$deps $dep" -- cgit v1.2.3