[roland/dl-routines] Clean up sysdep-dl-routines variable.
Commit Message
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
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.
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.
@@ -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
@@ -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
@@ -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
@@ -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)
@@ -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)
@@ -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
@@ -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
@@ -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)
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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