summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 236d90ec97..7f1c2edf52 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 f907bc7eee..f4365eede6 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.