diff options
author | Lars Müller <lmuelle@samba.org> | 2005-07-04 16:39:11 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:58:12 -0500 |
commit | 3ddc4877bdd7f1a1e28855dbd8dc5dbf16839f3e (patch) | |
tree | 1051c0471bf8ddcc285a2d873755148243fa97d3 /source3/configure.in | |
parent | 944ecbdbb05f87270430efbef0ddc7cc388e5d36 (diff) | |
download | samba-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.in | 28 |
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 |