mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
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.
This commit is contained in:
13
configure
vendored
13
configure
vendored
@ -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.
|
||||
|
Reference in New Issue
Block a user