[uClibc]booting with busybox and shared libraries

Jason Luther jason at airwave.com
Mon Oct 22 18:26:16 UTC 2001


From: "Thomas Cameron" <tom at patcameron.ne.mediaone.net>
> Jason,
> Initially, this looks like you didn't define where to link the binaries
> to properly.  In other words, you were correct in your assumption.  If
> you read the notes above the SHARED_LIB_LOADER_PATH define, you'll see
> that this is where the libraries _will_ reside.  Additionally, you'll
> read that this will make the binary files NOT wok on the machine they
> were compiled on.

Aaah--right where it says "BIG FAT WARNING." :) Setting that to "/lib" did
the trick.

Thanks!
Jason


> I would also reccomend that you not run your standard `ldd` on the
> binary files, as it will normally segfault and/or do other strange
> things.  If you'd like to see what libraries the binary files are
> compiled against, I would reccomend that you do a `strings {binname} |
> grep /`  This will output all lines within the binary file you specified
> (binname) that contain a "/" character.
>
> Good Luck,
> Tom Cameron
>
>
> Jason Luther wrote:
> >
> > Hello, all.
> >
> > I am trying to boot Linux 2.4.12 with busybox-0.60.1 complied against
uClibc
> > (yesterday's snapshot) on an i386 machine. This is what I get:
> >
> >     ...
> >     Freeing unused kernel memory: 204k freed
> >     Kernel panic: No init found.  Try passing init= option to kernel.
> >
> > If I compile busybox (or any other program placed at /sbin/init)
statically,
> > everything works fine. If I run programs compiled against uClibc in my
> > development environment (Red Hat 7.1), they run okay.
> >
> > That leads me to believe that I have done something wrong in building
uClibc
> > or in installing it onto my target. I'm using whatever compiler comes
with
> > Red Hat (gcc --version reports 2.96). If I run 'ldd libuClibc-0.9.5.so',
it
> > depends on these things:
> >     /lib/libNoVersion.so.1 => /lib/libNoVersion.so.1 (0x40031000)
> >     ld-uClibc.so.0 => not found
> >     libc.so.6 => /lib/i686/libc.so.6 (0x40048000)
> >     /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaaa000)
> >
> > From reading a message in the list archive, that means I'm linking
uClibc
> > against some other library. I am not really sure how that happened. Is
there
> > some option in the Config file that would make this happen?
> >
> > I also am pretty confident that I followed all of the instructions in
the
> > README files for uClibc and busybox, but this is new territory for me.
:)
> >
> > I read through the makefiles for buildroot, and the only difference I
see is
> > that I'm not setting SHARED_LIB_LOADER_PATH. Does that make a
difference?
> > Incidentally, ldd on the libuClibc-0.9.5.so that buildroot creates has
the
> > same output as it does on mine.
> >
> > Any help is greatly appreciated.
> >
> > TIA,
> > Jason
> >
> > _______________________________________________
> > uClibc mailing list
> > uClibc at uclibc.org
> > http://uclibc.org/mailman/listinfo/uclibc
>
>






More information about the uClibc mailing list