diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-12-18 12:24:26 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-12-18 12:24:38 -0800 |
commit | 00c714df398b63934540d95ce3792596f7a94a6c (patch) | |
tree | f96ed5735a44f5a6afff6efafe5dc86f1b93fecb /Makeconfig | |
parent | 8e1472d2c1e25e6eabc2059170731365f6d5b3d1 (diff) | |
download | glibc-00c714df398b63934540d95ce3792596f7a94a6c.tar.gz glibc-00c714df398b63934540d95ce3792596f7a94a6c.tar.xz glibc-00c714df398b63934540d95ce3792596f7a94a6c.zip |
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 'Makeconfig')
-rw-r--r-- | Makeconfig | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Makeconfig b/Makeconfig index 99cc136bfa..80c498e33b 100644 --- a/Makeconfig +++ b/Makeconfig @@ -464,8 +464,10 @@ endif # Commands for linking programs with the C library. ifndef +link ifeq (yes,$(build-shared)) -ifeq (yes,$(build-pie-default)) +ifeq (yes,$(cc-pie-default)) no-pie-ldflag = -no-pie +endif +ifeq (yes,$(build-pie-default)) +link = $(+link-pie) +link-tests = $(+link-pie-tests) +link-printers-tests = $(+link-pie-printers-tests) |