lkml.org 
[lkml]   [2001]   [Feb]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject/usr/src/linux/scripts/ver_linux prints out incorrect info when "ls" is aliased.
I just noticed that running

. /usr/src/linux/script/ver_linux

prints out strange libc version when I run it
as a normal user. It prints out expected output if
I run it as superuser.

Output Example: Incorrect and correct examples.

Binutils 2.10.0.26
! Linux C Library 1.3.so*
Dynamic linker ldd: version 1.9.11
--- 7,9 ----
Binutils 2.10.0.26
! Linux C Library 2.1.3
Dynamic linker ldd: version 1.9.11


After playing with the ver_linux script,
I found that if the command "ls" is aliased to
"ls -aF", the output is incorrect.

Not that I alias "ls" for superuser, but
I usually write bug report, etc. in
a normal user account, and ls is
aliased to "ls -aF" there.

Here is a potential fix to "ver_script".
(Given the possibility of various shell binaries/shell
startup code setting, etc., I think the
common denomiator solution is to use the output of
which as the name of the ls binary.)

I didn't change the handling of other commands.
"ls" is likely to be aliased, but I wonder
whether other commands are aliased. YMMV.

Possible fix to ver_script is attached.








*** ver_linux Sun Feb 4 23:53:11 2001
--- /tmp/ver_linux Mon Feb 5 00:00:54 2001
***************
*** 7,12 ****
--- 7,19 ----
PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH
echo '-- Versions installed: (if some fields are empty or look'
echo '-- unusual then possibly you have very old versions)'
+
+ # to avoid the effect of aliasing "ls" command.
+ # YMMV.
+ # (I am not sure if other commands require similar
+ # treatment.)
+ LS=`which ls`
+
uname -a
insmod -V 2>&1 | awk 'NR==1 {print "Kernel modules ",$NF}'
echo "Gnu C " `gcc --version`
***************
*** 14,24 ****
'/GNU Make/{print "Gnu Make ",$NF}'
ld -v 2>&1 | awk -F\) '{print $1}' | awk \
'/BFD/{print "Binutils ",$NF}'
! ls -l `ldd /bin/sh | awk '/libc/{print $3}'` | sed -e 's/\.so$//' \
| awk -F'[.-]' '{print "Linux C Library " $(NF-2)"."$(NF-1)"."$NF}'
echo -n "Dynamic linker "
ldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -1
! ls -l /usr/lib/lib{g,stdc}++.so 2>/dev/null | awk -F. \
'{print "Linux C++ Library " $4"."$5"."$6}'
ps --version 2>&1 | awk 'NR==1{print "Procps ", $NF}'
mount --version | awk -F\- '{print "Mount ", $NF}'
--- 21,31 ----
'/GNU Make/{print "Gnu Make ",$NF}'
ld -v 2>&1 | awk -F\) '{print $1}' | awk \
'/BFD/{print "Binutils ",$NF}'
! ${LS} -l `ldd /bin/sh | awk '/libc/ { print $3 } ' ` | sed -e 's/\.so$//' \
| awk -F'[.-]' '{print "Linux C Library " $(NF-2)"."$(NF-1)"."$NF}'
echo -n "Dynamic linker "
ldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -1
! ${LS} -l /usr/lib/lib{g,stdc}++.so 2>/dev/null | awk -F. \
'{print "Linux C++ Library " $4"."$5"."$6}'
ps --version 2>&1 | awk 'NR==1{print "Procps ", $NF}'
mount --version | awk -F\- '{print "Mount ", $NF}'
\
 
 \ /
  Last update: 2005-03-22 12:54    [W:0.041 / U:1.580 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site