| .. | .. | 
|---|
| 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 | } | 
|---|