>...Also, it is *not* possible to replace either /lib/ld-linux.so.2 or
>/lib64/ld-linux-x86-64.so.2 (...and yes, I use those paths intentionally,
>since those are the ABI standard) on a running system unless you replace both
>it and /lib{,64}/libc.so.6 from the same process.

They are from the same process because I built api-headers, glibc, binutils and 
gcc as package archives using the available files from those archives. For 
example the binutils archive was built using the api-headers and the libraries 
from glibc archive files, not the installed files.
 
>(And you really want to
>"replace" them with an unlink() and copy, or copy to a temp file and
>unlink()/link(), sequence.)

So the sequence I should follow is:

-rwxr-xr-x 1 root root 156051 Dec 11 08:40 ld-2.18.so
lrwxrwxrwx 1 root root     10 Dec 11 08:40 ld-linux-x86-64.so.2 -> ld-2.18.so

1) delete  ld-linux-x86-64.so.2
2) update ld-2.18.so
3) re-establish the symlink

I think I tried that, but I'll do it again just to be sure.

>ld-linux and libc are not compatible across versions, so trying to exec()
>anything while those two files are coming from different glibc versions is
>pretty dangerous.

I think I addressed that above.

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

Reply via email to