about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-09-26 17:34:22 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-09-26 17:34:22 +0000
commit1810d3ab7174cc70a3c57700250a600a68f4b242 (patch)
treeedaaee5bbedf96ed50897791b9ae3bc8ed2f1b78
parent93ae1ebaa6df1a0c188614bd0a601ab6e26711c5 (diff)
downloadglibc-1810d3ab7174cc70a3c57700250a600a68f4b242.tar.gz
glibc-1810d3ab7174cc70a3c57700250a600a68f4b242.tar.xz
glibc-1810d3ab7174cc70a3c57700250a600a68f4b242.zip
Remove shlib-versions entries redundant with DEFAULT entries.
When a shlib-versions file has a DEFAULT line, it's not necessary to
specify the same default minimum symbol version on the lines for
individual libraries.  If those lines otherwise duplicate the default
SONAME for the library in question, they can be removed completely.

This patch makes such cleanups: version entries for ld.so are removed
(leaving just the definition of the architecture-specific dynamic
linker name) and entries for libpthread are removed completely (since
the default is libpthread.so.0).

Tested for x86_64 that the installed shared libraries are unchanged by
this patch.

There are various architectures (hppa, ia64, mips, sh, sparc64) that
define minimum symbol versions (or in the case of mips, omission of
symbol versions) only for particular libraries without a DEFAULT line.
None of these are equivalent to something simpler with a DEFAULT line
because all have some other libraries, not explicitly mentioned, with
symbol versions that would be omitted were such a line used.  In the
mips case I'm pretty sure it was a mistake not to omit the 2.1 symbols
for libthread_db; for the others I don't know if it was a mistake or
deliberate that some symbols in various libraries have 2.0 or 2.1
versions despite other libraries having a 2.2 minimum.

This concludes the shlib-versions cleanups I'm aware of.

	* sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions: Do not
	specify symbol version for ld.so.  Do not include entry for
	libpthread.
	* sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions: Likewise.
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions6
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions3
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/shlib-versions3
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions3
5 files changed, 12 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 241cdf52ff..3195d51352 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2014-09-26  Joseph Myers  <joseph@codesourcery.com>
 
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions: Do not
+	specify symbol version for ld.so.  Do not include entry for
+	libpthread.
+	* sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/64/shlib-versions: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions: Likewise.
+
 	[BZ #14171]
 	* Makeconfig [$(build-shared) = yes]
 	($(common-objpfx)soversions.mk): Don't handle SONAMEs specified in
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
index 1f5493babc..bc6debaf69 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
@@ -1,9 +1,7 @@
 %ifdef HAVE_ELFV2_ABI
 DEFAULT			GLIBC_2.17
-ld=ld64.so.2		GLIBC_2.17
-libpthread=0		GLIBC_2.17
+ld=ld64.so.2
 %else
 DEFAULT			GLIBC_2.3
-ld=ld64.so.1		GLIBC_2.3
-libpthread=0		GLIBC_2.3
+ld=ld64.so.1
 %endif
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions b/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions
index 9de0608fbc..669a0c9869 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions
@@ -1,3 +1,2 @@
 DEFAULT			GLIBC_2.2
-ld=ld64.so.1		GLIBC_2.2
-libpthread=0		GLIBC_2.2
+ld=ld64.so.1
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions b/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions
index 897b7e0e1b..7f87a8bd17 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions
@@ -1,5 +1,4 @@
 # DEFAULT			Earliest symbol set
 # ---------------		------------------------------
 DEFAULT			GLIBC_2.2.5
-ld=ld-linux-x86-64.so.2	GLIBC_2.2.5
-libpthread=0		GLIBC_2.2.5
+ld=ld-linux-x86-64.so.2
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions b/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions
index df96afab38..0ab2e27224 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions
@@ -1,5 +1,4 @@
 # DEFAULT			Earliest symbol set
 # ---------------		------------------------------
 DEFAULT			GLIBC_2.16
-ld=ld-linux-x32.so.2	GLIBC_2.16
-libpthread=0		GLIBC_2.16
+ld=ld-linux-x32.so.2