>...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