aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2000-03-21 20:36:53 +0000
committerRoland McGrath <roland@gnu.org>2000-03-21 20:36:53 +0000
commit733af7d6c32ef8305c30a47cd5b0d6c81d27b3ea (patch)
tree401e170d5ffeb7723c4a144029da23b818404435
parentb0c766ddd76df9375c6a7bb59111c68934c47166 (diff)
downloadglibc-733af7d6c32ef8305c30a47cd5b0d6c81d27b3ea.zip
glibc-733af7d6c32ef8305c30a47cd5b0d6c81d27b3ea.tar.gz
glibc-733af7d6c32ef8305c30a47cd5b0d6c81d27b3ea.tar.bz2
2000-03-21 Roland McGrath <roland@baalperazim.frob.com>
* scripts/firstversions.awk: Allow multiple version sets in the "earliest version" specification, meaning that version sets in the gaps between listed versions should be folded into the earliest later version that is explicitly listed. * shlib-versions (mips.*-.*-linux.*): Use that syntax for to say we support GLIBC_2.0 and GLIBC_2.2 but not the intervening sets.
-rw-r--r--scripts/firstversions.awk23
-rw-r--r--shlib-versions7
2 files changed, 23 insertions, 7 deletions
diff --git a/scripts/firstversions.awk b/scripts/firstversions.awk
index 236d90e..7f1c2ed 100644
--- a/scripts/firstversions.awk
+++ b/scripts/firstversions.awk
@@ -1,27 +1,36 @@
# Script to preprocess Versions.all lists based on "earliest version"
# specifications in the shlib-versions file.
-NF == 3 && $2 == ":" { firstversion[$1] = $3; next }
+NF > 2 && $2 == ":" {
+ for (i = 0; i <= NF - 3; ++i)
+ firstversion[$1, i] = $(3 + i);
+ idx[$1] = 0;
+ next;
+}
NF == 2 && $2 == "{" { thislib = $1; print; next }
$1 == "}" {
- if (firstversion[thislib]) {
+ if (firstversion[thislib, idx[thislib]]) {
# We haven't seen the stated version, but have produced
# others pointing to it, so we synthesize it now.
- printf " %s\n", firstversion[thislib];
+ printf " %s\n", firstversion[thislib, idx[thislib]];
+ idx[thislib]++;
}
print;
next;
}
{
- if (! firstversion[thislib])
+ v = firstversion[thislib, idx[thislib]];
+
+ if (! v)
print;
- else if ($1 == firstversion[thislib]) {
+ else if ($1 == v) {
print;
- firstversion[thislib] = 0;
+ firstversion[thislib, idx[thislib]] = 0;
+ idx[thislib]++;
}
else
- print $1, "=", firstversion[thislib];
+ print $1, "=", v;
}
diff --git a/shlib-versions b/shlib-versions
index f907bc7..f4365ee 100644
--- a/shlib-versions
+++ b/shlib-versions
@@ -8,6 +8,11 @@
# 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
+# 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.
+
# Configuration Library=version Earliest symbol set (optional)
# ------------- --------------- ------------------------------
@@ -23,6 +28,8 @@ arm.*-.*-.* libm=6
# We provide libc.so.6 for Linux kernel versions 2.0 and later.
alpha.*-.*-linux.* libc=6.1
+# Working mips versions were never released between 2.0 and 2.2.
+mips.*-.*-linux.* libc=6 GLIBC_2.0 GLIBC_2.2
.*-.*-linux.* libc=6
# libmachuser.so.1 corresponds to mach/*.defs as of Utah's UK22 release.