diff options
author | Roland McGrath <roland@gnu.org> | 2002-12-23 11:17:18 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2002-12-23 11:17:18 +0000 |
commit | c823a4d21b76fbc6cf86503d23e3cd55384644ce (patch) | |
tree | 6a61fb4da98c47f12d37455776b30543b51d9a3e /scripts/extract-abilist.awk | |
parent | b27b002d5b85b8628f19f65886d25a342c6cbc18 (diff) | |
download | glibc-c823a4d21b76fbc6cf86503d23e3cd55384644ce.tar glibc-c823a4d21b76fbc6cf86503d23e3cd55384644ce.tar.gz glibc-c823a4d21b76fbc6cf86503d23e3cd55384644ce.tar.bz2 glibc-c823a4d21b76fbc6cf86503d23e3cd55384644ce.zip |
* scripts/abilist.awk: Produce a more compact format, divided into
stanzas for each version set, the set name listed only once.
* scripts/extract-abilist.awk: New file.
* scripts/merge-abilist.awk: New file.
* Makerules (check-abi-%, update-abi-%): New pattern rules.
(update-abi, check-abi): New targets.
* Makefile (+subdir_targets): Add subdir_{check,update}-abi.
* Makerules (%.symlist): Use LC_ALL=C when running awk script.
Diffstat (limited to 'scripts/extract-abilist.awk')
-rw-r--r-- | scripts/extract-abilist.awk | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/scripts/extract-abilist.awk b/scripts/extract-abilist.awk new file mode 100644 index 0000000000..c5b76e1309 --- /dev/null +++ b/scripts/extract-abilist.awk @@ -0,0 +1,44 @@ +# awk script to extract a config-specific .symlist file from a merged file. +# This must be passed run with awk -v config=TUPLE to specify the configuration +# tuple we will match. The merged file contains stanzas in the form: +# GLIBC_x.y regexp... +# function F +# variable D 0x4 +# Each regexp is matched against TUPLE, and only matching stanzas go +# into the output, with the regexp list removed. The result matches the +# original .symlist file from abilist.awk that was fed into merge-abilist.awk. + +BEGIN { + outpipe = ""; +} + +/^ / { if (!ignore) print | outpipe; next; } + +{ + for (i = 2; i <= NF; ++i) { + regex = "^" $i "$"; + if (match(config, regex) != 0) { + if ($1 != version) { + if (outpipe != "") { + close(outpipe); + } + version = $1; + print version; + outpipe = "sort"; + } + ignore = 0; + next; + } + } + ignore = 1; + next; +} + +END { + if (outpipe == "") { + print "No stanza matched", config > "/dev/stderr"; + exit 2; + } + else + close(outpipe); +} |