* scripts/abilist.awk: When given -v combine=1, do parse_names and

emit a single output stream with lib name in stanza header lines.

	* scripts/abilist.awk: Emit A for all *ABS* regardless of type.
This commit is contained in:
Roland McGrath 2003-03-28 11:41:52 +00:00
parent c6acf1e304
commit 7e30918b78
2 changed files with 30 additions and 13 deletions

View File

@ -1,3 +1,10 @@
2003-03-28 Roland McGrath <roland@redhat.com>
* scripts/abilist.awk: When given -v combine=1, do parse_names and
emit a single output stream with lib name in stanza header lines.
* scripts/abilist.awk: Emit A for all *ABS* regardless of type.
2003-03-27 Roland McGrath <roland@redhat.com> 2003-03-27 Roland McGrath <roland@redhat.com>
* sysdeps/powerpc/bits/atomic.h [! __powerpc64__] * sysdeps/powerpc/bits/atomic.h [! __powerpc64__]

View File

@ -2,10 +2,10 @@
# into a simple format that should not change when the ABI is not changing. # into a simple format that should not change when the ABI is not changing.
BEGIN { BEGIN {
if (parse_names) if (combine_fullname)
defout = "/dev/stderr"; combine = 1;
else if (combine)
defout = "/dev/stdout"; parse_names = 1;
} }
# Per-file header. # Per-file header.
@ -43,6 +43,7 @@ $2 == "g" || $2 == "w" && NF == 7 {
if (version == "GLIBC_PRIVATE") next; if (version == "GLIBC_PRIVATE") next;
desc = "";
if (type == "D" && $4 == ".tbss") { if (type == "D" && $4 == ".tbss") {
type = "T"; type = "T";
} }
@ -50,7 +51,7 @@ $2 == "g" || $2 == "w" && NF == 7 {
type = "O"; type = "O";
size = ""; size = "";
} }
else if (type == "DO" && $4 == "*ABS*") { else if ($4 == "*ABS*") {
type = "A"; type = "A";
size = ""; size = "";
} }
@ -62,17 +63,16 @@ $2 == "g" || $2 == "w" && NF == 7 {
size = ""; size = "";
} }
else { else {
print symbol, version, weak, "?", type, $4, $5 > defout; desc = symbol " " version " " weak " ? " type " " $4 " " $5;
next;
} }
if (size == " 0x") { if (size == " 0x") {
print symbol, version, weak, "?", type, $4, $5 > defout; desc = symbol " " version " " weak " ? " type " " $4 " " $5;
next;
} }
# Disabled -- weakness should not matter to shared library ABIs any more. # Disabled -- weakness should not matter to shared library ABIs any more.
#if (weak == "w") type = tolower(type); #if (weak == "w") type = tolower(type);
desc = " " symbol " " type size; if (desc == "")
desc = " " symbol " " type size;
if (version in versions) { if (version in versions) {
versions[version] = versions[version] "\n" desc; versions[version] = versions[version] "\n" desc;
@ -87,11 +87,11 @@ $2 == "g" || $2 == "w" && NF == 7 {
NF == 0 || /DYNAMIC SYMBOL TABLE/ || /file format/ { next } NF == 0 || /DYNAMIC SYMBOL TABLE/ || /file format/ { next }
{ {
print "Don't grok this line:", $0 > defout print "Don't grok this line:", $0
} }
function emit(tofile) { function emit(tofile) {
nverlist = 0; nverslist = 0;
for (version in versions) { for (version in versions) {
if (nverslist == 0) { if (nverslist == 0) {
verslist = version; verslist = version;
@ -119,6 +119,9 @@ function emit(tofile) {
++nverslist; ++nverslist;
} }
if (combine)
tofile = 0;
if (tofile) { if (tofile) {
out = prefix soname ".symlist"; out = prefix soname ".symlist";
if (soname in outfiles) if (soname in outfiles)
@ -137,8 +140,15 @@ function emit(tofile) {
close(out); close(out);
outpipe = "sort >> " out; outpipe = "sort >> " out;
} }
else else {
if (combine_fullname)
print prefix soname, version, sofullname;
else if (combine)
print prefix soname, version;
else
print version;
outpipe = "sort"; outpipe = "sort";
}
print versions[version] | outpipe; print versions[version] | outpipe;
close(outpipe); close(outpipe);