NPTL is no longer an add-on!
[platform/upstream/glibc.git] / scripts / soversions.awk
1 # awk script for shlib-versions.v -> soversions.i; see Makeconfig.
2
3 BEGIN {
4   config = cpu "-" vendor "-" os;
5   configs[config] = "DEFAULT";
6 }
7
8 { thiscf = $1 }
9
10 # Obey the first matching DEFAULT line.
11 $2 == "DEFAULT" {
12   $1 = $2 = "";
13   default_set[++ndefault_set] = thiscf "\n" $0;
14   next
15 }
16
17 # Collect all lib lines before emitting anything, so DEFAULT
18 # can be interspersed.
19 {
20   lib = number = $2;
21   sub(/=.*$/, "", lib);
22   sub(/^.*=/, "", number);
23   if ((thiscf FS lib) in numbers) next;
24   numbers[thiscf FS lib] = number;
25   order[thiscf FS lib] = ++order_n;
26   if (NF > 2) {
27     $1 = $2 = "";
28     versions[thiscf FS lib] = $0
29   }
30 }
31
32 END {
33   for (elt in numbers) {
34     split(elt, x);
35     cf = x[1];
36     lib = x[2];
37     for (c in configs)
38       if (c ~ cf) {
39         if (elt in versions)
40           set = versions[elt];
41         else {
42           set = (c == config) ? default_setname : "";
43           for (i = 1; i <= ndefault_set; ++i) {
44             split(default_set[i], x, "\n");
45             if (c ~ x[1]) {
46               set = x[2];
47               break;
48             }
49           }
50         }
51         line = set ? (lib FS numbers[elt] FS set) : (lib FS numbers[elt]);
52         if (!((c FS lib) in lineorder) || order[elt] < lineorder[c FS lib]) {
53           lineorder[c FS lib] = order[elt];
54           lines[c FS lib] = configs[c] FS line;
55         }
56       }
57   }
58   for (c in lines) {
59     print lines[c]
60   }
61 }