aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--scripts/merge-abilist.awk25
2 files changed, 24 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 071f093..c76640e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2003-03-02 Roland McGrath <roland@redhat.com>
+ * scripts/merge-abilist.awk: More checks for bogus input.
+ Uniquify duplicate config names.
+
+ * scripts/abilist.awk: Don't distinguish weak symbols in normal output.
+
* sysdeps/powerpc/powerpc32/dl-machine.c (_dl_reloc_overflow): Renamed
from dl_reloc_overflow, make global.
(__process_machine_rela): Update callers.
diff --git a/scripts/merge-abilist.awk b/scripts/merge-abilist.awk
index 03675f2..88ca0b0 100644
--- a/scripts/merge-abilist.awk
+++ b/scripts/merge-abilist.awk
@@ -12,9 +12,11 @@
# function F
# variable D 0x4
+BEGIN { current = "UNSET" }
+
/^[^| ]/ {
if (NF < 2 && config == "") {
- print "BAD LINE:", $0 > "/dev/stderr";
+ print FILENAME ":" FNR ": BAD SET LINE:", $0 > "/dev/stderr";
exit 2;
}
@@ -44,8 +46,8 @@
}
/^\| / {
- if (NF < 3) {
- print "BAD LINE:", $0 > "/dev/stderr";
+ if (NF < 3 || current == "UNSET") {
+ print FILENAME ":" FNR ": BAD | LINE:", $0 > "/dev/stderr";
exit 2;
}
@@ -61,12 +63,20 @@
{
if (current == "") next;
+ if (current == "UNSET") {
+ print FILENAME ":" FNR ": IGNORED LINE:", $0 > "/dev/stderr";
+ next;
+ }
ns = split(seen[$0], s, ",");
nc = split(current, c, ",");
for (i = 1; i <= nc; ++i) {
+ if (c[i] == "")
+ continue;
# Sorted insert.
for (j = 1; j <= ns; ++j) {
+ if (c[i] == s[j])
+ break;
if (c[i] < s[j]) {
for (k = ns; k >= j; --k)
s[k + 1] = s[k];
@@ -75,7 +85,7 @@
break;
}
}
- if (j >= ns)
+ if (j > ns)
s[++ns] = c[i];
}
@@ -97,7 +107,9 @@ END {
ns = split("", s);
for (configs in stanzas) {
# Sorted insert.
- for (j = 1; j <= ns; ++j)
+ for (j = 1; j <= ns; ++j) {
+ if (configs == s[j])
+ break;
if (configs < s[j]) {
for (k = ns; k >= j; --k)
s[k + 1] = s[k];
@@ -105,7 +117,8 @@ END {
++ns;
break;
}
- if (j >= ns)
+ }
+ if (j > ns)
s[++ns] = configs;
}