Message ID | 87a7geclhu.fsf@oldenburg2.str.redhat.com |
---|---|
State | New |
Headers | show |
Series | Makeconfig: Move $(CC) to +link command variables | expand |
On 4/25/19 8:33 AM, Florian Weimer wrote: > 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). Thank you for working on this kind of cleanup. > 2019-04-25 Florian Weimer <fweimer@redhat.com> > > * 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). This looks good to me. Reviewed-by: Carlos O'Donell <carlos@redhat.com> > > 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) \ OK, remove $(CC). > -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) OK, put $(CC) ahead of everything else. > $(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) OK, likewise. > $(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) OK, likewise. > $(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 $@ \ OK, remove $(CC). > $(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) OK, put $(CC) ahead of everything else. > $(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) OK, likewise. > $(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 $@ \ OK, remove $(CC). > $(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) OK, put $(CC) ahead of everything else. > $(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) \ OK, likewise. > $(+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) \ OK, likewise. > $(+link-after-libc) > $(call after-link,$@) > endef >
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