ver_linux: libcpp, fix missing output
authorAlexander Kapshuk <alexander.kapshuk@gmail.com>
Mon, 12 Oct 2015 18:39:55 +0000 (21:39 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 18 Oct 2015 04:55:26 +0000 (21:55 -0700)
Neither 'libg++.so', nor 'libstdc++.so' were found where the current
implementation expects them to be found in the distros below.

Gentoo Linux
Debian 6.0.10
Oracle Linux Server release 7.1

Which results in zero ouput generated.

The proposed implementation relies on 'ldconfig' to locate the libraries
in question.  'Sed' is used to do the text processing.

Signed-off-by: Alexander Kapshuk <alexander.kapshuk@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
scripts/ver_linux

index a7d0eca..882ddb9 100755 (executable)
@@ -121,9 +121,18 @@ awk '/^ldd/{
        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}'
-
+libcpp=`ldconfig -p 2>/dev/null |
+       awk '/(libg|stdc)[+]+\.so/ {
+       print $NF
+       exit
+       }
+'`
+test -r "$libcpp" &&
+ls -l $libcpp |
+sed '
+       s!.*so\.!!
+       s!^!Linux C++ Library\t!
+'
 ps --version 2>&1 | grep version | awk \
 'NR==1{print "Procps                ", $NF}'