commit e30fb31c0ad8d31babd1d0d0f05e37c6579a870b Author: Florian Weimer Date: Fri Apr 26 07:16:47 2019 +0200 Makeconfig: Move $(CC) to +link command variables This change is needed to add linker flags which come very early in the command linke (before LDFLAGS) and are not applied to test programs (only to installed programs). diff --git a/Makeconfig b/Makeconfig index 742c0c0783a14bfa..1ad25fc5a7251aea 100644 --- a/Makeconfig +++ b/Makeconfig @@ -415,7 +415,7 @@ link-extra-libs-tests = $(libsupport) # Command for linking PIE programs with the C library. ifndef +link-pie -+link-pie-before-libc = $(CC) $(if $($(@F)-no-pie),$(no-pie-ldflag),-pie) \ ++link-pie-before-libc = $(if $($(@F)-no-pie),$(no-pie-ldflag),-pie) \ -Wl,-O1 -nostdlib -nostartfiles -o $@ \ $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \ $(combreloc-LDFLAGS) $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \ @@ -428,23 +428,24 @@ ifndef +link-pie $(link-extra-libs) +link-pie-after-libc = $(+postctorS) $(+postinit) define +link-pie -$(+link-pie-before-libc) $(rtld-LDFLAGS) $(link-extra-flags) $(link-libc) $(+link-pie-after-libc) +$(CC) $(+link-pie-before-libc) $(rtld-LDFLAGS) $(link-extra-flags) \ + $(link-libc) $(+link-pie-after-libc) $(call after-link,$@) endef define +link-pie-tests -$(+link-pie-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \ - $(+link-pie-after-libc) +$(CC) $(+link-pie-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \ + $(+link-pie-after-libc) $(call after-link,$@) endef define +link-pie-printers-tests -$(+link-pie-before-libc) $(built-rtld-LDFLAGS) $(link-libc-printers-tests) \ - $(+link-pie-after-libc) +$(CC) $(+link-pie-before-libc) $(built-rtld-LDFLAGS) \ + $(link-libc-printers-tests) $(+link-pie-after-libc) $(call after-link,$@) endef endif # Command for statically linking programs with the C library. ifndef +link-static -+link-static-before-libc = $(CC) -nostdlib -nostartfiles -static -o $@ \ ++link-static-before-libc = -nostdlib -nostartfiles -static -o $@ \ $(if $($(@F)-no-pie),$(no-pie-ldflag),$(default-pie-ldflag)) \ $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \ $(firstword $(CRT-$(@F)) $(csu-objpfx)$(real-static-start-installed-name)) \ @@ -456,11 +457,13 @@ ifndef +link-static $(link-extra-libs-static) +link-static-after-libc = $(+postctorT) $(+postinit) define +link-static -$(+link-static-before-libc) $(link-extra-flags) $(link-libc-static) $(+link-static-after-libc) +$(CC) $(+link-static-before-libc) $(link-extra-flags) $(link-libc-static) \ + $(+link-static-after-libc) $(call after-link,$@) endef define +link-static-tests -$(+link-static-before-libc) $(link-libc-static-tests) $(+link-static-after-libc) +$(CC) $(+link-static-before-libc) $(link-libc-static-tests) \ + $(+link-static-after-libc) $(call after-link,$@) endef endif @@ -475,7 +478,7 @@ ifeq (yes,$(build-pie-default)) +link-tests = $(+link-pie-tests) +link-printers-tests = $(+link-pie-printers-tests) else # not build-pie-default -+link-before-libc = $(CC) -nostdlib -nostartfiles -o $@ \ ++link-before-libc = -nostdlib -nostartfiles -o $@ \ $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F)) \ $(combreloc-LDFLAGS) $(relro-LDFLAGS) $(hashstyle-LDFLAGS) \ $(firstword $(CRT-$(@F)) $(csu-objpfx)$(start-installed-name)) \ @@ -487,16 +490,17 @@ else # not build-pie-default $(link-extra-libs) +link-after-libc = $(+postctor) $(+postinit) define +link -$(+link-before-libc) $(rtld-LDFLAGS) $(link-extra-flags) $(link-libc) $(+link-after-libc) +$(CC) $(+link-before-libc) $(rtld-LDFLAGS) $(link-extra-flags) $(link-libc) \ + $(+link-after-libc) $(call after-link,$@) endef define +link-tests -$(+link-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \ +$(CC) $(+link-before-libc) $(rtld-tests-LDFLAGS) $(link-libc-tests) \ $(+link-after-libc) $(call after-link,$@) endef define +link-printers-tests -$(+link-before-libc) $(built-rtld-LDFLAGS) $(link-libc-printers-tests) \ +$(CC) $(+link-before-libc) $(built-rtld-LDFLAGS) $(link-libc-printers-tests) \ $(+link-after-libc) $(call after-link,$@) endef