.. | .. |
---|
13 | 13 | system("uname -a") |
---|
14 | 14 | printf("\n") |
---|
15 | 15 | |
---|
| 16 | + vernum = "[0-9]+([.]?[0-9]+)+" |
---|
| 17 | + libc = "libc[.]so[.][0-9]+$" |
---|
| 18 | + libcpp = "(libg|stdc)[+]+[.]so[.][0-9]+$" |
---|
| 19 | + |
---|
16 | 20 | printversion("GNU C", version("gcc -dumpversion")) |
---|
17 | 21 | printversion("GNU Make", version("make --version")) |
---|
18 | 22 | printversion("Binutils", version("ld -v")) |
---|
.. | .. |
---|
30 | 34 | printversion("PPP", version("pppd --version")) |
---|
31 | 35 | printversion("Isdn4k-utils", version("isdnctrl")) |
---|
32 | 36 | printversion("Nfs-utils", version("showmount --version")) |
---|
| 37 | + printversion("Bison", version("bison --version")) |
---|
| 38 | + printversion("Flex", version("flex --version")) |
---|
33 | 39 | |
---|
34 | | - while (getline <"/proc/self/maps" > 0) { |
---|
35 | | - if (/libc.*\.so$/) { |
---|
36 | | - n = split($0, procmaps, "/") |
---|
37 | | - if (match(procmaps[n], /[0-9]+([.]?[0-9]+)+/)) { |
---|
38 | | - ver = substr(procmaps[n], RSTART, RLENGTH) |
---|
39 | | - printversion("Linux C Library", ver) |
---|
40 | | - break |
---|
41 | | - } |
---|
42 | | - } |
---|
| 40 | + while ("ldconfig -p 2>/dev/null" | getline > 0) { |
---|
| 41 | + if ($NF ~ libc && !seen[ver = version("readlink " $NF)]++) |
---|
| 42 | + printversion("Linux C Library", ver) |
---|
| 43 | + else if ($NF ~ libcpp && !seen[ver = version("readlink " $NF)]++) |
---|
| 44 | + printversion("Linux C++ Library", ver) |
---|
43 | 45 | } |
---|
44 | 46 | |
---|
45 | 47 | printversion("Dynamic linker (ldd)", version("ldd --version")) |
---|
46 | | - |
---|
47 | | - while ("ldconfig -p 2>/dev/null" | getline > 0) { |
---|
48 | | - if (/(libg|stdc)[+]+\.so/) { |
---|
49 | | - libcpp = $NF |
---|
50 | | - break |
---|
51 | | - } |
---|
52 | | - } |
---|
53 | | - printversion("Linux C++ Library", version("readlink " libcpp)) |
---|
54 | 48 | printversion("Procps", version("ps --version")) |
---|
55 | 49 | printversion("Net-tools", version("ifconfig --version")) |
---|
56 | 50 | printversion("Kbd", version("loadkeys -V")) |
---|
.. | .. |
---|
70 | 64 | function version(cmd, ver) { |
---|
71 | 65 | cmd = cmd " 2>&1" |
---|
72 | 66 | while (cmd | getline > 0) { |
---|
73 | | - if (match($0, /[0-9]+([.]?[0-9]+)+/)) { |
---|
| 67 | + if (match($0, vernum)) { |
---|
74 | 68 | ver = substr($0, RSTART, RLENGTH) |
---|
75 | 69 | break |
---|
76 | 70 | } |
---|