From 99ccc2d68049c56519d49e21b6f13cf8d98ea163 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 793530e21cf..2d874d3defe 100755 --- a/gcc/configure +++ b/gcc/configure @@ -30779,6 +30779,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 0fd438e39e5..0b257e687ee 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -6863,6 +6863,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]) -- 2.29.2