From 00c714df398b63934540d95ce3792596f7a94a6c Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Mon, 18 Dec 2017 12:24:26 -0800 Subject: 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. --- configure.ac | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index 8e4006f..ca1282a 100644 --- a/configure.ac +++ b/configure.ac @@ -1794,17 +1794,19 @@ fi rm -f conftest.*]) AC_SUBST(libc_cv_pic_default) -AC_CACHE_CHECK([whether -fPIE is default], libc_cv_pie_default, -[libc_cv_pie_default=yes +AC_CACHE_CHECK([whether -fPIE is default], libc_cv_cc_pie_default, +[libc_cv_cc_pie_default=yes cat > conftest.c <&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then - libc_cv_pie_default=no + libc_cv_cc_pie_default=no fi rm -f conftest.*]) +libc_cv_pie_default=$libc_cv_cc_pie_default +AC_SUBST(libc_cv_cc_pie_default) AC_SUBST(libc_cv_pie_default) # Set the `multidir' variable by grabbing the variable from the compiler. -- cgit v1.1