From 21ed68033a6732e4478926de06dd091ee7f1d4c1 Mon Sep 17 00:00:00 2001 From: Florian Weimer <fweimer@redhat.com> Date: Wed, 17 Aug 2016 14:57:00 +0200 Subject: [PATCH] Do not override objects in libc.a in other static libraries [BZ #20452] With this change, we no longer add sysdep.o and similar objects which are present in libc.a to other static libraries. (cherry picked from commit d9067fca40b8aac156d73cfa44d6875813555a6c) --- ChangeLog | 34 +++++++++++++++++++++++++++++ sysdeps/ia64/nptl/Makefile | 1 + sysdeps/mips/Makefile | 1 + sysdeps/mips/nptl/Makefile | 1 + sysdeps/s390/nptl/Makefile | 1 + sysdeps/unix/alpha/Makefile | 1 + sysdeps/unix/sysv/linux/alpha/Makefile | 1 + sysdeps/unix/sysv/linux/i386/Makefile | 1 + sysdeps/unix/sysv/linux/ia64/Makefile | 1 + sysdeps/unix/sysv/linux/microblaze/Makefile | 3 ++- sysdeps/unix/sysv/linux/powerpc/Makefile | 2 ++ sysdeps/unix/sysv/linux/s390/Makefile | 1 + sysdeps/unix/sysv/linux/sparc/Makefile | 2 ++ sysdeps/unix/sysv/linux/tile/Makefile | 1 + 14 files changed, 50 insertions(+), 1 deletion(-) #diff --git a/ChangeLog b/ChangeLog #index 3800353..c048c1a 100644 #--- a/ChangeLog #+++ b/ChangeLog #@@ -1,3 +1,37 @@ #+2016-08-17 Florian Weimer <fweimer@redhat.com> #+ #+ [BZ #20452] #+ Avoid additional copies of objects in libc.a in static libraries. #+ * sysdeps/ia64/nptl/Makefile (libpthread-shared-only-routines): #+ Add ptw-sysdep, ptw-sigblock, ptw-sigprocmask. #+ * sysdeps/mips/Makefile (librt-shared-only-routines): Add #+ rt-sysdep. #+ * sysdeps/mips/nptl/Makefile (libpthread-shared-only-routines): #+ Add nptl-sysdep. #+ * sysdeps/s390/nptl/Makefile (libpthread-shared-only-routines): #+ Add ptw-sysdep. #+ * sysdeps/unix/alpha/Makefile (librt-shared-only-routines): Add #+ rt-sysdep. #+ * sysdeps/unix/sysv/linux/alpha/Makefile #+ (libpthread-shared-only-routines): Add ptw-sysdep, #+ ptw-sigprocmask, ptw-rt_sigaction. #+ * sysdeps/unix/sysv/linux/ia64/Makefile #+ (librt-shared-only-routines): Add rt-sysdep. #+ * sysdeps/unix/sysv/linux/i386/Makefile #+ (libpthread-shared-only-routines): Add libc-do-syscall. #+ * sysdeps/unix/sysv/linux/microblaze/Makefile #+ (libpthread-shared-only-routines): Add sysdep. #+ * sysdeps/unix/sysv/linux/powerpc/Makefile #+ (librt-shared-only-routines): Add rt-sysdep. #+ (libpthread-shared-only-routines): Add sysdep. #+ * sysdeps/unix/sysv/linux/s390/Makefile #+ (librt-shared-only-routines): Add rt-sysdep. #+ * sysdeps/unix/sysv/linux/sparc/Makefile #+ (librt-shared-only-routines): Add rt-sysdep. #+ (libpthread-shared-only-routines): Add sysdep. #+ * sysdeps/unix/sysv/linux/tile/Makefile #+ (libpthread-shared-only-routines): Likewise. #+ # 2016-08-02 Florian Weimer <fweimer@redhat.com> # # [BZ #20370] diff --git a/sysdeps/ia64/nptl/Makefile b/sysdeps/ia64/nptl/Makefile index fd8abbc..84e0b8b 100644 --- a/sysdeps/ia64/nptl/Makefile +++ b/sysdeps/ia64/nptl/Makefile @@ -21,4 +21,5 @@ endif ifeq ($(subdir),nptl) libpthread-routines += ptw-sysdep ptw-sigblock ptw-sigprocmask +libpthread-shared-only-routines += ptw-sysdep ptw-sigblock ptw-sigprocmask endif diff --git a/sysdeps/mips/Makefile b/sysdeps/mips/Makefile index 463b121..4dfaaa8 100644 --- a/sysdeps/mips/Makefile +++ b/sysdeps/mips/Makefile @@ -9,6 +9,7 @@ endif ifeq ($(subdir),rt) librt-sysdep_routines += rt-sysdep +librt-shared-only-routines += rt-sysdep endif ifeq ($(subdir),debug) diff --git a/sysdeps/mips/nptl/Makefile b/sysdeps/mips/nptl/Makefile index 46baad5..4a710ee 100644 --- a/sysdeps/mips/nptl/Makefile +++ b/sysdeps/mips/nptl/Makefile @@ -21,4 +21,5 @@ endif ifeq ($(subdir),nptl) libpthread-sysdep_routines += nptl-sysdep +libpthread-shared-only-routines += nptl-sysdep endif diff --git a/sysdeps/s390/nptl/Makefile b/sysdeps/s390/nptl/Makefile index 1333260..d105648 100644 --- a/sysdeps/s390/nptl/Makefile +++ b/sysdeps/s390/nptl/Makefile @@ -21,4 +21,5 @@ endif ifeq ($(subdir),nptl) libpthread-routines += ptw-sysdep +libpthread-shared-only-routines += ptw-sysdep endif diff --git a/sysdeps/unix/alpha/Makefile b/sysdeps/unix/alpha/Makefile index 441aa02..0660847 100644 --- a/sysdeps/unix/alpha/Makefile +++ b/sysdeps/unix/alpha/Makefile @@ -1,3 +1,4 @@ ifeq ($(subdir),rt) librt-sysdep_routines += rt-sysdep +librt-shared-only-routines += rt-sysdep endif diff --git a/sysdeps/unix/sysv/linux/alpha/Makefile b/sysdeps/unix/sysv/linux/alpha/Makefile index 3769bef..6e56125 100644 --- a/sysdeps/unix/sysv/linux/alpha/Makefile +++ b/sysdeps/unix/sysv/linux/alpha/Makefile @@ -41,4 +41,5 @@ endif # math ifeq ($(subdir),nptl) # pull in __syscall_error routine, __sigprocmask, __syscall_rt_sigaction libpthread-routines += ptw-sysdep ptw-sigprocmask ptw-rt_sigaction +libpthread-shared-only-routines += ptw-sysdep ptw-sigprocmask ptw-rt_sigaction endif diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile index 80da593..b365c97 100644 --- a/sysdeps/unix/sysv/linux/i386/Makefile +++ b/sysdeps/unix/sysv/linux/i386/Makefile @@ -18,6 +18,7 @@ endif # libpthread uses six-argument inline syscalls. ifeq ($(subdir),nptl) libpthread-sysdep_routines += libc-do-syscall +libpthread-shared-only-routines += libc-do-syscall endif ifeq ($(subdir),resource) diff --git a/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile index 1de62c5..4d6766d 100644 --- a/sysdeps/unix/sysv/linux/ia64/Makefile +++ b/sysdeps/unix/sysv/linux/ia64/Makefile @@ -19,6 +19,7 @@ endif ifeq ($(subdir),rt) librt-routines += rt-sysdep +librt-shared-only-routines += rt-sysdep endif ifeq ($(subdir),nptl) diff --git a/sysdeps/unix/sysv/linux/microblaze/Makefile b/sysdeps/unix/sysv/linux/microblaze/Makefile index 44a838f..d178bc6 100644 --- a/sysdeps/unix/sysv/linux/microblaze/Makefile +++ b/sysdeps/unix/sysv/linux/microblaze/Makefile @@ -5,4 +5,5 @@ endif ifeq ($(subdir),nptl) # pull in __syscall_error routine libpthread-routines += sysdep -endif \ No newline at end of file +libpthread-shared-only-routines += sysdep +endif diff --git a/sysdeps/unix/sysv/linux/powerpc/Makefile b/sysdeps/unix/sysv/linux/powerpc/Makefile index c89ed9e..2cfb46e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/Makefile +++ b/sysdeps/unix/sysv/linux/powerpc/Makefile @@ -8,6 +8,7 @@ abi-64-v2-condition := __WORDSIZE == 64 && _CALL_ELF == 2 ifeq ($(subdir),rt) librt-routines += rt-sysdep +librt-shared-only-routines += rt-sysdep endif ifeq ($(subdir),stdlib) @@ -34,4 +35,5 @@ ifeq ($(subdir),nptl) libpthread-routines += sysdep libpthread-sysdep_routines += elision-lock elision-unlock elision-timed \ elision-trylock +libpthread-shared-only-routines += sysdep endif diff --git a/sysdeps/unix/sysv/linux/s390/Makefile b/sysdeps/unix/sysv/linux/s390/Makefile index 497ffd5..f8ed013 100644 --- a/sysdeps/unix/sysv/linux/s390/Makefile +++ b/sysdeps/unix/sysv/linux/s390/Makefile @@ -6,6 +6,7 @@ abi-64-condition := __WORDSIZE == 64 ifeq ($(subdir),rt) librt-routines += rt-sysdep +librt-shared-only-routines += rt-sysdep endif ifeq ($(subdir),stdlib) diff --git a/sysdeps/unix/sysv/linux/sparc/Makefile b/sysdeps/unix/sysv/linux/sparc/Makefile index e67aecf..a67d199 100644 --- a/sysdeps/unix/sysv/linux/sparc/Makefile +++ b/sysdeps/unix/sysv/linux/sparc/Makefile @@ -6,6 +6,7 @@ abi-64-condition := __WORDSIZE == 64 ifeq ($(subdir),rt) librt-routines += rt-sysdep +librt-shared-only-routines += rt-sysdep endif ifeq ($(subdir),sysvipc) @@ -15,4 +16,5 @@ endif ifeq ($(subdir),nptl) # pull in __syscall_error routine libpthread-routines += sysdep +libpthread-shared-only-routines += sysdep endif diff --git a/sysdeps/unix/sysv/linux/tile/Makefile b/sysdeps/unix/sysv/linux/tile/Makefile index 1c1cfff..43acea3 100644 --- a/sysdeps/unix/sysv/linux/tile/Makefile +++ b/sysdeps/unix/sysv/linux/tile/Makefile @@ -25,4 +25,5 @@ endif ifeq ($(subdir),nptl) # pull in __syscall_error routine libpthread-routines += sysdep +libpthread-shared-only-routines += sysdep endif -- 2.10.2