Move architecture-specific shlib-versions entries to sysdeps files
Commit Message
This patch eliminates another way in which ex-ports and non-ex-ports
architectures differ, by moving architecture-specific entries from the
top-level shlib-versions file and that in nptl/ to appropriate sysdeps
directories. As with my previous patch
<https://sourceware.org/ml/libc-alpha/2014-06/msg00949.html>, I do not
change the regular expressions used; even where the present
expressions seem more general, I believe they are in fact specific to
the chosen sysdeps directory, because any port that matches the
expression but not the sysdeps directory does not currently exist, and
so would use different symbol versions if added in future (and an
intended goal of these changes is to eliminate the first column in
shlib-versions completely rather than having two different mechanisms
in use for system-specific configuration).
Tested on x86_64 that this does not change the installed shared
libraries. (x86_64 of course does not provide much test coverage for
this patch - what should be architecture-specific contents in
shlib-versions for x86_64 is currently abi-*-ld-soname Makefile
settings, until gnu/lib-names.h is generated more like gnu/stubs.h so
those can move back to shlib-versions - so it would be useful for
architecture maintainers for at least one affected architecture to
confirm it does not change installed shared libraries there.)
2014-09-08 Joseph Myers <joseph@codesourcery.com>
* nptl/shlib-versions: Remove architecture-specific entries.
Moved to files in sysdeps.
* shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions: New
file.
* sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/sh/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions: Likewise.
Comments
Tested on s390/s390x.
The installed shared libraries do not differ when build with this patch.
Bye Stefan
On 09/08/2014 07:48 PM, Joseph S. Myers wrote:
> This patch eliminates another way in which ex-ports and non-ex-ports
> architectures differ, by moving architecture-specific entries from the
> top-level shlib-versions file and that in nptl/ to appropriate sysdeps
> directories. As with my previous patch
> <https://sourceware.org/ml/libc-alpha/2014-06/msg00949.html>, I do not
> change the regular expressions used; even where the present
> expressions seem more general, I believe they are in fact specific to
> the chosen sysdeps directory, because any port that matches the
> expression but not the sysdeps directory does not currently exist, and
> so would use different symbol versions if added in future (and an
> intended goal of these changes is to eliminate the first column in
> shlib-versions completely rather than having two different mechanisms
> in use for system-specific configuration).
>
> Tested on x86_64 that this does not change the installed shared
> libraries. (x86_64 of course does not provide much test coverage for
> this patch - what should be architecture-specific contents in
> shlib-versions for x86_64 is currently abi-*-ld-soname Makefile
> settings, until gnu/lib-names.h is generated more like gnu/stubs.h so
> those can move back to shlib-versions - so it would be useful for
> architecture maintainers for at least one affected architecture to
> confirm it does not change installed shared libraries there.)
>
> 2014-09-08 Joseph Myers <joseph@codesourcery.com>
>
> * nptl/shlib-versions: Remove architecture-specific entries.
> Moved to files in sysdeps.
> * shlib-versions: Likewise.
> * sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions: New
> file.
> * sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Likewise.
> * sysdeps/unix/sysv/linux/sh/shlib-versions: Likewise.
> * sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions: Likewise.
> * sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions: Likewise.
>
> diff --git a/nptl/shlib-versions b/nptl/shlib-versions
> index f6b9b9a..f2cc32d 100644
> --- a/nptl/shlib-versions
> +++ b/nptl/shlib-versions
> @@ -1,6 +1 @@
> -sparc64.*-.*-linux.* libpthread=0 GLIBC_2.2
> -sh.*-.*-linux.* libpthread=0 GLIBC_2.2
> -s390x-.*-linux.* libpthread=0 GLIBC_2.2
> -powerpc64-.*-linux.* libpthread=0 GLIBC_2.3
> -powerpc.*le-.*-linux.* libpthread=0 GLIBC_2.17
> .*-.*-linux.* libpthread=0
> diff --git a/shlib-versions b/shlib-versions
> index 40469bd..860fb94 100644
> --- a/shlib-versions
> +++ b/shlib-versions
> @@ -21,23 +21,16 @@
> # Configuration DEFAULT Earliest symbol set
> # ------------- --------------- ------------------------------
>
> -s390x-.*-linux.* DEFAULT GLIBC_2.2
> -powerpc64-.*-linux.* DEFAULT GLIBC_2.3
> -powerpc.*le-.*-linux.* DEFAULT GLIBC_2.17
> .*-.*-gnu-gnu.* DEFAULT GLIBC_2.2.6
>
> # Configuration Library=version Earliest symbol set (optional)
> # ------------- --------------- ------------------------------
>
> # The interface to -lm depends mostly only on cpu, not on operating system.
> -sparc64.*-.*-linux.* libm=6 GLIBC_2.2
> -sh.*-.*-linux.* libm=6 GLIBC_2.2
> .*-.*-linux.* libm=6
> .*-.*-gnu-gnu.* libm=6
>
> # We provide libc.so.6 for Linux kernel versions 2.0 and later.
> -sh.*-.*-linux.* libc=6 GLIBC_2.2
> -sparc64.*-.*-linux.* libc=6 GLIBC_2.2
> .*-.*-linux.* libc=6
>
> # libmachuser.so.1 corresponds to mach/*.defs as of Utah's UK22 release.
> @@ -49,10 +42,6 @@ sparc64.*-.*-linux.* libc=6 GLIBC_2.2
> # libc.so.0.3 is the first Hurd libc using libio.
> .*-.*-gnu-gnu.* libc=0.3
>
> -# The dynamic loader also requires different names.
> -sparc64.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
> -sparc.*-.*-linux.* ld=ld-linux.so.2
> -sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
> # We use the ELF ABI standard name for the default.
> .*-.*-.* ld=ld.so.1
>
> @@ -90,8 +79,6 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
> .*-.*-.* libcrypt=1
>
> # The gross patch for programs assuming broken locale implementations.
> -sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2
> -sparc64.*-.*-.* libBrokenLocale=1 GLIBC_2.2
> .*-.*-.* libBrokenLocale=1
>
> # The real-time library from POSIX.1b.
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
> new file mode 100644
> index 0000000..f648023
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
> @@ -0,0 +1,4 @@
> +powerpc64-.*-linux.* DEFAULT GLIBC_2.3
> +powerpc.*le-.*-linux.* DEFAULT GLIBC_2.17
> +powerpc64-.*-linux.* libpthread=0 GLIBC_2.3
> +powerpc.*le-.*-linux.* libpthread=0 GLIBC_2.17
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions b/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions
> new file mode 100644
> index 0000000..cab0c0b
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions
> @@ -0,0 +1,2 @@
> +s390x-.*-linux.* DEFAULT GLIBC_2.2
> +s390x-.*-linux.* libpthread=0 GLIBC_2.2
> diff --git a/sysdeps/unix/sysv/linux/sh/shlib-versions b/sysdeps/unix/sysv/linux/sh/shlib-versions
> new file mode 100644
> index 0000000..c376fe8
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/sh/shlib-versions
> @@ -0,0 +1,5 @@
> +sh.*-.*-linux.* libm=6 GLIBC_2.2
> +sh.*-.*-linux.* libc=6 GLIBC_2.2
> +sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
> +sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2
> +sh.*-.*-linux.* libpthread=0 GLIBC_2.2
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions b/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions
> new file mode 100644
> index 0000000..26ca1f4
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions
> @@ -0,0 +1 @@
> +sparc.*-.*-linux.* ld=ld-linux.so.2
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions b/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions
> new file mode 100644
> index 0000000..58d2c24
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions
> @@ -0,0 +1,5 @@
> +sparc64.*-.*-linux.* libm=6 GLIBC_2.2
> +sparc64.*-.*-linux.* libc=6 GLIBC_2.2
> +sparc64.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
> +sparc64.*-.*-.* libBrokenLocale=1 GLIBC_2.2
> +sparc64.*-.*-linux.* libpthread=0 GLIBC_2.2
>
The patch looks ok for powerpc64 and I have checked on powerpc64be, thanks!
On 08-09-2014 14:48, Joseph S. Myers wrote:
> This patch eliminates another way in which ex-ports and non-ex-ports
> architectures differ, by moving architecture-specific entries from the
> top-level shlib-versions file and that in nptl/ to appropriate sysdeps
> directories. As with my previous patch
> <https://sourceware.org/ml/libc-alpha/2014-06/msg00949.html>, I do not
> change the regular expressions used; even where the present
> expressions seem more general, I believe they are in fact specific to
> the chosen sysdeps directory, because any port that matches the
> expression but not the sysdeps directory does not currently exist, and
> so would use different symbol versions if added in future (and an
> intended goal of these changes is to eliminate the first column in
> shlib-versions completely rather than having two different mechanisms
> in use for system-specific configuration).
>
> Tested on x86_64 that this does not change the installed shared
> libraries. (x86_64 of course does not provide much test coverage for
> this patch - what should be architecture-specific contents in
> shlib-versions for x86_64 is currently abi-*-ld-soname Makefile
> settings, until gnu/lib-names.h is generated more like gnu/stubs.h so
> those can move back to shlib-versions - so it would be useful for
> architecture maintainers for at least one affected architecture to
> confirm it does not change installed shared libraries there.)
>
> 2014-09-08 Joseph Myers <joseph@codesourcery.com>
>
> * nptl/shlib-versions: Remove architecture-specific entries.
> Moved to files in sysdeps.
> * shlib-versions: Likewise.
> * sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions: New
> file.
> * sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Likewise.
> * sysdeps/unix/sysv/linux/sh/shlib-versions: Likewise.
> * sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions: Likewise.
> * sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions: Likewise.
>
> diff --git a/nptl/shlib-versions b/nptl/shlib-versions
> index f6b9b9a..f2cc32d 100644
> --- a/nptl/shlib-versions
> +++ b/nptl/shlib-versions
> @@ -1,6 +1 @@
> -sparc64.*-.*-linux.* libpthread=0 GLIBC_2.2
> -sh.*-.*-linux.* libpthread=0 GLIBC_2.2
> -s390x-.*-linux.* libpthread=0 GLIBC_2.2
> -powerpc64-.*-linux.* libpthread=0 GLIBC_2.3
> -powerpc.*le-.*-linux.* libpthread=0 GLIBC_2.17
> .*-.*-linux.* libpthread=0
> diff --git a/shlib-versions b/shlib-versions
> index 40469bd..860fb94 100644
> --- a/shlib-versions
> +++ b/shlib-versions
> @@ -21,23 +21,16 @@
> # Configuration DEFAULT Earliest symbol set
> # ------------- --------------- ------------------------------
>
> -s390x-.*-linux.* DEFAULT GLIBC_2.2
> -powerpc64-.*-linux.* DEFAULT GLIBC_2.3
> -powerpc.*le-.*-linux.* DEFAULT GLIBC_2.17
> .*-.*-gnu-gnu.* DEFAULT GLIBC_2.2.6
>
> # Configuration Library=version Earliest symbol set (optional)
> # ------------- --------------- ------------------------------
>
> # The interface to -lm depends mostly only on cpu, not on operating system.
> -sparc64.*-.*-linux.* libm=6 GLIBC_2.2
> -sh.*-.*-linux.* libm=6 GLIBC_2.2
> .*-.*-linux.* libm=6
> .*-.*-gnu-gnu.* libm=6
>
> # We provide libc.so.6 for Linux kernel versions 2.0 and later.
> -sh.*-.*-linux.* libc=6 GLIBC_2.2
> -sparc64.*-.*-linux.* libc=6 GLIBC_2.2
> .*-.*-linux.* libc=6
>
> # libmachuser.so.1 corresponds to mach/*.defs as of Utah's UK22 release.
> @@ -49,10 +42,6 @@ sparc64.*-.*-linux.* libc=6 GLIBC_2.2
> # libc.so.0.3 is the first Hurd libc using libio.
> .*-.*-gnu-gnu.* libc=0.3
>
> -# The dynamic loader also requires different names.
> -sparc64.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
> -sparc.*-.*-linux.* ld=ld-linux.so.2
> -sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
> # We use the ELF ABI standard name for the default.
> .*-.*-.* ld=ld.so.1
>
> @@ -90,8 +79,6 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
> .*-.*-.* libcrypt=1
>
> # The gross patch for programs assuming broken locale implementations.
> -sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2
> -sparc64.*-.*-.* libBrokenLocale=1 GLIBC_2.2
> .*-.*-.* libBrokenLocale=1
>
> # The real-time library from POSIX.1b.
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
> new file mode 100644
> index 0000000..f648023
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
> @@ -0,0 +1,4 @@
> +powerpc64-.*-linux.* DEFAULT GLIBC_2.3
> +powerpc.*le-.*-linux.* DEFAULT GLIBC_2.17
> +powerpc64-.*-linux.* libpthread=0 GLIBC_2.3
> +powerpc.*le-.*-linux.* libpthread=0 GLIBC_2.17
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions b/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions
> new file mode 100644
> index 0000000..cab0c0b
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions
> @@ -0,0 +1,2 @@
> +s390x-.*-linux.* DEFAULT GLIBC_2.2
> +s390x-.*-linux.* libpthread=0 GLIBC_2.2
> diff --git a/sysdeps/unix/sysv/linux/sh/shlib-versions b/sysdeps/unix/sysv/linux/sh/shlib-versions
> new file mode 100644
> index 0000000..c376fe8
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/sh/shlib-versions
> @@ -0,0 +1,5 @@
> +sh.*-.*-linux.* libm=6 GLIBC_2.2
> +sh.*-.*-linux.* libc=6 GLIBC_2.2
> +sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
> +sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2
> +sh.*-.*-linux.* libpthread=0 GLIBC_2.2
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions b/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions
> new file mode 100644
> index 0000000..26ca1f4
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions
> @@ -0,0 +1 @@
> +sparc.*-.*-linux.* ld=ld-linux.so.2
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions b/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions
> new file mode 100644
> index 0000000..58d2c24
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions
> @@ -0,0 +1,5 @@
> +sparc64.*-.*-linux.* libm=6 GLIBC_2.2
> +sparc64.*-.*-linux.* libc=6 GLIBC_2.2
> +sparc64.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
> +sparc64.*-.*-.* libBrokenLocale=1 GLIBC_2.2
> +sparc64.*-.*-linux.* libpthread=0 GLIBC_2.2
>
Looks fine modulo machine testing
"Joseph S. Myers" <joseph@codesourcery.com> wrote:
> Tested on x86_64 that this does not change the installed shared
> libraries. (x86_64 of course does not provide much test coverage for
> this patch - what should be architecture-specific contents in
> shlib-versions for x86_64 is currently abi-*-ld-soname Makefile
> settings, until gnu/lib-names.h is generated more like gnu/stubs.h so
> those can move back to shlib-versions - so it would be useful for
> architecture maintainers for at least one affected architecture to
> confirm it does not change installed shared libraries there.)
>
> 2014-09-08 Joseph Myers <joseph@codesourcery.com>
>
> * nptl/shlib-versions: Remove architecture-specific entries.
> Moved to files in sysdeps.
> * shlib-versions: Likewise.
> * sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions: New
> file.
> * sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Likewise.
> * sysdeps/unix/sysv/linux/sh/shlib-versions: Likewise.
> * sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions: Likewise.
> * sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions: Likewise.
I've tested it on sh4. Looks fine on SH.
Regards,
kaz
@@ -1,6 +1 @@
-sparc64.*-.*-linux.* libpthread=0 GLIBC_2.2
-sh.*-.*-linux.* libpthread=0 GLIBC_2.2
-s390x-.*-linux.* libpthread=0 GLIBC_2.2
-powerpc64-.*-linux.* libpthread=0 GLIBC_2.3
-powerpc.*le-.*-linux.* libpthread=0 GLIBC_2.17
.*-.*-linux.* libpthread=0
@@ -21,23 +21,16 @@
# Configuration DEFAULT Earliest symbol set
# ------------- --------------- ------------------------------
-s390x-.*-linux.* DEFAULT GLIBC_2.2
-powerpc64-.*-linux.* DEFAULT GLIBC_2.3
-powerpc.*le-.*-linux.* DEFAULT GLIBC_2.17
.*-.*-gnu-gnu.* DEFAULT GLIBC_2.2.6
# Configuration Library=version Earliest symbol set (optional)
# ------------- --------------- ------------------------------
# The interface to -lm depends mostly only on cpu, not on operating system.
-sparc64.*-.*-linux.* libm=6 GLIBC_2.2
-sh.*-.*-linux.* libm=6 GLIBC_2.2
.*-.*-linux.* libm=6
.*-.*-gnu-gnu.* libm=6
# We provide libc.so.6 for Linux kernel versions 2.0 and later.
-sh.*-.*-linux.* libc=6 GLIBC_2.2
-sparc64.*-.*-linux.* libc=6 GLIBC_2.2
.*-.*-linux.* libc=6
# libmachuser.so.1 corresponds to mach/*.defs as of Utah's UK22 release.
@@ -49,10 +42,6 @@ sparc64.*-.*-linux.* libc=6 GLIBC_2.2
# libc.so.0.3 is the first Hurd libc using libio.
.*-.*-gnu-gnu.* libc=0.3
-# The dynamic loader also requires different names.
-sparc64.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
-sparc.*-.*-linux.* ld=ld-linux.so.2
-sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
# We use the ELF ABI standard name for the default.
.*-.*-.* ld=ld.so.1
@@ -90,8 +79,6 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
.*-.*-.* libcrypt=1
# The gross patch for programs assuming broken locale implementations.
-sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2
-sparc64.*-.*-.* libBrokenLocale=1 GLIBC_2.2
.*-.*-.* libBrokenLocale=1
# The real-time library from POSIX.1b.
new file mode 100644
@@ -0,0 +1,4 @@
+powerpc64-.*-linux.* DEFAULT GLIBC_2.3
+powerpc.*le-.*-linux.* DEFAULT GLIBC_2.17
+powerpc64-.*-linux.* libpthread=0 GLIBC_2.3
+powerpc.*le-.*-linux.* libpthread=0 GLIBC_2.17
new file mode 100644
@@ -0,0 +1,2 @@
+s390x-.*-linux.* DEFAULT GLIBC_2.2
+s390x-.*-linux.* libpthread=0 GLIBC_2.2
new file mode 100644
@@ -0,0 +1,5 @@
+sh.*-.*-linux.* libm=6 GLIBC_2.2
+sh.*-.*-linux.* libc=6 GLIBC_2.2
+sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
+sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2
+sh.*-.*-linux.* libpthread=0 GLIBC_2.2
new file mode 100644
@@ -0,0 +1 @@
+sparc.*-.*-linux.* ld=ld-linux.so.2
new file mode 100644
@@ -0,0 +1,5 @@
+sparc64.*-.*-linux.* libm=6 GLIBC_2.2
+sparc64.*-.*-linux.* libc=6 GLIBC_2.2
+sparc64.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
+sparc64.*-.*-.* libBrokenLocale=1 GLIBC_2.2
+sparc64.*-.*-linux.* libpthread=0 GLIBC_2.2