summaryrefslogtreecommitdiff
path: root/source3/configure.in
diff options
context:
space:
mode:
authorLars Müller <lmuelle@samba.org>2005-07-04 16:39:11 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:58:12 -0500
commit3ddc4877bdd7f1a1e28855dbd8dc5dbf16839f3e (patch)
tree1051c0471bf8ddcc285a2d873755148243fa97d3 /source3/configure.in
parent944ecbdbb05f87270430efbef0ddc7cc388e5d36 (diff)
downloadsamba-3ddc4877bdd7f1a1e28855dbd8dc5dbf16839f3e.tar.gz
samba-3ddc4877bdd7f1a1e28855dbd8dc5dbf16839f3e.tar.bz2
samba-3ddc4877bdd7f1a1e28855dbd8dc5dbf16839f3e.zip
r8151: Add support to create position independent executable (PIE) code if the
compiler supports it. We have to compile with -fPIE and not -fpie. Else ppc and s390(x) will fail (to small GOT). It's possible to disable configure's PIE detection with --disable-pie (This used to be commit 07845bb4c5a31cb29bf7b8ff6c50e5da84c329e4)
Diffstat (limited to 'source3/configure.in')
-rw-r--r--source3/configure.in28
1 files changed, 28 insertions, 0 deletions
diff --git a/source3/configure.in b/source3/configure.in
index 3f42d9ffed..8ac3d20705 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -210,6 +210,9 @@ AC_SUBST(SHLD)
AC_SUBST(HOST_OS)
AC_SUBST(PICFLAGS)
AC_SUBST(PICSUFFIX)
+AC_SUBST(libc_cv_fpie)
+AC_SUBST(PIE_CFLAGS)
+AC_SUBST(PIE_LDFLAGS)
AC_SUBST(SHLIBEXT)
AC_SUBST(INSTALLCLIENT)
AC_SUBST(INSTALLCLIENTCMD_SH)
@@ -231,6 +234,31 @@ AC_SUBST(EXTRA_BIN_PROGS)
AC_SUBST(EXTRA_SBIN_PROGS)
AC_SUBST(EXTRA_ALL_TARGETS)
+# Set defaults
+PIE_CFLAGS=""
+PIE_LDFLAGS=""
+AC_ARG_ENABLE(pie, [ --enable-pie Turn on pie support if available (default=yes)])
+
+if test "x$enable_pie" != xno
+then
+ AC_CACHE_CHECK(for -fPIE, libc_cv_fpie, [dnl
+ cat > conftest.c <<EOF
+int foo;
+main () { return 0;}
+EOF
+ if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fPIE -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
+ then
+ libc_cv_fpie=yes
+ PIE_CFLAGS="-fPIE"
+ PIE_LDFLAGS="-pie"
+ fi
+ rm -f conftest*])
+fi
+if test "x$PIE_CFLAGS" = x
+then
+ libc_cv_fpie=no
+fi
+
AC_ARG_ENABLE(debug,
[ --enable-debug Turn on compiler debugging information (default=no)],
[if eval "test x$enable_debug = xyes"; then