Message ID | Pine.LNX.4.64.1409081745090.6075@digraph.polyomino.org.uk |
---|---|
State | New |
Headers | show |
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
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