86f0ee9140
Fixes CVE-2016-6323
228 lines
8 KiB
Diff
228 lines
8 KiB
Diff
From e2e4984ad62330fa1d328d9eeb0a3e42620825b6 Mon Sep 17 00:00:00 2001
|
|
From: Florian Weimer <fweimer@redhat.com>
|
|
Date: Wed, 17 Aug 2016 14:57:00 +0200
|
|
Subject: [PATCH 08] 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 acdc443..9dfd24d 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-05 Aurelien Jarno <aurelien@aurel32.net>
|
|
|
|
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
|
|
diff --git a/sysdeps/ia64/nptl/Makefile b/sysdeps/ia64/nptl/Makefile
|
|
index 48f1327..1e6be8e 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 3d35523..7c1d779 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 117744f..dda154d 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 5734b98..3a391c8 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 c089545..3b523b7 100644
|
|
--- a/sysdeps/unix/sysv/linux/alpha/Makefile
|
|
+++ b/sysdeps/unix/sysv/linux/alpha/Makefile
|
|
@@ -40,4 +40,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 b015ff7..6073a9f 100644
|
|
--- a/sysdeps/unix/sysv/linux/i386/Makefile
|
|
+++ b/sysdeps/unix/sysv/linux/i386/Makefile
|
|
@@ -31,6 +31,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.7.4.GIT
|
|
|
|
|