diff mbox

Remove shlib-versions entries redundant with DEFAULT entries

Message ID Pine.LNX.4.64.1409162302040.4182@digraph.polyomino.org.uk
State New
Headers show

Commit Message

Joseph Myers Sept. 16, 2014, 11:04 p.m. UTC
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, relative to a tree with
<https://sourceware.org/ml/libc-alpha/2014-09/msg00306.html> (pending
review) applied, 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.

2014-09-16  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.

Comments

Roland McGrath Sept. 17, 2014, 7:35 p.m. UTC | #1
The cases are all so similar that I think the x86_64/64 testing suffices to
consider the whole patch safe.  It looks right to me.
diff mbox

Patch

diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
index 1f5493b..bc6deba 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 9de0608..669a0c9 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 897b7e0..7f87a8b 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 df96afa..0ab2e27 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