Bryan Kadzban wrote:
> Sorry, this won't thread properly -- but I deleted the original before I
> realized I wanted to reply, so now I have to copy from the archives, and
> the archives don't have the right message-ids.  :-/
> 
> Matthew Burgess wrote:
>> On Wed, 2011-12-28 at 15:01 +0100, Pierre Labastie wrote:
>>
>>> I meant `current trunk' too. The change in version 3537 is not enough.
>>> Here is what I have done (not checked on any other system than Debian,
>>> but I do not see a reason why it would not work):
>>> #  if [ -f /lib/libc.so.6 ]; then
>>> #    libcLoc=/lib;
>>> #  elif [ -f /lib64/libc.so.6 ]; then
>>> #    libcLoc=/lib64;
>>> #  fi;
>>> #  libcVer="`/${libcLoc}/libc.so.6 | head -n1`"
>>>   libcExec="`find /lib /lib64 -name libc.so.6 -print`"
>>>   libcVer="`/${libcExec} | head -n1`"
>> How odd.  I was going to suggest you run some tests so I can figure out
>> why r3537 isn't enough for Debian systems, but your version is a lot
>> more compact and appears to work on my Fedora host too, so I may as well
>> just drop it straight in.  Thanks for the fix.
> 
> Why don't we do something a bit less fragile?  The Linux ABI requires
> that the dynamic linker be at the path /lib/ld-linux.so.2 (or
> /lib64/ld-linux-x86-64.so.2 for 64-bit), so we could just use that fact,
> along with ld.so's ability to print the soname -> filename resolution,
> and ask /bin/ls which C library it's using:
> 
> ldd /bin/ls | awk '/libc\.so/ {print $3;}'
> 
> This works on 64-bit Ubuntu Hardy and an old 32-bit LFS.  I don't have
> anything else to test it on though.  (It'd be nice if ld.so had a flag
> to print the library it'd use for a given soname.  Oh well.)  We don't
> actually care whether we're asking the 32-bit or 64-bit libc for its
> version, since both should be the same.

I think that idea is fine, but wonder about the use of awk.  It may not 
be available.  Perhaps:

ldd /bin/ls | grep '/libc.*so'

I don't think stripping the cruft is really necessary.

LFS 32-bit:  libc.so.6 => /lib/libc.so.6 (0xb7e46000)
Ubuntu    :  libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e24000)
LFS 64-bit:  libc.so.6 => /lib/libc.so.6 (0x00007fa7f6920000)
RHEL      :  libc.so.6 => /lib/tls/libc.so.6 (0x0025e000)

   -- Bruce



   -- Bruce


-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to