summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--scripts/firstversions.awk27
2 files changed, 27 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 282bf9bfa7..ac29548eac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2002-08-22 Roland McGrath <roland@redhat.com>
+
+ * scripts/firstversions.awk: When encountering a version newer than
+ the specified earliest version, be sure to emit the specified earliest
+ version first if any renaming of an older version to that has been.
+
2002-08-21 Roland McGrath <roland@redhat.com>
* configure.in: Make GCC version check require 3.[2-9]* and no others.
diff --git a/scripts/firstversions.awk b/scripts/firstversions.awk
index 1a500f4f1d..8da92ae485 100644
--- a/scripts/firstversions.awk
+++ b/scripts/firstversions.awk
@@ -27,20 +27,35 @@ $1 == "}" {
if ((thislib, idx[thislib]) in firstversion) {
# XXX relative string comparison loses if we ever have multiple digits
# between dots in GLIBC_x.y[.z] names.
- f = firstversion[thislib, idx[thislib]];
- v = f;
+ f = v = firstversion[thislib, idx[thislib]];
while ($1 >= v) {
- firstversion[thislib, idx[thislib]] = 0;
+ delete firstversion[thislib, idx[thislib]];
idx[thislib]++;
if ((thislib, idx[thislib]) in firstversion)
v = firstversion[thislib, idx[thislib]];
else
break;
}
- if ($1 >= v || $1 == f)
+ if ($1 == v || $1 == f)
+ # This version was the specified earliest version itself.
print;
- else
- print $1, "=", v;
+ else if ($1 < v) {
+ # 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;