aboutsummaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-12-18 12:24:26 -0800
committerH.J. Lu <hjl.tools@gmail.com>2017-12-18 12:24:38 -0800
commit00c714df398b63934540d95ce3792596f7a94a6c (patch)
treef96ed5735a44f5a6afff6efafe5dc86f1b93fecb /configure
parent8e1472d2c1e25e6eabc2059170731365f6d5b3d1 (diff)
downloadglibc-00c714df398b63934540d95ce3792596f7a94a6c.zip
glibc-00c714df398b63934540d95ce3792596f7a94a6c.tar.gz
glibc-00c714df398b63934540d95ce3792596f7a94a6c.tar.bz2
Pass -no-pie to GCC only if GCC defaults to PIE [BZ #22614]
After --enable-static-pie is added to configure, libc_cv_pie_default is set to yes when either --enable-static-pie is used to configure glibc or GCC defaults to PIE. We should set no-pie-ldflag to -no-pie, which is supported on GCC 6 and later, only if GCC defaults to PIE, not when --enable-static-pie is used to configure glibc. Tested on x32 with --enable-static-pie using GCC 5 and without --enable-static-pie using GCC 7. [BZ #22614] * Makeconfig (no-pie-ldflag): Set to -no-pie only if $(cc-pie-default) == yes. * config.make.in (cc-pie-default): New. * configure.ac (libc_cv_pie_default): Renamed to ... (libc_cv_cc_pie_default): This. (libc_cv_pie_default): Set to $libc_cv_cc_pie_default. * configure: Regenerated.
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure13
1 files changed, 8 insertions, 5 deletions
diff --git a/configure b/configure
index 9da9fb2..7a8bd3f 100755
--- a/configure
+++ b/configure
@@ -596,6 +596,7 @@ static_nss
profile
libc_cv_multidir
libc_cv_pie_default
+libc_cv_cc_pie_default
libc_cv_pic_default
shared
static
@@ -6748,22 +6749,24 @@ $as_echo "$libc_cv_pic_default" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -fPIE is default" >&5
$as_echo_n "checking whether -fPIE is default... " >&6; }
-if ${libc_cv_pie_default+:} false; then :
+if ${libc_cv_cc_pie_default+:} false; then :
$as_echo_n "(cached) " >&6
else
- libc_cv_pie_default=yes
+ libc_cv_cc_pie_default=yes
cat > conftest.c <<EOF
#if defined __PIE__ || defined __pie__ || defined PIE || defined pie
# error PIE is default.
#endif
EOF
if eval "${CC-cc} -S conftest.c 2>&5 1>&5"; then
- libc_cv_pie_default=no
+ libc_cv_cc_pie_default=no
fi
rm -f conftest.*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_pie_default" >&5
-$as_echo "$libc_cv_pie_default" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_pie_default" >&5
+$as_echo "$libc_cv_cc_pie_default" >&6; }
+libc_cv_pie_default=$libc_cv_cc_pie_default
+
# Set the `multidir' variable by grabbing the variable from the compiler.