7 awk -F'\t' '{print $1}' data
/musl.tags data
/posix2008.ok
# data/c99
8 awk -F'\t' '{print $2}' data
/musl.syms
9 } |
sort |
uniq |
awk -F'\t' '
11 syms = "data/musl.syms"
12 tags = "data/musl.tags.proto"
13 srctags = "data/musl.src.tags.proto"
14 posix = "data/posix2008.ok.proto"
16 while (getline < syms == 1)
19 while (getline < tags == 1) {
23 tag[$1] = tag[$1] "@" $2 "\t" $3 "\t" $5 "\t" $6
25 tag[$1] = $2 "\t" $3 "\t" $5 "\t" $6
28 while (getline < srctags == 1) {
32 stag[$1] = stag[$1] "@" $2 "\t" $3 "\t" $5 "\t" $6
34 stag[$1] = $2 "\t" $3 "\t" $5 "\t" $6
37 while (getline < posix == 1)
38 pos[$1] = $2 "\t" $5 "\t" $6
53 n = split(tag[$1],a,"@")
54 for (i = 1; i <= n; i++)
55 print $1 "\t" substr(s,2) "\t" sym[$1] "\t" a[i] "\t" pos[$1]
56 n = split(stag[$1],a,"@")
57 for (i = 1; i <= n; i++)
58 print $1 "\t" substr(s,2) "\t" sym[$1] "\t" a[i] "\t" pos[$1]
65 herr && lastid != $1 {
69 $2 == "obj" || $2 == "obj posix" {
72 print "nodecl\t" $1 "\t" $3
75 # check for different declarations of the same symbol
78 print "proto\t" $1 "\t" $4 "\t" head[$1] "\t" $6 "\t" proto[$1]
85 $5 == "f" && $1 in protoshort {
86 # func definition with different proto
89 gsub(/extern */, "", dec)
92 if (protoshort[$1] != $7 && dec != def)
93 print "proto\t" $1 "\t" $4 "\t" head[$1] "\t" $7 "\t" protoshort[$1]
95 $2 ~ /inc posix/ && $4 == $8 {
99 $2 ~ /inc posix/ && head[$1] != $8 && $4 !~ /^bits\// && $5 != "f" {
101 n = split($8, a, " ")
102 for (i = 1; i <= n; i++)
107 herr = "header\t" $1 "\t" $4 "\t" $8
109 $2 ~ /inc posix/ && $7 != $10 && $5 == "p" {
110 # different prototype
111 print "proto\t" $1 "\t" $4 "\t" $7 "\t" $10 "\t" $6 "\t" $9
120 ' data
/musl.all |
uniq >data
/musl.problems