Wheels, reinventing. (Was Re: [uClibc] Understanding what the build wrapper does...)

Rob Landley rob at landley.net
Thu Sep 11 19:25:55 UTC 2003


On Thursday 11 September 2003 07:10, Erik Andersen wrote:

> > BUT: to do it, I had to create a symlink in the mounted root_fs:
> > cd $DIR/lib
> > ln -s libc.so.0 libc.so
> >
> > I don't know why I needed to do this, I just know that this is what ld
> > was looking for when I told it "--library-path $DIR/lib -lc".  It
> > wouldn't look at the "libc.so.0" version, it wanted "libc.so"
>
> The symlinks are needed to allow shared libraries to be
> easily upgraded in-place.
>
> > Am I missing something?  Should that symlink already have been there?  Is
> > my copy of ld broken or something?  (Red Hat 9 stock compiler toybox...)
>
> The uClibc 'make install' command (and all the variants on that
> theme such as 'make install_runtime') do in fact install such a
> symlink....  Perhaps you just copied things rather than using
> i.e. 'make install_runtime'?

No, I pointed the compiler at the loopback mounted root_fs which I downloaded, 
and said "here are your libraries".  I had to create a symlink in the 
downloaded root_fs.  The downloaded root_fs, which I didn't build, did not 
have that symlink.

That's what I was asking about.

I noticed that you modify the compiler and linker tools to make them 
automatically link against uclibc instead of glibc.  I suspect that the 
modified versions look for uclibc directory (or libc.so.0 or something) 
rather than libc.so, hence root_fs can compile against them without the 
symlink...

> > I'm confused, but this is actually normal for me...
>
> heh.  :-)
>
>  -Erik

Rob




More information about the uClibc mailing list