ver_linux: ldd, look for numerical input, not field number

Rely on regex to find the version number, rather than rely on numerical input to be found in a particular input field.
Proposed implementation also eliminates the necessity to invoke 'head' + 'awk'.

The '-v' flag either seems to have been deprecated in some distros, e.g. Gentoo, or is an alias for '--version' in others. The proposed implementation uses the latter flag only.

Signed-off-by: Alexander Kapshuk <alexander.kapshuk@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Alexander Kapshuk 2015-10-12 21:39:54 +03:00 committed by Greg Kroah-Hartman
parent cbb57d10af
commit 1e5f739c61

View File

@ -114,8 +114,12 @@ sed '
q
' /proc/self/maps
ldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -n 1 | awk \
'NR==1{print "Dynamic linker (ldd) ", $NF}'
ldd --version 2>&1 |
awk '/^ldd/{
match($0, /[0-9]+([.]?[0-9]+)+/)
printf("Dynamic linker (ldd)\t%s\n",
substr($0,RSTART,RLENGTH))
}'
ls -l /usr/lib/libg++.so /usr/lib/libstdc++.so 2>/dev/null | awk -F. \
'{print "Linux C++ Library " $4"."$5"."$6}'