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 100e8407fc..697f93741c 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 89443e9a90..92c9b59bb5 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 1.4.1