[roland/dl-routines] Clean up sysdep-dl-routines variable.
diff mbox

Message ID 20150116222047.050AF2C39DF@topped-with-meat.com
State New
Headers show

Commit Message

Roland McGrath Jan. 16, 2015, 10:20 p.m. UTC
There is a lot of useless duplication of work done in sysdeps Makefiles
because sysdep-dl-routines doesn't feed into all the places that
dl-routines does.  This cleans things up so that listing something in
sysdep-dl-routines is enough to get it into both ld.so and libc.a (just
like the main dl-routines), which makes more sense than the status quo.

Tested x86_64-linux-gnu.  This should not change anything material in any
build, but in mine it did change the order in which things got linked into
the shared objects, so they don't come out identical.  The other machines
affected should all be fine too unless I made a stupid typo or something.
If nobody objects, I'll commit this on Tuesday.


Thanks,
Roland


2015-01-16  Roland McGrath  <roland@hack.frob.com>

	* elf/Makefile (routines): Include $(all-dl-routines), not just
	$(dl-routines).
	(rtld-routines): Likewise.  Use = rather than :=.
	* sysdeps/aarch64/Makefile [$(subdir) = elf]
	(sysdep_routines, sysdep-rtld-routines): Don't add tlsdesc and
	dl-tlsdesc to these; sysdep-dl-routines alone is enough.
	* sysdeps/arm/Makefile: Likewise.
	* sysdeps/i386/Makefile: Likewise.
	* sysdeps/x86_64/Makefile: Likewise.
	* sysdeps/hppa/Makefile [$(subdir) = elf]
	(sysdep_routines, sysdep-rtld-routines): Don't add
	$(sysdep-dl-routines) to these.
	* sysdeps/ia64/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/ia64/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/Makefile [$(subdir) = elf]
	[$(build-shared) = yes] (sysdep_routines, sysdep-rtld-routines):
	Don't add dl-static to these; sysdep-dl-routines alone is enough.
	* sysdeps/unix/sysv/linux/m68k/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/mips/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/tile/Makefile: Likewise.
	* sysdeps/powerpc/Makefile [$(subdir) = elf]
	(sysdep_routines, sysdep-rtld-routines): Don't add dl-machine to
	these; sysdep-dl-routines alone is enough.

Comments

Joseph Myers Jan. 17, 2015, 12:13 a.m. UTC | #1
On Fri, 16 Jan 2015, Roland McGrath wrote:

> If nobody objects, I'll commit this on Tuesday.

Has the end of the semi-freeze been postponed?  I think it's best to avoid 
this sort of cleanup that doesn't fix bugs during the full freeze.
Carlos O'Donell Jan. 21, 2015, 12:53 a.m. UTC | #2
On 01/16/2015 07:13 PM, Joseph Myers wrote:
> On Fri, 16 Jan 2015, Roland McGrath wrote:
> 
>> If nobody objects, I'll commit this on Tuesday.
> 
> Has the end of the semi-freeze been postponed?  I think it's best to avoid 
> this sort of cleanup that doesn't fix bugs during the full freeze.
> 

I agree. Please hold off on this until we branch for 2.22.

Cheers,
Carlos.

Patch
diff mbox

--- a/elf/Makefile
+++ b/elf/Makefile
@@ -22,7 +22,7 @@  subdir		:= elf
 include ../Makeconfig
 
 headers		= elf.h bits/elfclass.h link.h bits/link.h
-routines	= $(dl-routines) dl-support dl-iteratephdr \
+routines	= $(all-dl-routines) dl-support dl-iteratephdr \
 		  dl-addr enbl-secure dl-profstub \
 		  dl-origin dl-libc dl-sym dl-tsd dl-sysdep
 
@@ -43,7 +43,7 @@  shared-only-routines += dl-caller
 
 # ld.so uses those routines, plus some special stuff for being the program
 # interpreter and operating independent of libc.
-rtld-routines	:= rtld $(dl-routines) dl-sysdep dl-environ dl-minimal
+rtld-routines	= rtld $(all-dl-routines) dl-sysdep dl-environ dl-minimal
 all-rtld-routines = $(rtld-routines) $(sysdep-rtld-routines)
 
 CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables
--- a/sysdeps/aarch64/Makefile
+++ b/sysdeps/aarch64/Makefile
@@ -6,8 +6,6 @@  endif
 
 ifeq ($(subdir),elf)
 sysdep-dl-routines += tlsdesc dl-tlsdesc
-sysdep_routines += tlsdesc dl-tlsdesc
-sysdep-rtld-routines += tlsdesc dl-tlsdesc
 gen-as-const-headers += dl-link.sym
 endif
 
--- a/sysdeps/arm/Makefile
+++ b/sysdeps/arm/Makefile
@@ -3,8 +3,8 @@  static-gnulib-arch = $(elf-objpfx)libgcc-stubs.a
 
 ifeq ($(subdir),elf)
 sysdep-dl-routines += tlsdesc dl-tlsdesc
-sysdep_routines += aeabi_unwind_cpp_pr1 find_exidx tlsdesc dl-tlsdesc
-sysdep-rtld-routines += aeabi_unwind_cpp_pr1 tlsdesc dl-tlsdesc
+sysdep_routines += aeabi_unwind_cpp_pr1 find_exidx
+sysdep-rtld-routines += aeabi_unwind_cpp_pr1
 shared-only-routines += aeabi_unwind_cpp_pr1
 
 $(objpfx)libgcc-stubs.a: $(objpfx)aeabi_unwind_cpp_pr1.os
--- a/sysdeps/hppa/Makefile
+++ b/sysdeps/hppa/Makefile
@@ -24,8 +24,6 @@  LDFLAGS-c_pic.os += -Wl,--unique=.text*
 ifeq ($(subdir),elf)
 CFLAGS-rtld.c += -mdisable-fpregs
 sysdep-dl-routines += dl-symaddr dl-fptr
-sysdep_routines += $(sysdep-dl-routines)
-sysdep-rtld-routines += $(sysdep-dl-routines)
 endif
 
 ifeq ($(subdir),csu)
--- a/sysdeps/i386/Makefile
+++ b/sysdeps/i386/Makefile
@@ -66,8 +66,6 @@  endif
 
 ifeq ($(subdir),elf)
 sysdep-dl-routines += tlsdesc dl-tlsdesc
-sysdep_routines += tlsdesc dl-tlsdesc
-sysdep-rtld-routines += tlsdesc dl-tlsdesc
 endif
 
 ifeq ($(subdir),csu)
--- a/sysdeps/ia64/Makefile
+++ b/sysdeps/ia64/Makefile
@@ -17,6 +17,4 @@  endif
 
 ifeq ($(subdir),elf)
 sysdep-dl-routines += dl-symaddr dl-fptr
-sysdep_routines += $(sysdep-dl-routines)
-sysdep-rtld-routines += $(sysdep-dl-routines)
 endif
--- a/sysdeps/unix/sysv/linux/aarch64/Makefile
+++ b/sysdeps/unix/sysv/linux/aarch64/Makefile
@@ -10,8 +10,6 @@  sysdep-rtld-routines += __read_tp
 ifeq ($(build-shared),yes)
 # This is needed for DSO loading from static binaries.
 sysdep-dl-routines += dl-static
-sysdep_routines += dl-static
-sysdep-rtld-routines += dl-static
 endif
 endif
 
--- a/sysdeps/unix/sysv/linux/ia64/Makefile
+++ b/sysdeps/unix/sysv/linux/ia64/Makefile
@@ -15,8 +15,6 @@  endif
 
 ifeq ($(subdir),elf)
 sysdep-dl-routines += dl-static
-sysdep_routines += $(sysdep-dl-routines)
-sysdep-rtld-routines += $(sysdep-dl-routines)
 endif
 
 ifeq ($(subdir),rt)
--- a/sysdeps/unix/sysv/linux/m68k/Makefile
+++ b/sysdeps/unix/sysv/linux/m68k/Makefile
@@ -13,8 +13,8 @@  endif
 
 ifeq ($(subdir),elf)
 sysdep-dl-routines += dl-static
-sysdep_routines += dl-vdso libc-m68k-vdso dl-static
-sysdep-rtld-routines += m68k-vdso dl-static
+sysdep_routines += dl-vdso libc-m68k-vdso
+sysdep-rtld-routines += m68k-vdso
 sysdep-others += lddlibc4
 install-bin += lddlibc4
 endif
--- a/sysdeps/unix/sysv/linux/mips/Makefile
+++ b/sysdeps/unix/sysv/linux/mips/Makefile
@@ -96,8 +96,6 @@  ifeq ($(subdir),elf)
 ifeq ($(build-shared),yes)
 # This is needed for DSO loading from static binaries.
 sysdep-dl-routines += dl-static
-sysdep_routines += dl-static
-sysdep-rtld-routines += dl-static
 endif
 endif
 
--- a/sysdeps/unix/sysv/linux/powerpc/Makefile
+++ b/sysdeps/unix/sysv/linux/powerpc/Makefile
@@ -19,8 +19,6 @@  sysdep_routines += dl-vdso
 ifeq ($(build-shared),yes)
 # This is needed for DSO loading from static binaries.
 sysdep-dl-routines += dl-static
-sysdep_routines += dl-static
-sysdep-rtld-routines += dl-static
 endif
 endif
 
--- a/sysdeps/unix/sysv/linux/tile/Makefile
+++ b/sysdeps/unix/sysv/linux/tile/Makefile
@@ -19,8 +19,6 @@  sysdep_routines += dl-vdso
 ifeq ($(build-shared),yes)
 # This is needed for DSO loading from static binaries.
 sysdep-dl-routines += dl-static
-sysdep_routines += dl-static
-sysdep-rtld-routines += dl-static
 endif
 endif
 
--- a/sysdeps/x86_64/Makefile
+++ b/sysdeps/x86_64/Makefile
@@ -20,8 +20,6 @@  endif
 
 ifeq ($(subdir),elf)
 sysdep-dl-routines += tlsdesc dl-tlsdesc
-sysdep_routines += tlsdesc dl-tlsdesc
-sysdep-rtld-routines += tlsdesc dl-tlsdesc
 
 tests += tst-quad1 tst-quad2
 modules-names += tst-quadmod1 tst-quadmod2