From e30fb31c0ad8d31babd1d0d0f05e37c6579a870b Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Fri, 26 Apr 2019 07:16:47 +0200 Subject: 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). --- ChangeLog | 9 +++++++++ Makeconfig | 30 +++++++++++++++++------------- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 100e840..697f937 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2019-04-26 Florian Weimer + + * Makeconfig (+link-pie-before-libc): Remove $(CC). + (+link-pie, +link-pie-tests, +link-pie-printers-tests): Add $(CC). + (+link-static-before-libc): Remove $(CC). + (+link-static, +link-static-tests): Add $(CC). + (+link-before-libc): Remove $(CC). + (+link, +link-pie, +link-pie-printers): Add $(CC). + 2019-04-25 David Abdurachmanov [BZ#24484] diff --git a/Makeconfig b/Makeconfig index 89443e9..92c9b59 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 -- cgit v1.1