X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=tab_c99.sh;fp=tab_c99.sh;h=80001c276b4b2eac539dd9428408ad421fd433c2;hb=a4341ee7277caff8b3334c87541f6d093d225b86;hp=0000000000000000000000000000000000000000;hpb=2953a1653ec29b89943000f2ca6067d21bf87f19;p=musl-tables
diff --git a/tab_c99.sh b/tab_c99.sh
new file mode 100755
index 0000000..80001c2
--- /dev/null
+++ b/tab_c99.sh
@@ -0,0 +1,100 @@
+#!/bin/sh
+
+export LC_ALL=C
+MUSL=../musl
+
+( cd $MUSL; git log -n1 ) | awk '
+BEGIN {
+ getline
+ hash = $2
+ getline
+
+ commit = "
commit
commit " hash ""
+ while (getline == 1)
+ commit = commit "
" $0
+
+ FS = "\t"
+
+ c99 = "data/c99"
+ syms = "data/musl.syms"
+ tags = "data/musl.tags"
+
+ while (getline < syms == 1)
+ sym[$2] = $1
+ while (getline < tags == 1) {
+ if ($2 ~ /bits\//)
+ s = $3 " "
+ else
+ s = "" $3 " "
+ kind[$1] = kind[$1] $3
+ kindstr[$1] = kindstr[$1] s
+ }
+
+ legend = "
legend
- status: musl implementation status summary
"
+ legend = legend "- (empty) - implemented"
+ legend = legend "
- nosym - prototype found in include files (see decl) but not in libc.a (see sym)"
+ legend = legend "
- nodecl - symbol is in libc.a but not declared in a public header"
+ legend = legend "
- missing - neither in include files (see decl) nor in libc.a (see sym)"
+ legend = legend "
- sym: external symbol kind as found by `nm libc.a` (symbol kind only reported once)
"
+# legend = legend "- A - symbol value is absolute"
+# legend = legend "
- B - symbol is in the uninitialized data section (known as BSS)"
+ legend = legend "
- C - symbol is common (uninitialized data)"
+ legend = legend "
- D - symbol is in the initialized data section"
+# legend = legend "
- G - symbol is in the initialized data section for small objects"
+# legend = legend "
- I - indirect reference to another symbol"
+# legend = legend "
- N - debugging symbol"
+ legend = legend "
- R - symbol is in the read only data section"
+# legend = legend "
- S - symbol is in the uninitialized data section for small objects"
+ legend = legend "
- T - symbol is in the text section"
+# legend = legend "
- U - undefined symbol"
+ legend = legend "
- V - weak object"
+ legend = legend "
- W - weak symbol"
+ legend = legend "
- decl: kind of declaration as found by `ctags -R include` (every occurance is reported, arch specific definitions are not linked)
"
+ legend = legend "- d - macro definition"
+ legend = legend "
- t - typedef"
+ legend = legend "
- s - struct declaration"
+ legend = legend "
- u - union declaration"
+ legend = legend "
- p - function prototype"
+ legend = legend "
- x - external and forward variable declaration"
+ legend = legend "
"
+
+ print "musl vs c99 api
"
+ print commit
+ print legend
+ print "table
musl | c99 |
---|
status | sym | decl | name | header | proto | section"
+ nodecl = nosym = missing = 0
+ while (getline < c99 == 1) {
+ s = " |
---|
"
+ if (sym[$1] && kind[$1]) {
+ s = s " "
+ } else if (sym[$1]) {
+ s = s "nodecl"
+ nodecl++
+ } else if (kind[$1] ~ /[dtsu]/) {
+ s = s " "
+ } else if (kind[$1]) {
+ s = s "nosym"
+ nosym++
+ } else {
+ s = s "missing"
+ missing++
+ }
+ s = s " | " sym[$1]
+ if (!sym[$1])
+ s = s " "
+ s = s " | " kindstr[$1]
+ if (!kind[$1])
+ s = s " "
+
+ s = s " | " $1
+ s = s " | " $3
+ if ($2)
+ s = s " | " $2
+ else
+ s = s " | "
+ s = s " | " $4
+ print s
+ }
+ print " |
"
+ print "stats
- missing: " missing "
- nosym: " nosym "
- nodecl: " nodecl "
"
+}' >tab_c99.html