Makeconfig: Move $(CC) to +link command variables
diff mbox series

Message ID 87a7geclhu.fsf@oldenburg2.str.redhat.com
State New
Headers show
Series
  • Makeconfig: Move $(CC) to +link command variables
Related show

Commit Message

Florian Weimer April 25, 2019, 12:33 p.m. UTC
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).

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).

Comments

Carlos O'Donell April 25, 2019, 9:22 p.m. UTC | #1
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
>

Patch
diff mbox series

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