aboutsummaryrefslogtreecommitdiff
path: root/scripts/firstversions.awk
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/firstversions.awk')
-rw-r--r--scripts/firstversions.awk89
1 files changed, 0 insertions, 89 deletions
diff --git a/scripts/firstversions.awk b/scripts/firstversions.awk
deleted file mode 100644
index ccde4b59b4..0000000000
--- a/scripts/firstversions.awk
+++ /dev/null
@@ -1,89 +0,0 @@
-# Script to preprocess Versions.all lists based on "earliest version"
-# specifications in the shlib-versions file.
-
-# Return -1, 0 or 1 according to whether v1 is less than, equal to or
-# greater than v2 as a version string. Simplified from GNU Autoconf
-# version; this one does not need to handle .0x fraction-style versions.
-function vers_compare (v1, v2)
-{
- while (length(v1) && length(v2)) {
- if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) {
- for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue;
- for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue;
- d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1);
- d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1);
- d1 += 0;
- d2 += 0;
- } else {
- d1 = substr(v1, 1, 1); v1 = substr(v1, 2);
- d2 = substr(v2, 1, 1); v2 = substr(v2, 2);
- }
- if (d1 < d2) return -1;
- if (d1 > d2) return 1;
- }
- if (length(v2)) return -1;
- if (length(v1)) return 1;
- return 0;
-}
-
-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 ((thislib, idx[thislib]) in firstversion) {
- # We haven't seen the stated version, but have produced
- # others pointing to it, so we synthesize it now.
- printf " %s\n", firstversion[thislib, idx[thislib]];
- idx[thislib]++;
- }
- print;
- next;
-}
-
-/GLIBC_PRIVATE/ { print; next }
-
-{
- if ((thislib, idx[thislib]) in firstversion) {
- f = v = firstversion[thislib, idx[thislib]];
- while (vers_compare($1, v) >= 0) {
- delete firstversion[thislib, idx[thislib]];
- idx[thislib]++;
- if ((thislib, idx[thislib]) in firstversion) {
- # If we're skipping a referenced version to jump ahead to a
- # later version, synthesize the earlier referenced version now.
- if (v != $1 && (thislib, v) in usedversion)
- print " " v;
- v = firstversion[thislib, idx[thislib]];
- } else
- break;
- }
- if ($1 == v || $1 == f)
- # This version was the specified earliest version itself.
- print;
- else if (vers_compare($1, v) < 0) {
- # This version is older than the specified earliest version.
- print " " $1, "=", v;
- # Record that V has been referred to, so we will be sure to emit it
- # if we hit a later one without hitting V itself.
- usedversion[thislib, v] = 1;
- }
- else {
- # This version is newer than the specified earliest version.
- # We haven't seen that version itself or else we wouldn't be here
- # because we would have removed it from the firstversion array.
- # If there were any earlier versions that used that one, emit it now.
- if ((thislib, v) in usedversion) {
- print " " v;
- }
- print " " $1;
- }
- }
- else
- print;
-}