]>
Commit | Line | Data |
---|---|---|
e965d514 RM |
1 | # This script processes the output of 'readelf -W -s' on the libpthread.so |
2 | # we've just built. It checks for all the symbols used in td_symbol_list. | |
3 | ||
4 | BEGIN { | |
f8aeae34 AO |
5 | %define DB_RTLD_VARIABLE(name) /* Nothing. */ |
6 | %define DB_MAIN_VARIABLE(name) /* Nothing. */ | |
e965d514 RM |
7 | %define DB_LOOKUP_NAME(idx, name) required[STRINGIFY (name)] = 1; |
8 | %define DB_LOOKUP_NAME_TH_UNIQUE(idx, name) th_unique[STRINGIFY (name)] = 1; | |
9 | %include "db-symbols.h" | |
10 | ||
11 | in_symtab = 0; | |
12 | } | |
13 | ||
14 | /Symbol table '.symtab'/ { in_symtab=1; next } | |
15 | NF == 0 { in_symtab=0; next } | |
16 | ||
17 | !in_symtab { next } | |
18 | ||
8ee84bd0 | 19 | NF >= 8 && $7 != "UND" { seen[$NF] = 1 } |
e965d514 RM |
20 | |
21 | END { | |
22 | status = 0; | |
23 | ||
24 | for (s in required) { | |
25 | if (s in seen) print s, "ok"; | |
26 | else { | |
27 | status = 1; | |
28 | print s, "***MISSING***"; | |
29 | } | |
30 | } | |
31 | ||
32 | any = ""; | |
33 | for (s in th_unique) { | |
34 | if (s in seen) { | |
35 | any = s; | |
36 | break; | |
37 | } | |
38 | } | |
39 | if (any) | |
40 | print "th_unique:", any; | |
41 | else { | |
42 | status = 1; | |
43 | print "th_unique:", "***MISSING***"; | |
44 | } | |
45 | ||
46 | exit(status); | |
47 | } |