From db28b1e0f3b06325026ec5b5e7cdca4e9992e05c Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Sat, 7 Nov 2015 02:08:05 +0000 Subject: [PATCH] nopie --- gcc/configure | 27 +++++++++++++++++++++++++++ gcc/configure.ac | 13 +++++++++++++ 2 files changed, 40 insertions(+) diff --git a/gcc/configure b/gcc/configure index e9060112384..2f6b3265a6c 100755 --- a/gcc/configure +++ b/gcc/configure @@ -32497,6 +32497,33 @@ fi $as_echo "$gcc_cv_no_pie" >&6; } if test "$gcc_cv_no_pie" = "yes"; then NO_PIE_FLAG="-no-pie" +else + # Check if -nopie works. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -nopie option" >&5 +$as_echo_n "checking for -nopie option... " >&6; } +if test "${gcc_cv_nopie+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -nopie" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void) {return 0;} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + gcc_cv_nopie=yes +else + gcc_cv_nopie=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$saved_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_nopie" >&5 +$as_echo "$gcc_cv_nopie" >&6; } + if test "$gcc_cv_nopie" = "yes"; then + NO_PIE_FLAG="-nopie" + fi fi diff --git a/gcc/configure.ac b/gcc/configure.ac index 75a7048045c..e683d3a7a5f 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -7681,6 +7681,19 @@ AC_CACHE_CHECK([for -no-pie option], LDFLAGS="$saved_LDFLAGS"]) if test "$gcc_cv_no_pie" = "yes"; then NO_PIE_FLAG="-no-pie" +else + # Check if -nopie works. + AC_CACHE_CHECK([for -nopie option], + [gcc_cv_nopie], + [saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -nopie" + AC_LINK_IFELSE([int main(void) {return 0;}], + [gcc_cv_nopie=yes], + [gcc_cv_nopie=no]) + LDFLAGS="$saved_LDFLAGS"]) + if test "$gcc_cv_nopie" = "yes"; then + NO_PIE_FLAG="-nopie" + fi fi AC_SUBST([NO_PIE_FLAG])