Hi,

It appears that binutils ld will be changing its search behavior to
more closely follow ld.so.  See this post:

http://sources.redhat.com/ml/binutils/2006-02/msg00127.html

It seems that rather than using the compiled in LIB_PATH that we make
use of in Ch. 5 to repoint the linker to where we want, the default
will be that the paths in /etc/ld.so.conf will be preferred before
these.  This could have a very significant effect on the build.

The location of ld.so.conf (in 2.16.1) is determined by concatenating
ld_sysroot and /etc/ld.so.conf in ld/ldmain.c.  ld_sysroot is
determined through the function get_sysroot.  Here I'm guessing
because I don't really understand C.  It seems that if you passed
--with-sysroot, then it returns this value.  Otherwise, it seems to
determine the value from BINDIR or TOOLBINDIR.  I'm guessing that
these would be /tools/bin and /tools/i686-pc-linux-gnu/bin in Ch. 5.

Anyways, I think that the pass1 and 2 ld's in Ch. 5 will be looking
for /tools/etc/ld.so.conf.  If someone who understands C could look
through the binutils source files in ld, that would be wonderful.

How does this affect us?  It seems that we can simplify the toolchain
adjustments a bit using this behavior.  Rather than building multiple
ld's with different LIB_PATH's, we can simply add the relevant
directories to ${sysroot}/etc/ld.so.conf.

Ch. 5 Adjusting the toolchain
echo '/tools/lib' > /tools/etc/ld.so.conf

Ch. 6 Re-adjusting the toolchain
cat > /tools/etc/ld.so.conf << "EOF"
/lib
/usr/lib
EOF

This is just speculation for now, but very intriguing nonetheless.

Comments?

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

Reply via email to