2002-12-23 Roland McGrath <roland@redhat.com>
[kopensolaris-gnu/glibc.git] / scripts / extract-abilist.awk
1 # awk script to extract a config-specific .symlist file from a merged file.
2 # This must be passed run with awk -v config=TUPLE to specify the configuration
3 # tuple we will match.  The merged file contains stanzas in the form:
4 #       GLIBC_x.y regexp...
5 #        function F
6 #        variable D 0x4
7 # Each regexp is matched against TUPLE, and only matching stanzas go
8 # into the output, with the regexp list removed.  The result matches the
9 # original .symlist file from abilist.awk that was fed into merge-abilist.awk.
10
11 BEGIN {
12   outpipe = "";
13 }
14
15 /^ / { if (!ignore) print | outpipe; next; }
16
17 {
18   for (i = 2; i <= NF; ++i) {
19     regex = "^" $i "$";
20     if (match(config, regex) != 0) {
21       if ($1 != version) {
22         if (outpipe != "") {
23           close(outpipe);
24         }
25         version = $1;
26         print version;
27         outpipe = "sort";
28       }
29       ignore = 0;
30       next;
31     }
32   }
33   ignore = 1;
34   next;
35 }
36
37 END {
38   if (outpipe == "") {
39     print "No stanza matched", config > "/dev/stderr";
40     exit 2;
41   }
42   else
43     close(outpipe);
44 }