busybox compile error form ARM core???

Rob Landley rob at landley.net
Tue May 30 18:29:48 UTC 2006


On Tuesday 30 May 2006 3:32 am, yangm wrote:
> Hi Rob Landley:
>     when I add CFLASH D__uClinux__ in menuconfig selection,it compiled
> sucessfully.but there is no information about what library used?
>
> what library should i use default?? I'm a new guy.thanks your help

Your build environment has a C library.  (They all do, it's the library 
containing the actual implementations of all the standard C functions like 
printf().)

The two most common ones on Linux are glibc and uClibc.  You can tell the 
difference with "ls /lib/ld-*" and if you get ld-linux.so you have glibc, and 
if you get ld-uClibc.so you have uClibc.  (The standard one for desktop or 
server systems is glibc, and the standard one for embedded systems is 
uClibc.)  There are other less common C libraries for Linux (newlib, klibc, 
dietlibc, etc), and other systems (like MacOS X or BSD) have their own.  Any 
library you can get to work should be fine, but the ones we test against here 
are glibc and uClibc.

The problem actually seems to be that our test for nommu systems (checking for 
__uClinux__) isn't quite reliable.  We should figure out a better way of 
dealing with that, I'll put it in the todo list for verion 1.3.0...

Glad you got your problem sorted out,

Rob

> Rob Landley 写道:
> > On Tuesday 30 May 2006 2:20 am, yangm wrote:
> >> when complie busybox for ARM platform by make install ,some errors
> >> printed as below:
> >>
> >> /yangm/busybox-1.00/networking/networking.a(inetd.o): In function
> >> `inetd_main':
> >> inetd.o(.text+0xdd4): undefined reference to `daemon'
> >
> > It still can't find the function daemon() in your libc.so
> >
> > We do have a nommu version of that function, but apparently it isn't
> > triggering.  There's this chunk of code, circa line 1314 or so of
> > inetd.c:
> >
> >   if (!(opt & 2)) {
> > #if defined(__uClinux__)
> >     /* reexec for vfork() do continue parent */
> >     vfork_daemon_rexec (0, 0, argc, argv, "-f");
> > #else
> >     daemon (0, 0); /* bb_xdaemon? */
> > #endif /* uClinux */
> >   } else {
> >
> >> syslogd.o(.text+0x9f4): undefined reference to `daemon'
> >> collect2: ld returned 1 exit status
> >> make: *** [busybox] Error 1
> >> [root at yangm-vmware busybox-1.00]#
> >
> > And you're using an oldish version.  (Dunno what the code looks like in
> > that version.)
> >
> >> list below is my menuconfig:
> >> │
> >> ┌─────────────────────────────────────────────────────────────────────┐
> >> │ │ │ [*] Build BusyBox as a static binary (no shared libs) │ │
> >> │ │ [*] Build with Large File Support (for accessing files > 2 GB) │ │
> >> │ │ [*] Do you want to build BusyBox with a Cross Compiler? │ │
> >> │ │ (/bin/arm-elf-gcc/bin/arm-elf-) Cross Compiler prefix │ │
> >> │ │ (-Dfork=vfork ) Any extra CFLAGS options for the compiler?
> >
> > That doesn't tell us about your C library.
> >
> > Rob

-- 
Never bet against the cheap plastic solution.



More information about the busybox mailing list