This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Move architecture-specific shlib-versions entries to sysdeps files
- From: Adhemerval Zanella <azanella at linux dot vnet dot ibm dot com>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>, libc-alpha at sourceware dot org
- Cc: Stefan Liebler <stli at linux dot vnet dot ibm dot com>, Kaz Kojima <kkojima at rr dot iij4u dot or dot jp>, "David S. Miller" <davem at davemloft dot net>
- Date: Tue, 09 Sep 2014 14:16:17 -0300
- Subject: Re: Move architecture-specific shlib-versions entries to sysdeps files
- Authentication-results: sourceware.org; auth=none
- References: <Pine dot LNX dot 4 dot 64 dot 1409081745090 dot 6075 at digraph dot polyomino dot org dot uk>
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
>