This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH roland/dl-routines] Clean up sysdep-dl-routines variable.
- From: Roland McGrath <roland at hack dot frob dot com>
- To: "GNU C. Library" <libc-alpha at sourceware dot org>
- Date: Fri, 16 Jan 2015 14:20:46 -0800 (PST)
- Subject: [PATCH roland/dl-routines] Clean up sysdep-dl-routines variable.
- Authentication-results: sourceware.org; auth=none
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.
--- 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