From ca1f728cbefd6955735087e45d80620113623b3b Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Mon, 2 Mar 2015 14:53:11 -0800 Subject: Compile archives with -fno-pie 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. --- extra-lib.mk | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'extra-lib.mk') diff --git a/extra-lib.mk b/extra-lib.mk index b10748d..73b1e7f 100644 --- a/extra-lib.mk +++ b/extra-lib.mk @@ -27,6 +27,11 @@ extra-objs := $(extra-objs) # The modules that go in $(lib). all-$(lib)-routines := $($(lib)-routines) $($(lib)-sysdep_routines) +# rpcsvc library is compiled with PIC. +ifneq (librpcsvc,$(lib)) +archive-objects += $(addprefix $(objpfx),$(patsubst %,%.o,$(all-$(lib)-routines))) +endif + # Add each flavor of library to the lists of things to build and install. install-lib += $(foreach o,$(object-suffixes-$(lib)),$(lib:lib%=$(libtype$o))) extra-objs += $(foreach o,$(filter-out .os .oS,$(object-suffixes-$(lib))),\ -- cgit v1.1