about summary refs log tree commit diff
path: root/scripts/firstversions.awk
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 /scripts/firstversions.awk
parentb0c766ddd76df9375c6a7bb59111c68934c47166 (diff)
downloadglibc-733af7d6c32ef8305c30a47cd5b0d6c81d27b3ea.tar.gz
glibc-733af7d6c32ef8305c30a47cd5b0d6c81d27b3ea.tar.xz
glibc-733af7d6c32ef8305c30a47cd5b0d6c81d27b3ea.zip
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.
Diffstat (limited to 'scripts/firstversions.awk')
-rw-r--r--scripts/firstversions.awk23
1 files changed, 16 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;
 }