[BusyBox] Help! Booting NFS with ARM using shared libraries

Erik Andersen andersen at codepoet.org
Thu Apr 17 00:47:04 UTC 2003


On Wed Apr 16, 2003 at 05:27:51PM -0700, yukwing.li at conexant.com wrote:
> Hi Erik,
> 
> Thank you for your quick reply!
> 
> I do have ld-XXX and libc-XXX sitting in my <nfs root>/lib directory so I 
> am not sure what goes wrong.  In the mean time, I do have another question 
> if you don't mind: 

If you run 'ldd' on your program, you may find that you are
using additional shared libraries....

> If libc.so.6 is being loaded by ld-linux.so.2, who is responsible to 
> invoke ld-linux.so.2 in the first place?  Sorry for my ignorance in this 
> init and library loading process.

Each ELF binary using the shared lib loader has an INTERP
program header, for example:

$ readelf -a /bin/true | grep -A1 INTERP
  INTERP         0x0000f4 0x080480f4 0x080480f4 0x00013 0x00013 R 0x1
        [Requesting program interpreter: /lib/ld-linux.so.2]

When the Linux kernel's elf loader (linux/fs/binfmt_elf.c) sees
that there is an interpreter set, it executes the intepreter.  It
is then the job of the intepreter to load the needed shared
libraries and run the application.

 -Erik

--
Erik B. Andersen             http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons--


More information about the busybox mailing list