diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2019-02-24 20:52:45 +0000 |
---|---|---|
committer | Laurent Bercot <ska-skaware@skarnet.org> | 2019-02-24 20:52:45 +0000 |
commit | f01bb649f33d9005e30ec2e82fef05f25b9a8dff (patch) | |
tree | 4b5c044630102ea6f295eac9d4bbcb6d9ac61a59 | |
parent | 393fe484088b8e44764f79153d4ab806a763a526 (diff) | |
download | s6-rc-f01bb649f33d9005e30ec2e82fef05f25b9a8dff.tar.xz |
Build everything as PIC by default
-rw-r--r-- | NEWS | 1 | ||||
-rwxr-xr-x | configure | 21 | ||||
-rw-r--r-- | doc/upgrade.html | 3 |
3 files changed, 9 insertions, 16 deletions
@@ -7,6 +7,7 @@ In 0.5.0.0 - Bugfixes. - s6-rc-compile doesn't support -u and -g anymore; the user who can run s6-rc on a database is the user who owns the supervision tree. + - Everything builds as PIC by default. In 0.4.1.0 @@ -41,7 +41,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] + --disable-all-pic do not build executables or static libs as PIC [enabled] --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] @@ -145,7 +145,7 @@ sysdeps='$prefix/lib/skalibs/sysdeps' manualsysdeps=false shared=false static=true -allpic=detect +allpic=true slashpackage=false abspath=false sproot= @@ -306,20 +306,6 @@ if [ "x$target" != "x$(cat $sysdeps/target)" ] ; then exit 1 fi -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) socket_lib=$(cat $sysdeps/socket.lib) sysclock_lib=$(cat $sysdeps/sysclock.lib) @@ -327,6 +313,9 @@ tainnow_lib=$(cat $sysdeps/tainnow.lib) timer_lib=$(cat $sysdeps/timer.lib) util_lib=$(cat $sysdeps/util.lib) +if $allpic ; then + tryflag CPPFLAGS_AUTO -fPIC +fi tryflag CFLAGS_AUTO -std=c99 tryflag CFLAGS -fomit-frame-pointer tryflag CFLAGS_AUTO -fno-exceptions diff --git a/doc/upgrade.html b/doc/upgrade.html index 120e1e3..5427317 100644 --- a/doc/upgrade.html +++ b/doc/upgrade.html @@ -42,6 +42,9 @@ dependency bumped to 2.8.0.0. </li> <li> <a href="s6-rc-compile.html">s6-rc-compile</a> does not support the <tt>-u</tt> or <tt>-g</tt> options anymore; instead, at any time, the user who can operate a s6-rc database is the user who owns the supervision tree. </li> + <li> Everything now builds as PIC by default no matter +the toolchain's settings. Use the <tt>--disable-all-pic</tt> configure +option to build executables and static libraries as non-PIC. </li> </ul> <h2> in 0.4.1.0 </h2> |