Remove configuration name patterns from shlib-versions.

This patch 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.

	* 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.
	* 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.

libidn/ChangeLog:
	* shlib-versions: Remove first column with configuration names.
This commit is contained in:
Joseph Myers 2014-09-12 12:28:47 +00:00
parent 73a391126d
commit ba90e05052
30 changed files with 169 additions and 181 deletions

View File

@ -1,5 +1,35 @@
2014-09-12 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.
* 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.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac
(HAVE_ELFV2_ABI): AC_DEFINE in ELFv2 case.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/configure:

View File

@ -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

13
configure vendored
View File

@ -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.

View File

@ -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.

View File

@ -1,3 +1,7 @@
2014-09-12 Joseph Myers <joseph@codesourcery.com>
* shlib-versions: Remove first column with configuration names.
2014-02-26 Joseph Myers <joseph@codesourcery.com>
* Makefile: Include Makeconfig immediately after defining subdir.

View File

@ -1 +1 @@
.*-.*-.* libcidn=1
libcidn=1

View File

@ -1 +1 @@
.*-.*-linux.* libpthread=0
libpthread=0

View File

@ -1,2 +1,2 @@
# The thread debug library
.*-.*-linux.* libthread_db=1
libthread_db=1

View File

@ -1,58 +1,40 @@
# 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];
for (lib in numbers) {
if (lib in versions)
set = versions[lib];
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;
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) {

View File

@ -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

View File

@ -1 +1 @@
hppa.*-.*-.* libgcc_s=4
libgcc_s=4

View File

@ -1 +1 @@
m68k-.*-linux.* libgcc_s=2
libgcc_s=2

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1 +1 @@
m68k-.*-linux.* DEFAULT GLIBC_2.4
DEFAULT GLIBC_2.4

View File

@ -1 +1 @@
microblaze.*-.*-linux.* DEFAULT GLIBC_2.18
DEFAULT GLIBC_2.18

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,2 +1,2 @@
.*-.*-linux.* libm=6
.*-.*-linux.* libc=6
libm=6
libc=6

View File

@ -1 +1 @@
sparc.*-.*-linux.* ld=ld-linux.so.2
ld=ld-linux.so.2

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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