From 5015cde4c8f4d5b50c906967cdf88d8bff82dca1 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 22 Aug 2002 07:22:03 +0000 Subject: * 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. --- ChangeLog | 6 ++++++ scripts/firstversions.awk | 27 +++++++++++++++++++++------ 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 + + * 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 * 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; -- cgit 1.4.1