public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* Remove configuration name patterns from shlib-versions
@ 2014-09-11 16:36 Joseph S. Myers
  2014-09-11 22:03 ` Roland McGrath
  0 siblings, 1 reply; 4+ messages in thread
From: Joseph S. Myers @ 2014-09-11 16:36 UTC (permalink / raw)
  To: libc-alpha

This patch, relative to a tree with
<https://sourceware.org/ml/libc-alpha/2014-09/msg00114.html> (pending
sparc testing),
<https://sourceware.org/ml/libc-alpha/2014-09/msg00129.html> and
<https://sourceware.org/ml/libc-alpha/2014-09/msg00151.html> (pending
powerpc64 testing) applied, removes the first column (patterns
matching configuration names) from shlib-versions, leaving
shlib-versions entry selection based purely on sysdeps directories.

An implication of this removal is that the default for any non-Linux
ports using NPTL will be the same SONAMEs for NPTL libraries as for
Linux (as those defaults, previously limited to .*-.*-linux.*, are
left in nptl/shlib-versions and nptl_db/shlib-versions).

Special host_os handling in configure.ac that was purely for
shlib-versions is removed.  (The host_os setting is still used for
libc-abis - see
<https://sourceware.org/ml/libc-alpha/2014-01/msg00375.html> regarding
that - but no entries there are affected by this change.)

Tested on x86_64 and x86 that the installed shared libraries are
unchanged by this patch.

2014-09-11  Joseph Myers  <joseph@codesourcery.com>

	* scripts/soversions.awk: Do not handle configuration names.
	* Makeconfig ($(common-objpfx)soversions.i): Do not pass cpu,
	vendor and os variables to soversions.awk.
	* configure.ac: Do not modify gnu-* host_os.
	* configure: Regenerated
	* shlib-versions: Remove first column with configuration names.
	* libidn/shlib-versions: Likewise.
	* nptl/shlib-versions: Likewise.
	* nptl_db/shlib-versions: Likewise.
	* sysdeps/hppa/shlib-versions: Likewise.
	* sysdeps/m68k/shlib-versions: Likewise.
	* sysdeps/mach/hurd/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/alpha/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/arm/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/hppa/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/ia64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/mips/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/sh/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/tile/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions: Likewise.

diff --git a/Makeconfig b/Makeconfig
index 0f8069b..0780788 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -964,9 +964,6 @@ soversions-default-setname = $(patsubst %, %,\
 $(common-objpfx)soversions.i: $(..)scripts/soversions.awk \
 			      $(common-objpfx)shlib-versions.v
 	$(AWK) -v default_setname='$(soversions-default-setname)' \
-	       -v cpu='$(config-machine)' \
-	       -v vendor='$(config-vendor)' \
-	       -v os='$(config-os)' \
 	       -f $^ > $@T
 	mv -f $@T $@
 $(common-objpfx)soversions.mk: $(common-objpfx)soversions.i $(..)Makeconfig
diff --git a/configure b/configure
index 86ba307..ff5c730 100755
--- a/configure
+++ b/configure
@@ -3728,19 +3728,6 @@ if test "$build_pt_chown" = yes; then
 
 fi
 
-# The way shlib-versions is used to generate soversions.mk uses a
-# fairly simplistic model for name recognition that can't distinguish
-# i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
-# of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
-# tell.  This doesn't get used much beyond that, so it's fairly safe.
-case "$host_os" in
-linux*)
-  ;;
-gnu*)
-  host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
-  ;;
-esac
-
 # We keep the original values in `$config_*' and never modify them, so we
 # can write them unchanged into config.make.  Everything else uses
 # $machine, $vendor, and $os, and changes them whenever convenient.
diff --git a/configure.ac b/configure.ac
index 2553399..794ffc2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -365,19 +365,6 @@ if test "$build_pt_chown" = yes; then
   AC_DEFINE(HAVE_PT_CHOWN)
 fi
 
-# The way shlib-versions is used to generate soversions.mk uses a
-# fairly simplistic model for name recognition that can't distinguish
-# i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
-# of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
-# tell.  This doesn't get used much beyond that, so it's fairly safe.
-case "$host_os" in
-linux*)
-  ;;
-gnu*)
-  host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
-  ;;
-esac
-
 # We keep the original values in `$config_*' and never modify them, so we
 # can write them unchanged into config.make.  Everything else uses
 # $machine, $vendor, and $os, and changes them whenever convenient.
diff --git a/libidn/shlib-versions b/libidn/shlib-versions
index 9b27e51..0aa1a59 100644
--- a/libidn/shlib-versions
+++ b/libidn/shlib-versions
@@ -1 +1 @@
-.*-.*-.*	libcidn=1
+libcidn=1
diff --git a/nptl/shlib-versions b/nptl/shlib-versions
index f2cc32d..e08931a 100644
--- a/nptl/shlib-versions
+++ b/nptl/shlib-versions
@@ -1 +1 @@
-.*-.*-linux.*		libpthread=0
+libpthread=0
diff --git a/nptl_db/shlib-versions b/nptl_db/shlib-versions
index 592f7fa..cf5a9e9 100644
--- a/nptl_db/shlib-versions
+++ b/nptl_db/shlib-versions
@@ -1,2 +1,2 @@
 # The thread debug library
-.*-.*-linux.*		libthread_db=1
+libthread_db=1
diff --git a/scripts/soversions.awk b/scripts/soversions.awk
index adba155..dbc9059 100644
--- a/scripts/soversions.awk
+++ b/scripts/soversions.awk
@@ -1,59 +1,41 @@
 # awk script for shlib-versions.v -> soversions.i; see Makeconfig.
 
-BEGIN {
-  config = cpu "-" vendor "-" os;
-  configs[config] = "DEFAULT";
-}
-
-{ thiscf = $1 }
-
 # Obey the first matching DEFAULT line.
-$2 == "DEFAULT" {
-  $1 = $2 = "";
-  default_set[++ndefault_set] = thiscf "\n" $0;
+$1 == "DEFAULT" {
+  $1 = "";
+  default_set[++ndefault_set] = $0;
   next
 }
 
 # Collect all lib lines before emitting anything, so DEFAULT
 # can be interspersed.
 {
-  lib = number = $2;
+  lib = number = $1;
   sub(/=.*$/, "", lib);
   sub(/^.*=/, "", number);
-  if ((thiscf FS lib) in numbers) next;
-  numbers[thiscf FS lib] = number;
-  order[thiscf FS lib] = ++order_n;
-  if (NF > 2) {
-    $1 = $2 = "";
-    versions[thiscf FS lib] = $0
+  if (lib in numbers) next;
+  numbers[lib] = number;
+  order[lib] = ++order_n;
+  if (NF > 1) {
+    $1 = "";
+    versions[lib] = $0
   }
 }
 
 END {
-  for (elt in numbers) {
-    split(elt, x);
-    cf = x[1];
-    lib = x[2];
-    for (c in configs)
-      if (c ~ cf) {
-	if (elt in versions)
-	  set = versions[elt];
-	else {
-	  set = (c == config) ? default_setname : "";
-	  for (i = 1; i <= ndefault_set; ++i) {
-	    split(default_set[i], x, "\n");
-	    if (c ~ x[1]) {
-	      set = x[2];
-	      break;
-	    }
-	  }
-	}
-	line = set ? (lib FS numbers[elt] FS set) : (lib FS numbers[elt]);
-	if (!((c FS lib) in lineorder) || order[elt] < lineorder[c FS lib]) {
-	  lineorder[c FS lib] = order[elt];
-	  lines[c FS lib] = configs[c] FS line;
-	}
-      }
+  for (lib in numbers) {
+    if (lib in versions)
+      set = versions[lib];
+    else {
+      set = default_setname;
+      if (ndefault_set >= 1)
+	set = default_set[1];
+    }
+    line = set ? (lib FS numbers[lib] FS set) : (lib FS numbers[lib]);
+    if (!(lib in lineorder) || order[lib] < lineorder[lib]) {
+      lineorder[lib] = order[lib];
+      lines[lib] = "DEFAULT" FS line;
+    }
   }
   for (c in lines) {
     print lines[c]
diff --git a/shlib-versions b/shlib-versions
index d34dea8..2b16cf1 100644
--- a/shlib-versions
+++ b/shlib-versions
@@ -1,72 +1,72 @@
 # This file (and shlib-versions files in sysdeps directories) defines
 # the shared library version numbers we will install.
 
-# The following lines list filename patterns matching canonical configurations,
-# and the associated versions to use for various libraries.  The entire
-# list is processed, with earlier entries taking precedence over later
-# entries.  So loose patterns at the end of the list can give defaults.
+# The following lines list the associated versions to use for various
+# libraries.  The entire list is processed, with earlier entries
+# taking precedence over later entries.  So loose patterns at the end
+# of the list can give defaults.
 
 # This file can use cpp-style conditionals starting with % instead of #
 # to test the symbols defined in config.h by configure.
 
-# In the optional third column, there can one or more symbol set names
+# In the optional second column, there can one or more symbol set names
 # listed, which must be in ascending version order reading left to right
 # and must appear in this same order in the Versions.def file.  Each listed
 # version subsumes all prior versions back to the previous listed version.
 #
-# An entry with DEFAULT in the second column gives a default third column
-# to apply on matching configurations when the matching entry for a particular
-# library has no third column.  The defaults must precede the entries they
-# apply to.
+# An entry with DEFAULT in the first column gives a default second
+# column to apply when the matching entry for a particular library has
+# no second column.  The defaults must precede the entries they apply
+# to.
 
-# Configuration		Library=version		Earliest symbol set (optional)
-# -------------		---------------		------------------------------
+# Library=version		Earliest symbol set (optional)
+# ---------------		------------------------------
 
 # We use the ELF ABI standard name for the default.
-.*-.*-.*		ld=ld.so.1
+ld=ld.so.1
 
 # The -ldl interface (see <dlfcn.h>) is the same on all platforms.
-.*-.*-.*		libdl=2
+libdl=2
 
 # So far the -lutil interface is the same on all platforms, except for the
 # `struct utmp' format, which depends on libc.
-.*-.*-.*		libutil=1
+libutil=1
 
 # Version number 2 is used on other systems for the BIND 4.9.5 resolver
 # interface.
-.*-.*-.*		libresolv=2
+libresolv=2
 
 # Interface revision of nss_* modules.  This must match NSS_SHLIB_REVISION
 # in nss/nsswitch.h, which determines the library names used for service
 # names given in /etc/nsswitch.conf.
-.*-.*-.*		libnss_files=2
-.*-.*-.*		libnss_dns=2
-.*-.*-.*		libnss_compat=2
-.*-.*-.*		libnss_nis=2
-.*-.*-.*		libnss_nisplus=2
-.*-.*-.*		libnss_ldap=2
-.*-.*-.*		libnss_hesiod=2
-.*-.*-.*		libnss_db=2
+libnss_files=2
+libnss_dns=2
+libnss_compat=2
+libnss_nis=2
+libnss_nisplus=2
+libnss_ldap=2
+libnss_hesiod=2
+libnss_db=2
 
 # Tests for NSS.  They must have the same NSS_SHLIB_REVISION number as
 # the rest.
-.*-.*-.*		libnss_test1=2
+libnss_test1=2
 
 # Version for libnsl with YP and NIS+ functions.
-.*-.*-.*		libnsl=1
+libnsl=1
 
 # This defines the shared library version numbers we will install.
-.*-.*-.*		libcrypt=1
+libcrypt=1
 
 # The gross patch for programs assuming broken locale implementations.
-.*-.*-.*		libBrokenLocale=1
+libBrokenLocale=1
 
 # The real-time library from POSIX.1b.
-.*-.*-.*		librt=1
+librt=1
 
 # The asynchronous name lookup library.
-.*-.*-.*		libanl=1
+libanl=1
 
 # This defines the libgcc soname version this glibc is to load for
 # asynchronous cancellation to work correctly.
-.*-.*-.*		libgcc_s=1
+libgcc_s=1
diff --git a/sysdeps/hppa/shlib-versions b/sysdeps/hppa/shlib-versions
index ae3a3f1..34e9347 100644
--- a/sysdeps/hppa/shlib-versions
+++ b/sysdeps/hppa/shlib-versions
@@ -1 +1 @@
-hppa.*-.*-.*		libgcc_s=4
+libgcc_s=4
diff --git a/sysdeps/m68k/shlib-versions b/sysdeps/m68k/shlib-versions
index b65b00b..c8db251 100644
--- a/sysdeps/m68k/shlib-versions
+++ b/sysdeps/m68k/shlib-versions
@@ -1 +1 @@
-m68k-.*-linux.*		libgcc_s=2
+libgcc_s=2
diff --git a/sysdeps/mach/hurd/shlib-versions b/sysdeps/mach/hurd/shlib-versions
index f79c633..edbc301 100644
--- a/sysdeps/mach/hurd/shlib-versions
+++ b/sysdeps/mach/hurd/shlib-versions
@@ -1,12 +1,12 @@
-.*-.*-gnu-gnu.*		DEFAULT			GLIBC_2.2.6
+DEFAULT			GLIBC_2.2.6
 
-.*-.*-gnu-gnu.*		libm=6
+libm=6
 
 # libmachuser.so.1 corresponds to mach/*.defs as of Utah's UK22 release.
-.*-.*-gnu-gnu.*		libmachuser=1
+libmachuser=1
 
 # libhurduser.so.0.3 corresponds to hurd/*.defs as of 11 June 2002.
-.*-.*-gnu-gnu.*		libhurduser=0.3
+libhurduser=0.3
 
 # libc.so.0.3 is the first Hurd libc using libio.
-.*-.*-gnu-gnu.*		libc=0.3
+libc=0.3
diff --git a/sysdeps/unix/sysv/linux/aarch64/shlib-versions b/sysdeps/unix/sysv/linux/aarch64/shlib-versions
index 67f1911..e1768a7 100644
--- a/sysdeps/unix/sysv/linux/aarch64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/aarch64/shlib-versions
@@ -1,7 +1,7 @@
-aarch64.*-.*-linux.*	DEFAULT			GLIBC_2.17
+DEFAULT			GLIBC_2.17
 
 %ifdef HAVE_AARCH64_BE
-aarch64.*-.*-linux.*	ld=ld-linux-aarch64_be.so.1
+ld=ld-linux-aarch64_be.so.1
 %else
-aarch64.*-.*-linux.*	ld=ld-linux-aarch64.so.1
+ld=ld-linux-aarch64.so.1
 %endif
diff --git a/sysdeps/unix/sysv/linux/alpha/shlib-versions b/sysdeps/unix/sysv/linux/alpha/shlib-versions
index cd4b9af..cd913c2 100644
--- a/sysdeps/unix/sysv/linux/alpha/shlib-versions
+++ b/sysdeps/unix/sysv/linux/alpha/shlib-versions
@@ -1,14 +1,14 @@
-alpha.*-.*-linux.*	libm=6.1
-alpha.*-.*-linux.*	libc=6.1
+libm=6.1
+libc=6.1
 
-alpha.*-.*-linux.*	ld=ld-linux.so.2
+ld=ld-linux.so.2
 
-alpha.*-.*-linux.*	libdl=2.1
+libdl=2.1
 
-alpha.*-.*-linux.*	libutil=1.1
+libutil=1.1
 
-alpha.*-.*-linux.*	libresolv=2.1
+libresolv=2.1
 
-alpha.*-.*-linux.*	libnsl=1.1
-alpha.*-.*-linux.*	libcrypt=1.1
-alpha.*-.*-linux.*	libBrokenLocale=1.1
+libnsl=1.1
+libcrypt=1.1
+libBrokenLocale=1.1
diff --git a/sysdeps/unix/sysv/linux/arm/shlib-versions b/sysdeps/unix/sysv/linux/arm/shlib-versions
index 1ac597a..9b16953 100644
--- a/sysdeps/unix/sysv/linux/arm/shlib-versions
+++ b/sysdeps/unix/sysv/linux/arm/shlib-versions
@@ -1,9 +1,9 @@
-arm.*-.*-linux-gnueabi.*	DEFAULT			GLIBC_2.4
+DEFAULT			GLIBC_2.4
 
 %ifdef HAVE_ARM_PCS_VFP
 # The EABI-derived hard-float ABI uses a new dynamic linker.
-arm.*-.*-linux-gnueabi.*       ld=ld-linux-armhf.so.3
+ld=ld-linux-armhf.so.3
 %else
 # The EABI-derived soft-float ABI continues to use ld-linux.so.3.
-arm.*-.*-linux-gnueabi.*       ld=ld-linux.so.3
+ld=ld-linux.so.3
 %endif
diff --git a/sysdeps/unix/sysv/linux/hppa/shlib-versions b/sysdeps/unix/sysv/linux/hppa/shlib-versions
index ee46e4a..3a2d496 100644
--- a/sysdeps/unix/sysv/linux/hppa/shlib-versions
+++ b/sysdeps/unix/sysv/linux/hppa/shlib-versions
@@ -1,9 +1,9 @@
-hppa.*-.*-.*		libm=6			GLIBC_2.2
+libm=6			GLIBC_2.2
 
-hppa.*-.*-.*		libc=6			GLIBC_2.2
+libc=6			GLIBC_2.2
 
-hppa.*-.*-.*		ld=ld.so.1		GLIBC_2.2
+ld=ld.so.1		GLIBC_2.2
 
-hppa-.*-.*		libBrokenLocale=1	GLIBC_2.2
+libBrokenLocale=1	GLIBC_2.2
 
-hppa.*-.*-linux.*	libpthread=0		GLIBC_2.2
+libpthread=0		GLIBC_2.2
diff --git a/sysdeps/unix/sysv/linux/ia64/shlib-versions b/sysdeps/unix/sysv/linux/ia64/shlib-versions
index c8e1482..37374c0 100644
--- a/sysdeps/unix/sysv/linux/ia64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/ia64/shlib-versions
@@ -1,8 +1,8 @@
-ia64-.*-linux.*		libc=6.1		GLIBC_2.2
-ia64-.*-linux.*		libm=6.1		GLIBC_2.2
+libc=6.1		GLIBC_2.2
+libm=6.1		GLIBC_2.2
 
-ia64-.*-linux.*		ld=ld-linux-ia64.so.2	GLIBC_2.2
+ld=ld-linux-ia64.so.2	GLIBC_2.2
 
-ia64-.*-.*		libBrokenLocale=1	GLIBC_2.2
+libBrokenLocale=1	GLIBC_2.2
 
-ia64.*-.*-linux.*	libpthread=0		GLIBC_2.2
+libpthread=0		GLIBC_2.2
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions b/sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions
index f4c68b2..4309e4a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions
@@ -1 +1 @@
-m68k-.*-linux.*         DEFAULT                 GLIBC_2.4
+DEFAULT                 GLIBC_2.4
diff --git a/sysdeps/unix/sysv/linux/microblaze/shlib-versions b/sysdeps/unix/sysv/linux/microblaze/shlib-versions
index 6ec43db..eaf37a1 100644
--- a/sysdeps/unix/sysv/linux/microblaze/shlib-versions
+++ b/sysdeps/unix/sysv/linux/microblaze/shlib-versions
@@ -1 +1 @@
-microblaze.*-.*-linux.*	DEFAULT			GLIBC_2.18
+DEFAULT			GLIBC_2.18
diff --git a/sysdeps/unix/sysv/linux/mips/shlib-versions b/sysdeps/unix/sysv/linux/mips/shlib-versions
index d1414ed..c5bd7db 100644
--- a/sysdeps/unix/sysv/linux/mips/shlib-versions
+++ b/sysdeps/unix/sysv/linux/mips/shlib-versions
@@ -1,27 +1,27 @@
-mips.*-.*-linux.*	libm=6			GLIBC_2.0 GLIBC_2.2
+libm=6			GLIBC_2.0 GLIBC_2.2
 
 # Working mips versions were never released between 2.0 and 2.2.
-mips.*-.*-linux.*	libc=6			GLIBC_2.0 GLIBC_2.2
+libc=6			GLIBC_2.0 GLIBC_2.2
 
 %ifdef HAVE_MIPS_NAN2008
-mips.*-.*-linux.*	ld=ld-linux-mipsn8.so.1	GLIBC_2.0 GLIBC_2.2
+ld=ld-linux-mipsn8.so.1	GLIBC_2.0 GLIBC_2.2
 %else
-mips.*-.*-linux.*	ld=ld.so.1		GLIBC_2.0 GLIBC_2.2
+ld=ld.so.1		GLIBC_2.0 GLIBC_2.2
 %endif
-mips.*-.*-linux.*	libdl=2			GLIBC_2.0 GLIBC_2.2
+libdl=2			GLIBC_2.0 GLIBC_2.2
 
-mips.*-.*-linux.*	libresolv=2		GLIBC_2.0 GLIBC_2.2
+libresolv=2		GLIBC_2.0 GLIBC_2.2
 
-mips.*-.*-linux.*	libnss_files=2		GLIBC_2.0 GLIBC_2.2
-mips.*-.*-linux.*	libnss_dns=2		GLIBC_2.0 GLIBC_2.2
-mips.*-.*-linux.*	libnss_compat=2		GLIBC_2.0 GLIBC_2.2
-mips.*-.*-linux.*	libnss_nis=2		GLIBC_2.0 GLIBC_2.2
-mips.*-.*-linux.*	libnss_nisplus=2	GLIBC_2.0 GLIBC_2.2
-mips.*-.*-linux.*	libnss_ldap=2		GLIBC_2.0 GLIBC_2.2
-mips.*-.*-linux.*	libnss_hesiod=2		GLIBC_2.0 GLIBC_2.2
+libnss_files=2		GLIBC_2.0 GLIBC_2.2
+libnss_dns=2		GLIBC_2.0 GLIBC_2.2
+libnss_compat=2		GLIBC_2.0 GLIBC_2.2
+libnss_nis=2		GLIBC_2.0 GLIBC_2.2
+libnss_nisplus=2	GLIBC_2.0 GLIBC_2.2
+libnss_ldap=2		GLIBC_2.0 GLIBC_2.2
+libnss_hesiod=2		GLIBC_2.0 GLIBC_2.2
 
-mips.*-.*-linux.*	libnsl=1		GLIBC_2.0 GLIBC_2.2
+libnsl=1		GLIBC_2.0 GLIBC_2.2
 
-mips.*-.*-linux.*	librt=1			GLIBC_2.0 GLIBC_2.2
+librt=1			GLIBC_2.0 GLIBC_2.2
 
-mips.*-.*-linux.*	libpthread=0		GLIBC_2.0 GLIBC_2.2
+libpthread=0		GLIBC_2.0 GLIBC_2.2
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
index 1febda4..0b83af1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
@@ -1,7 +1,7 @@
 %ifdef HAVE_ELFV2_ABI
-powerpc.*le-.*-linux.*	DEFAULT			GLIBC_2.17
-powerpc.*le-.*-linux.*	libpthread=0		GLIBC_2.17
+DEFAULT			GLIBC_2.17
+libpthread=0		GLIBC_2.17
 %else
-powerpc64-.*-linux.*	DEFAULT			GLIBC_2.3
-powerpc64-.*-linux.*	libpthread=0		GLIBC_2.3
+DEFAULT			GLIBC_2.3
+libpthread=0		GLIBC_2.3
 %endif
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions b/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions
index cab0c0b..31edcfc 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions
@@ -1,2 +1,2 @@
-s390x-.*-linux.*        DEFAULT			GLIBC_2.2
-s390x-.*-linux.*	libpthread=0		GLIBC_2.2
+DEFAULT			GLIBC_2.2
+libpthread=0		GLIBC_2.2
diff --git a/sysdeps/unix/sysv/linux/sh/shlib-versions b/sysdeps/unix/sysv/linux/sh/shlib-versions
index c376fe8..9333bbd 100644
--- a/sysdeps/unix/sysv/linux/sh/shlib-versions
+++ b/sysdeps/unix/sysv/linux/sh/shlib-versions
@@ -1,5 +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
+libm=6			GLIBC_2.2
+libc=6			GLIBC_2.2
+ld=ld-linux.so.2	GLIBC_2.2
+libBrokenLocale=1	GLIBC_2.2
+libpthread=0		GLIBC_2.2
diff --git a/sysdeps/unix/sysv/linux/shlib-versions b/sysdeps/unix/sysv/linux/shlib-versions
index 2c06a8e..9160557 100644
--- a/sysdeps/unix/sysv/linux/shlib-versions
+++ b/sysdeps/unix/sysv/linux/shlib-versions
@@ -1,2 +1,2 @@
-.*-.*-linux.*		libm=6
-.*-.*-linux.*		libc=6
+libm=6
+libc=6
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions b/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions
index 26ca1f4..ca5d15b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions
@@ -1 +1 @@
-sparc.*-.*-linux.*	ld=ld-linux.so.2
+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
index 58d2c24..9333bbd 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions
@@ -1,5 +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
+libm=6			GLIBC_2.2
+libc=6			GLIBC_2.2
+ld=ld-linux.so.2	GLIBC_2.2
+libBrokenLocale=1	GLIBC_2.2
+libpthread=0		GLIBC_2.2
diff --git a/sysdeps/unix/sysv/linux/tile/shlib-versions b/sysdeps/unix/sysv/linux/tile/shlib-versions
index f50868f..b4360d3 100644
--- a/sysdeps/unix/sysv/linux/tile/shlib-versions
+++ b/sysdeps/unix/sysv/linux/tile/shlib-versions
@@ -1,2 +1,2 @@
 # glibc 2.12 was released to customers; 2.15 was the first community version.
-tile.*-.*-linux-gnu	DEFAULT		GLIBC_2.12 GLIBC_2.15
+DEFAULT		GLIBC_2.12 GLIBC_2.15
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions b/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions
index 90ea1b7..3d28722 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions
@@ -1,4 +1,4 @@
-# Configuration		DEFAULT			Earliest symbol set
-# -------------		---------------		------------------------------
-x86_64-.*-linux.*	DEFAULT			GLIBC_2.2.5
-x86_64-.*-linux.*	libpthread=0		GLIBC_2.2.5
+# DEFAULT			Earliest symbol set
+# ---------------		------------------------------
+DEFAULT			GLIBC_2.2.5
+libpthread=0		GLIBC_2.2.5
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions b/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions
index 8dd73e4..e4db8b9 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions
@@ -1,4 +1,4 @@
-# Configuration		DEFAULT			Earliest symbol set
-# -------------		---------------		------------------------------
-x86_64-.*-linux.*	DEFAULT			GLIBC_2.16
-x86_64-.*-linux.*	libpthread=0		GLIBC_2.16
+# DEFAULT			Earliest symbol set
+# ---------------		------------------------------
+DEFAULT			GLIBC_2.16
+libpthread=0		GLIBC_2.16

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Remove configuration name patterns from shlib-versions
  2014-09-11 16:36 Remove configuration name patterns from shlib-versions Joseph S. Myers
@ 2014-09-11 22:03 ` Roland McGrath
  2014-09-11 22:22   ` Joseph S. Myers
  0 siblings, 1 reply; 4+ messages in thread
From: Roland McGrath @ 2014-09-11 22:03 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: libc-alpha

I've forgotten about whatever change made this not break the multi-variant
(e.g. biarch) cases for generating gnu/lib-names.h.  It appears that now
operates by assuming that most SONAMEs will be the same for all the ABI
variants, and requires that abi-variant-libfoo-soname variables be set in
sysdeps/.../Makefile for the ones that vary.  I'm not particularly happy
with that.  There should only be one flavor of file where SONAME strings
appear in the sources.

I think we need a more thoroughgoing overhaul of the shlib-versions
picture.  I believe we already have consensus that all such things should
be organized purely via the sysdeps/ hierarchy rather than with any config
tuple matching.  So this change could well be an appropriate incremental
step along the path to the clean overhaul.  But I'd prefer to see a design
for that end state before we just whittle away with incremental changes
like this one.  As is, it just feels to me like it's making something
baroque slightly differently baroque (and perhaps moreso), and not clearly
easier to grok than the status quo that (some) people already grok.

As to the tunnel-vision review of the patch per se, the only problem I see
is that the comments in shlib-versions still describe things in ways that
don't really make sense any more, e.g. "loose patterns at the end of the
list can give defaults."


Thanks,
Roland

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Remove configuration name patterns from shlib-versions
  2014-09-11 22:03 ` Roland McGrath
@ 2014-09-11 22:22   ` Joseph S. Myers
  2014-09-11 23:22     ` Roland McGrath
  0 siblings, 1 reply; 4+ messages in thread
From: Joseph S. Myers @ 2014-09-11 22:22 UTC (permalink / raw)
  To: Roland McGrath; +Cc: libc-alpha

On Thu, 11 Sep 2014, Roland McGrath wrote:

> I've forgotten about whatever change made this not break the multi-variant
> (e.g. biarch) cases for generating gnu/lib-names.h.  It appears that now
> operates by assuming that most SONAMEs will be the same for all the ABI
> variants, and requires that abi-variant-libfoo-soname variables be set in
> sysdeps/.../Makefile for the ones that vary.  I'm not particularly happy
> with that.  There should only be one flavor of file where SONAME strings
> appear in the sources.

Dealing with that is the next point on the list at 
<https://sourceware.org/ml/libc-alpha/2014-06/msg00949.html>.

> I think we need a more thoroughgoing overhaul of the shlib-versions
> picture.  I believe we already have consensus that all such things should
> be organized purely via the sysdeps/ hierarchy rather than with any config
> tuple matching.  So this change could well be an appropriate incremental
> step along the path to the clean overhaul.  But I'd prefer to see a design
> for that end state before we just whittle away with incremental changes
> like this one.  As is, it just feels to me like it's making something
> baroque slightly differently baroque (and perhaps moreso), and not clearly
> easier to grok than the status quo that (some) people already grok.

The only other things I know of are avoiding repeating the "Earliest 
symbol set" information many times in some cases, and removing the 
bitrotten --enable-oldest-abi support as previously discussed.

> As to the tunnel-vision review of the patch per se, the only problem I see
> is that the comments in shlib-versions still describe things in ways that
> don't really make sense any more, e.g. "loose patterns at the end of the
> list can give defaults."

This patch version updates that comment (so instead it describes the 
ordering of the various shlib-versions files, which is the key ordering 
information given the files coming from sysdeps).

2014-09-11  Joseph Myers  <joseph@codesourcery.com>

	* scripts/soversions.awk: Do not handle configuration names.
	* Makeconfig ($(common-objpfx)soversions.i): Do not pass cpu,
	vendor and os variables to soversions.awk.
	* configure.ac: Do not modify gnu-* host_os.
	* configure: Regenerated
	* shlib-versions: Remove first column with configuration names.
	* libidn/shlib-versions: Likewise.
	* nptl/shlib-versions: Likewise.
	* nptl_db/shlib-versions: Likewise.
	* sysdeps/hppa/shlib-versions: Likewise.
	* sysdeps/m68k/shlib-versions: Likewise.
	* sysdeps/mach/hurd/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/alpha/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/arm/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/hppa/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/ia64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/mips/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/sh/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/tile/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/shlib-versions: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions: Likewise.

diff --git a/Makeconfig b/Makeconfig
index 0f8069b..0780788 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -964,9 +964,6 @@ soversions-default-setname = $(patsubst %, %,\
 $(common-objpfx)soversions.i: $(..)scripts/soversions.awk \
 			      $(common-objpfx)shlib-versions.v
 	$(AWK) -v default_setname='$(soversions-default-setname)' \
-	       -v cpu='$(config-machine)' \
-	       -v vendor='$(config-vendor)' \
-	       -v os='$(config-os)' \
 	       -f $^ > $@T
 	mv -f $@T $@
 $(common-objpfx)soversions.mk: $(common-objpfx)soversions.i $(..)Makeconfig
diff --git a/configure b/configure
index 86ba307..ff5c730 100755
--- a/configure
+++ b/configure
@@ -3728,19 +3728,6 @@ if test "$build_pt_chown" = yes; then
 
 fi
 
-# The way shlib-versions is used to generate soversions.mk uses a
-# fairly simplistic model for name recognition that can't distinguish
-# i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
-# of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
-# tell.  This doesn't get used much beyond that, so it's fairly safe.
-case "$host_os" in
-linux*)
-  ;;
-gnu*)
-  host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
-  ;;
-esac
-
 # We keep the original values in `$config_*' and never modify them, so we
 # can write them unchanged into config.make.  Everything else uses
 # $machine, $vendor, and $os, and changes them whenever convenient.
diff --git a/configure.ac b/configure.ac
index 2553399..794ffc2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -365,19 +365,6 @@ if test "$build_pt_chown" = yes; then
   AC_DEFINE(HAVE_PT_CHOWN)
 fi
 
-# The way shlib-versions is used to generate soversions.mk uses a
-# fairly simplistic model for name recognition that can't distinguish
-# i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
-# of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
-# tell.  This doesn't get used much beyond that, so it's fairly safe.
-case "$host_os" in
-linux*)
-  ;;
-gnu*)
-  host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
-  ;;
-esac
-
 # We keep the original values in `$config_*' and never modify them, so we
 # can write them unchanged into config.make.  Everything else uses
 # $machine, $vendor, and $os, and changes them whenever convenient.
diff --git a/libidn/shlib-versions b/libidn/shlib-versions
index 9b27e51..0aa1a59 100644
--- a/libidn/shlib-versions
+++ b/libidn/shlib-versions
@@ -1 +1 @@
-.*-.*-.*	libcidn=1
+libcidn=1
diff --git a/nptl/shlib-versions b/nptl/shlib-versions
index f2cc32d..e08931a 100644
--- a/nptl/shlib-versions
+++ b/nptl/shlib-versions
@@ -1 +1 @@
-.*-.*-linux.*		libpthread=0
+libpthread=0
diff --git a/nptl_db/shlib-versions b/nptl_db/shlib-versions
index 592f7fa..cf5a9e9 100644
--- a/nptl_db/shlib-versions
+++ b/nptl_db/shlib-versions
@@ -1,2 +1,2 @@
 # The thread debug library
-.*-.*-linux.*		libthread_db=1
+libthread_db=1
diff --git a/scripts/soversions.awk b/scripts/soversions.awk
index adba155..dbc9059 100644
--- a/scripts/soversions.awk
+++ b/scripts/soversions.awk
@@ -1,59 +1,41 @@
 # awk script for shlib-versions.v -> soversions.i; see Makeconfig.
 
-BEGIN {
-  config = cpu "-" vendor "-" os;
-  configs[config] = "DEFAULT";
-}
-
-{ thiscf = $1 }
-
 # Obey the first matching DEFAULT line.
-$2 == "DEFAULT" {
-  $1 = $2 = "";
-  default_set[++ndefault_set] = thiscf "\n" $0;
+$1 == "DEFAULT" {
+  $1 = "";
+  default_set[++ndefault_set] = $0;
   next
 }
 
 # Collect all lib lines before emitting anything, so DEFAULT
 # can be interspersed.
 {
-  lib = number = $2;
+  lib = number = $1;
   sub(/=.*$/, "", lib);
   sub(/^.*=/, "", number);
-  if ((thiscf FS lib) in numbers) next;
-  numbers[thiscf FS lib] = number;
-  order[thiscf FS lib] = ++order_n;
-  if (NF > 2) {
-    $1 = $2 = "";
-    versions[thiscf FS lib] = $0
+  if (lib in numbers) next;
+  numbers[lib] = number;
+  order[lib] = ++order_n;
+  if (NF > 1) {
+    $1 = "";
+    versions[lib] = $0
   }
 }
 
 END {
-  for (elt in numbers) {
-    split(elt, x);
-    cf = x[1];
-    lib = x[2];
-    for (c in configs)
-      if (c ~ cf) {
-	if (elt in versions)
-	  set = versions[elt];
-	else {
-	  set = (c == config) ? default_setname : "";
-	  for (i = 1; i <= ndefault_set; ++i) {
-	    split(default_set[i], x, "\n");
-	    if (c ~ x[1]) {
-	      set = x[2];
-	      break;
-	    }
-	  }
-	}
-	line = set ? (lib FS numbers[elt] FS set) : (lib FS numbers[elt]);
-	if (!((c FS lib) in lineorder) || order[elt] < lineorder[c FS lib]) {
-	  lineorder[c FS lib] = order[elt];
-	  lines[c FS lib] = configs[c] FS line;
-	}
-      }
+  for (lib in numbers) {
+    if (lib in versions)
+      set = versions[lib];
+    else {
+      set = default_setname;
+      if (ndefault_set >= 1)
+	set = default_set[1];
+    }
+    line = set ? (lib FS numbers[lib] FS set) : (lib FS numbers[lib]);
+    if (!(lib in lineorder) || order[lib] < lineorder[lib]) {
+      lineorder[lib] = order[lib];
+      lines[lib] = "DEFAULT" FS line;
+    }
   }
   for (c in lines) {
     print lines[c]
diff --git a/shlib-versions b/shlib-versions
index d34dea8..e05b248 100644
--- a/shlib-versions
+++ b/shlib-versions
@@ -1,72 +1,73 @@
 # This file (and shlib-versions files in sysdeps directories) defines
 # the shared library version numbers we will install.
 
-# The following lines list filename patterns matching canonical configurations,
-# and the associated versions to use for various libraries.  The entire
-# list is processed, with earlier entries taking precedence over later
-# entries.  So loose patterns at the end of the list can give defaults.
+# The following lines list the associated versions to use for various
+# libraries.  The entire list is processed, with earlier entries
+# taking precedence over later entries (and the files from sysdeps
+# directories coming before those from other subdirectories, which
+# come before this file).
 
 # This file can use cpp-style conditionals starting with % instead of #
 # to test the symbols defined in config.h by configure.
 
-# In the optional third column, there can one or more symbol set names
+# In the optional second column, there can one or more symbol set names
 # listed, which must be in ascending version order reading left to right
 # and must appear in this same order in the Versions.def file.  Each listed
 # version subsumes all prior versions back to the previous listed version.
 #
-# An entry with DEFAULT in the second column gives a default third column
-# to apply on matching configurations when the matching entry for a particular
-# library has no third column.  The defaults must precede the entries they
-# apply to.
+# An entry with DEFAULT in the first column gives a default second
+# column to apply when the matching entry for a particular library has
+# no second column.  The defaults must precede the entries they apply
+# to.
 
-# Configuration		Library=version		Earliest symbol set (optional)
-# -------------		---------------		------------------------------
+# Library=version		Earliest symbol set (optional)
+# ---------------		------------------------------
 
 # We use the ELF ABI standard name for the default.
-.*-.*-.*		ld=ld.so.1
+ld=ld.so.1
 
 # The -ldl interface (see <dlfcn.h>) is the same on all platforms.
-.*-.*-.*		libdl=2
+libdl=2
 
 # So far the -lutil interface is the same on all platforms, except for the
 # `struct utmp' format, which depends on libc.
-.*-.*-.*		libutil=1
+libutil=1
 
 # Version number 2 is used on other systems for the BIND 4.9.5 resolver
 # interface.
-.*-.*-.*		libresolv=2
+libresolv=2
 
 # Interface revision of nss_* modules.  This must match NSS_SHLIB_REVISION
 # in nss/nsswitch.h, which determines the library names used for service
 # names given in /etc/nsswitch.conf.
-.*-.*-.*		libnss_files=2
-.*-.*-.*		libnss_dns=2
-.*-.*-.*		libnss_compat=2
-.*-.*-.*		libnss_nis=2
-.*-.*-.*		libnss_nisplus=2
-.*-.*-.*		libnss_ldap=2
-.*-.*-.*		libnss_hesiod=2
-.*-.*-.*		libnss_db=2
+libnss_files=2
+libnss_dns=2
+libnss_compat=2
+libnss_nis=2
+libnss_nisplus=2
+libnss_ldap=2
+libnss_hesiod=2
+libnss_db=2
 
 # Tests for NSS.  They must have the same NSS_SHLIB_REVISION number as
 # the rest.
-.*-.*-.*		libnss_test1=2
+libnss_test1=2
 
 # Version for libnsl with YP and NIS+ functions.
-.*-.*-.*		libnsl=1
+libnsl=1
 
 # This defines the shared library version numbers we will install.
-.*-.*-.*		libcrypt=1
+libcrypt=1
 
 # The gross patch for programs assuming broken locale implementations.
-.*-.*-.*		libBrokenLocale=1
+libBrokenLocale=1
 
 # The real-time library from POSIX.1b.
-.*-.*-.*		librt=1
+librt=1
 
 # The asynchronous name lookup library.
-.*-.*-.*		libanl=1
+libanl=1
 
 # This defines the libgcc soname version this glibc is to load for
 # asynchronous cancellation to work correctly.
-.*-.*-.*		libgcc_s=1
+libgcc_s=1
diff --git a/sysdeps/hppa/shlib-versions b/sysdeps/hppa/shlib-versions
index ae3a3f1..34e9347 100644
--- a/sysdeps/hppa/shlib-versions
+++ b/sysdeps/hppa/shlib-versions
@@ -1 +1 @@
-hppa.*-.*-.*		libgcc_s=4
+libgcc_s=4
diff --git a/sysdeps/m68k/shlib-versions b/sysdeps/m68k/shlib-versions
index b65b00b..c8db251 100644
--- a/sysdeps/m68k/shlib-versions
+++ b/sysdeps/m68k/shlib-versions
@@ -1 +1 @@
-m68k-.*-linux.*		libgcc_s=2
+libgcc_s=2
diff --git a/sysdeps/mach/hurd/shlib-versions b/sysdeps/mach/hurd/shlib-versions
index f79c633..edbc301 100644
--- a/sysdeps/mach/hurd/shlib-versions
+++ b/sysdeps/mach/hurd/shlib-versions
@@ -1,12 +1,12 @@
-.*-.*-gnu-gnu.*		DEFAULT			GLIBC_2.2.6
+DEFAULT			GLIBC_2.2.6
 
-.*-.*-gnu-gnu.*		libm=6
+libm=6
 
 # libmachuser.so.1 corresponds to mach/*.defs as of Utah's UK22 release.
-.*-.*-gnu-gnu.*		libmachuser=1
+libmachuser=1
 
 # libhurduser.so.0.3 corresponds to hurd/*.defs as of 11 June 2002.
-.*-.*-gnu-gnu.*		libhurduser=0.3
+libhurduser=0.3
 
 # libc.so.0.3 is the first Hurd libc using libio.
-.*-.*-gnu-gnu.*		libc=0.3
+libc=0.3
diff --git a/sysdeps/unix/sysv/linux/aarch64/shlib-versions b/sysdeps/unix/sysv/linux/aarch64/shlib-versions
index 67f1911..e1768a7 100644
--- a/sysdeps/unix/sysv/linux/aarch64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/aarch64/shlib-versions
@@ -1,7 +1,7 @@
-aarch64.*-.*-linux.*	DEFAULT			GLIBC_2.17
+DEFAULT			GLIBC_2.17
 
 %ifdef HAVE_AARCH64_BE
-aarch64.*-.*-linux.*	ld=ld-linux-aarch64_be.so.1
+ld=ld-linux-aarch64_be.so.1
 %else
-aarch64.*-.*-linux.*	ld=ld-linux-aarch64.so.1
+ld=ld-linux-aarch64.so.1
 %endif
diff --git a/sysdeps/unix/sysv/linux/alpha/shlib-versions b/sysdeps/unix/sysv/linux/alpha/shlib-versions
index cd4b9af..cd913c2 100644
--- a/sysdeps/unix/sysv/linux/alpha/shlib-versions
+++ b/sysdeps/unix/sysv/linux/alpha/shlib-versions
@@ -1,14 +1,14 @@
-alpha.*-.*-linux.*	libm=6.1
-alpha.*-.*-linux.*	libc=6.1
+libm=6.1
+libc=6.1
 
-alpha.*-.*-linux.*	ld=ld-linux.so.2
+ld=ld-linux.so.2
 
-alpha.*-.*-linux.*	libdl=2.1
+libdl=2.1
 
-alpha.*-.*-linux.*	libutil=1.1
+libutil=1.1
 
-alpha.*-.*-linux.*	libresolv=2.1
+libresolv=2.1
 
-alpha.*-.*-linux.*	libnsl=1.1
-alpha.*-.*-linux.*	libcrypt=1.1
-alpha.*-.*-linux.*	libBrokenLocale=1.1
+libnsl=1.1
+libcrypt=1.1
+libBrokenLocale=1.1
diff --git a/sysdeps/unix/sysv/linux/arm/shlib-versions b/sysdeps/unix/sysv/linux/arm/shlib-versions
index 1ac597a..9b16953 100644
--- a/sysdeps/unix/sysv/linux/arm/shlib-versions
+++ b/sysdeps/unix/sysv/linux/arm/shlib-versions
@@ -1,9 +1,9 @@
-arm.*-.*-linux-gnueabi.*	DEFAULT			GLIBC_2.4
+DEFAULT			GLIBC_2.4
 
 %ifdef HAVE_ARM_PCS_VFP
 # The EABI-derived hard-float ABI uses a new dynamic linker.
-arm.*-.*-linux-gnueabi.*       ld=ld-linux-armhf.so.3
+ld=ld-linux-armhf.so.3
 %else
 # The EABI-derived soft-float ABI continues to use ld-linux.so.3.
-arm.*-.*-linux-gnueabi.*       ld=ld-linux.so.3
+ld=ld-linux.so.3
 %endif
diff --git a/sysdeps/unix/sysv/linux/hppa/shlib-versions b/sysdeps/unix/sysv/linux/hppa/shlib-versions
index ee46e4a..3a2d496 100644
--- a/sysdeps/unix/sysv/linux/hppa/shlib-versions
+++ b/sysdeps/unix/sysv/linux/hppa/shlib-versions
@@ -1,9 +1,9 @@
-hppa.*-.*-.*		libm=6			GLIBC_2.2
+libm=6			GLIBC_2.2
 
-hppa.*-.*-.*		libc=6			GLIBC_2.2
+libc=6			GLIBC_2.2
 
-hppa.*-.*-.*		ld=ld.so.1		GLIBC_2.2
+ld=ld.so.1		GLIBC_2.2
 
-hppa-.*-.*		libBrokenLocale=1	GLIBC_2.2
+libBrokenLocale=1	GLIBC_2.2
 
-hppa.*-.*-linux.*	libpthread=0		GLIBC_2.2
+libpthread=0		GLIBC_2.2
diff --git a/sysdeps/unix/sysv/linux/ia64/shlib-versions b/sysdeps/unix/sysv/linux/ia64/shlib-versions
index c8e1482..37374c0 100644
--- a/sysdeps/unix/sysv/linux/ia64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/ia64/shlib-versions
@@ -1,8 +1,8 @@
-ia64-.*-linux.*		libc=6.1		GLIBC_2.2
-ia64-.*-linux.*		libm=6.1		GLIBC_2.2
+libc=6.1		GLIBC_2.2
+libm=6.1		GLIBC_2.2
 
-ia64-.*-linux.*		ld=ld-linux-ia64.so.2	GLIBC_2.2
+ld=ld-linux-ia64.so.2	GLIBC_2.2
 
-ia64-.*-.*		libBrokenLocale=1	GLIBC_2.2
+libBrokenLocale=1	GLIBC_2.2
 
-ia64.*-.*-linux.*	libpthread=0		GLIBC_2.2
+libpthread=0		GLIBC_2.2
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions b/sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions
index f4c68b2..4309e4a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions
@@ -1 +1 @@
-m68k-.*-linux.*         DEFAULT                 GLIBC_2.4
+DEFAULT                 GLIBC_2.4
diff --git a/sysdeps/unix/sysv/linux/microblaze/shlib-versions b/sysdeps/unix/sysv/linux/microblaze/shlib-versions
index 6ec43db..eaf37a1 100644
--- a/sysdeps/unix/sysv/linux/microblaze/shlib-versions
+++ b/sysdeps/unix/sysv/linux/microblaze/shlib-versions
@@ -1 +1 @@
-microblaze.*-.*-linux.*	DEFAULT			GLIBC_2.18
+DEFAULT			GLIBC_2.18
diff --git a/sysdeps/unix/sysv/linux/mips/shlib-versions b/sysdeps/unix/sysv/linux/mips/shlib-versions
index d1414ed..c5bd7db 100644
--- a/sysdeps/unix/sysv/linux/mips/shlib-versions
+++ b/sysdeps/unix/sysv/linux/mips/shlib-versions
@@ -1,27 +1,27 @@
-mips.*-.*-linux.*	libm=6			GLIBC_2.0 GLIBC_2.2
+libm=6			GLIBC_2.0 GLIBC_2.2
 
 # Working mips versions were never released between 2.0 and 2.2.
-mips.*-.*-linux.*	libc=6			GLIBC_2.0 GLIBC_2.2
+libc=6			GLIBC_2.0 GLIBC_2.2
 
 %ifdef HAVE_MIPS_NAN2008
-mips.*-.*-linux.*	ld=ld-linux-mipsn8.so.1	GLIBC_2.0 GLIBC_2.2
+ld=ld-linux-mipsn8.so.1	GLIBC_2.0 GLIBC_2.2
 %else
-mips.*-.*-linux.*	ld=ld.so.1		GLIBC_2.0 GLIBC_2.2
+ld=ld.so.1		GLIBC_2.0 GLIBC_2.2
 %endif
-mips.*-.*-linux.*	libdl=2			GLIBC_2.0 GLIBC_2.2
+libdl=2			GLIBC_2.0 GLIBC_2.2
 
-mips.*-.*-linux.*	libresolv=2		GLIBC_2.0 GLIBC_2.2
+libresolv=2		GLIBC_2.0 GLIBC_2.2
 
-mips.*-.*-linux.*	libnss_files=2		GLIBC_2.0 GLIBC_2.2
-mips.*-.*-linux.*	libnss_dns=2		GLIBC_2.0 GLIBC_2.2
-mips.*-.*-linux.*	libnss_compat=2		GLIBC_2.0 GLIBC_2.2
-mips.*-.*-linux.*	libnss_nis=2		GLIBC_2.0 GLIBC_2.2
-mips.*-.*-linux.*	libnss_nisplus=2	GLIBC_2.0 GLIBC_2.2
-mips.*-.*-linux.*	libnss_ldap=2		GLIBC_2.0 GLIBC_2.2
-mips.*-.*-linux.*	libnss_hesiod=2		GLIBC_2.0 GLIBC_2.2
+libnss_files=2		GLIBC_2.0 GLIBC_2.2
+libnss_dns=2		GLIBC_2.0 GLIBC_2.2
+libnss_compat=2		GLIBC_2.0 GLIBC_2.2
+libnss_nis=2		GLIBC_2.0 GLIBC_2.2
+libnss_nisplus=2	GLIBC_2.0 GLIBC_2.2
+libnss_ldap=2		GLIBC_2.0 GLIBC_2.2
+libnss_hesiod=2		GLIBC_2.0 GLIBC_2.2
 
-mips.*-.*-linux.*	libnsl=1		GLIBC_2.0 GLIBC_2.2
+libnsl=1		GLIBC_2.0 GLIBC_2.2
 
-mips.*-.*-linux.*	librt=1			GLIBC_2.0 GLIBC_2.2
+librt=1			GLIBC_2.0 GLIBC_2.2
 
-mips.*-.*-linux.*	libpthread=0		GLIBC_2.0 GLIBC_2.2
+libpthread=0		GLIBC_2.0 GLIBC_2.2
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
index 1febda4..0b83af1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
@@ -1,7 +1,7 @@
 %ifdef HAVE_ELFV2_ABI
-powerpc.*le-.*-linux.*	DEFAULT			GLIBC_2.17
-powerpc.*le-.*-linux.*	libpthread=0		GLIBC_2.17
+DEFAULT			GLIBC_2.17
+libpthread=0		GLIBC_2.17
 %else
-powerpc64-.*-linux.*	DEFAULT			GLIBC_2.3
-powerpc64-.*-linux.*	libpthread=0		GLIBC_2.3
+DEFAULT			GLIBC_2.3
+libpthread=0		GLIBC_2.3
 %endif
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions b/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions
index cab0c0b..31edcfc 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions
@@ -1,2 +1,2 @@
-s390x-.*-linux.*        DEFAULT			GLIBC_2.2
-s390x-.*-linux.*	libpthread=0		GLIBC_2.2
+DEFAULT			GLIBC_2.2
+libpthread=0		GLIBC_2.2
diff --git a/sysdeps/unix/sysv/linux/sh/shlib-versions b/sysdeps/unix/sysv/linux/sh/shlib-versions
index c376fe8..9333bbd 100644
--- a/sysdeps/unix/sysv/linux/sh/shlib-versions
+++ b/sysdeps/unix/sysv/linux/sh/shlib-versions
@@ -1,5 +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
+libm=6			GLIBC_2.2
+libc=6			GLIBC_2.2
+ld=ld-linux.so.2	GLIBC_2.2
+libBrokenLocale=1	GLIBC_2.2
+libpthread=0		GLIBC_2.2
diff --git a/sysdeps/unix/sysv/linux/shlib-versions b/sysdeps/unix/sysv/linux/shlib-versions
index 2c06a8e..9160557 100644
--- a/sysdeps/unix/sysv/linux/shlib-versions
+++ b/sysdeps/unix/sysv/linux/shlib-versions
@@ -1,2 +1,2 @@
-.*-.*-linux.*		libm=6
-.*-.*-linux.*		libc=6
+libm=6
+libc=6
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions b/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions
index 26ca1f4..ca5d15b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions
@@ -1 +1 @@
-sparc.*-.*-linux.*	ld=ld-linux.so.2
+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
index 58d2c24..9333bbd 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions
@@ -1,5 +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
+libm=6			GLIBC_2.2
+libc=6			GLIBC_2.2
+ld=ld-linux.so.2	GLIBC_2.2
+libBrokenLocale=1	GLIBC_2.2
+libpthread=0		GLIBC_2.2
diff --git a/sysdeps/unix/sysv/linux/tile/shlib-versions b/sysdeps/unix/sysv/linux/tile/shlib-versions
index f50868f..b4360d3 100644
--- a/sysdeps/unix/sysv/linux/tile/shlib-versions
+++ b/sysdeps/unix/sysv/linux/tile/shlib-versions
@@ -1,2 +1,2 @@
 # glibc 2.12 was released to customers; 2.15 was the first community version.
-tile.*-.*-linux-gnu	DEFAULT		GLIBC_2.12 GLIBC_2.15
+DEFAULT		GLIBC_2.12 GLIBC_2.15
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions b/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions
index 90ea1b7..3d28722 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions
+++ b/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions
@@ -1,4 +1,4 @@
-# Configuration		DEFAULT			Earliest symbol set
-# -------------		---------------		------------------------------
-x86_64-.*-linux.*	DEFAULT			GLIBC_2.2.5
-x86_64-.*-linux.*	libpthread=0		GLIBC_2.2.5
+# DEFAULT			Earliest symbol set
+# ---------------		------------------------------
+DEFAULT			GLIBC_2.2.5
+libpthread=0		GLIBC_2.2.5
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions b/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions
index 8dd73e4..e4db8b9 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions
@@ -1,4 +1,4 @@
-# Configuration		DEFAULT			Earliest symbol set
-# -------------		---------------		------------------------------
-x86_64-.*-linux.*	DEFAULT			GLIBC_2.16
-x86_64-.*-linux.*	libpthread=0		GLIBC_2.16
+# DEFAULT			Earliest symbol set
+# ---------------		------------------------------
+DEFAULT			GLIBC_2.16
+libpthread=0		GLIBC_2.16

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Remove configuration name patterns from shlib-versions
  2014-09-11 22:22   ` Joseph S. Myers
@ 2014-09-11 23:22     ` Roland McGrath
  0 siblings, 0 replies; 4+ messages in thread
From: Roland McGrath @ 2014-09-11 23:22 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: libc-alpha

> Dealing with that is the next point on the list at 
> <https://sourceware.org/ml/libc-alpha/2014-06/msg00949.html>.

OK, if it's RSN then this incremental step is OK.

> The only other things I know of are avoiding repeating the "Earliest 
> symbol set" information many times in some cases, and removing the 
> bitrotten --enable-oldest-abi support as previously discussed.

OK, perhaps that's all there is.

> This patch version updates that comment (so instead it describes the 
> ordering of the various shlib-versions files, which is the key ordering 
> information given the files coming from sysdeps).

That looks fine now.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-09-11 23:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-11 16:36 Remove configuration name patterns from shlib-versions Joseph S. Myers
2014-09-11 22:03 ` Roland McGrath
2014-09-11 22:22   ` Joseph S. Myers
2014-09-11 23:22     ` Roland McGrath

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).