diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2015-03-02 14:53:11 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2015-05-28 06:08:28 -0700 |
commit | ca1f728cbefd6955735087e45d80620113623b3b (patch) | |
tree | ba764e7f0391b93777d90d6a08a24695c2037634 /Makerules | |
parent | 1ea33bb5517516d1d1005b953c92a071454e66d5 (diff) | |
download | glibc-hjl/pr17841/master.zip glibc-hjl/pr17841/master.tar.gz glibc-hjl/pr17841/master.tar.bz2 |
Compile archives with -fno-piehjl/pr17841/master
When compiler defaults to PIE, we compile archives with -fno-pie. Since
archives won't be used with PIE, compile them with -fpie isn't necessary.
[BZ #17841]
* Makeconfig (no-pie-ccflag): New. Set to -fno-pie.
(pic-default): Don't define if $(no-pie-ccflag) is -fno-pie.
(test-object-suffix): New.
* Makerules (archive-objects): New. Set before including
extra-lib.mk.
($(archive-objects)): New. New rule to append $(no-pie-ccflag)
to CFLAGS.
* extra-lib.mk (archive-objects): New.
* crypt/Makefile ($(objpfx)md5test): Replace ".o" with
$(test-object-suffix).
($(objpfx)md5test-giant): Likewise.
($(objpfx)sha256test): Likewise.
($(objpfx)sha512test): Likewise.
* math/Makefile (LDFLAGS-atest-exp): New.
(LDFLAGS-atest-sincos): Likewise.
(LDFLAGS-atest-exp2): Likewise.
Diffstat (limited to 'Makerules')
-rw-r--r-- | Makerules | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -705,6 +705,7 @@ headers := $(headers) $(sysdep_headers) # replacing every ".c" in `sources' with a ".o". override objects := $(addprefix $(objpfx),$(sources:.c=.o)) +archive-objects := $(objects) # The makefile may define $(extra-libs) with `libfoo libbar' # to build libfoo.a et al from the modules listed in $(libfoo-routines). @@ -716,6 +717,9 @@ extra-libs-left := $(extra-libs) include $(patsubst %,$(..)extra-lib.mk,$(extra-libs)) endif +# Set "archive-objects" before including extra-lib.mk which will append +# "archive-objects". +$(archive-objects): CFLAGS += $(no-pie-ccflag) # The makefile may define $(modules-names) to build additional modules. # These are built with $(build-module), except any in $(modules-names-nobuild). |