Question @ 10,000 feet

Simon Geard delgarde at ihug.co.nz
Tue Nov 18 01:08:52 PST 2008


On Mon, 2008-11-17 at 15:47 -0500, Alexander Haley wrote:
> So .. when I say, "Run hello world", enter binutils. Binutils
> understand that common functionality is often packaged into shared
> objects (.so) - aka libraries. Bin utils uses a dynamic linker .. to
> ask itself "Hrrm .. they're running hello world .. and it looks like
> that references libc stuff .. so I'll load libc into memory, and via
> some dark magic, cause the program to be able to call this function
> called printf"

Close on this part, but not quite.

The role of binutils is at build time - it's responsible for taking the
output of gcc, and creating an executable containing both the program
code, and the information on which libraries need to be loaded in order
to run it. The bit actually responsible for processing that information
is a little library called /lib/ld-linux.so, which is provided by
glibc. 

I suggest reading the man pages for 'ld' and 'ld-linux', which provide a
little bit more info on this kind of thing. Also the page "Technical
Toolchain Notes" in Chapter 5 of the LFS book - the book pays quite a
lot of attention to these two, since it's one of the more fiddly bits
about building one Linux system from another.

Simon.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
URL: <http://lists.linuxfromscratch.org/pipermail/lfs-support/attachments/20081118/205cb181/attachment.sig>


More information about the lfs-support mailing list