Compile error on BusyBox 1.8.2 with uClibc 0.9.28 (undefined references)

Christian Poessinger xcp at mixed-mode.de
Mon Dec 10 03:14:35 PST 2007


Hello,

I'm trying to compile BusyBox 1.8.2 with a gcc 3.3.4 for the ARM920T
target, but i get compilation errors.

I use the following versions in my toolchain:

uClibc 0.9.28
Linux 2.4.21
Linux-libc-headers 2.4.21
gcc 3.3.4

-----------------------------------------------------------------------
| miscutils/taskset.c:17: error: parse error before '*' token
| miscutils/taskset.c:18: warning: function declaration isn't a prototype
| miscutils/taskset.c: In function `__from_cpuset':
| miscutils/taskset.c:22: error: `CPU_SETSIZE' undeclared (first use in
this function)
| miscutils/taskset.c:22: error: (Each undeclared identifier is reported
only once
| miscutils/taskset.c:22: error: for each function it appears in.)
| miscutils/taskset.c:26: warning: implicit declaration of function
`CPU_ISSET'
| miscutils/taskset.c:26: error: `mask' undeclared (first use in this
function)
| miscutils/taskset.c: In function `taskset_main':
| miscutils/taskset.c:47: error: `cpu_set_t' undeclared (first use in
this function)
| miscutils/taskset.c:47: error: parse error before "mask"
| miscutils/taskset.c:68: warning: implicit declaration of function
`CPU_ZERO'
| miscutils/taskset.c:68: error: `new_mask' undeclared (first use in
this function)
| miscutils/taskset.c:69: error: `CPU_SETSIZE' undeclared (first use in
this function)
| miscutils/taskset.c:71: warning: implicit declaration of function
`CPU_SET'
| miscutils/taskset.c:78: warning: implicit declaration of function
`sched_getaffinity'
| miscutils/taskset.c:78: error: `mask' undeclared (first use in this
function)
| miscutils/taskset.c:86: warning: implicit declaration of function
`sched_setaffinity'
| make[1]: *** [miscutils/taskset.o] Error 1
| make[1]: Leaving directory `/work/busybox-1.8.2-r1/busybox-1.8.2'
| make: *** [miscutils] Error 2
| FATAL: oe_runmake failed
----------------------------------------------------------------------------

In the above mentioned versions there are no CPU_* definitions in
sched.h, so it isn't possible
at all to build BusyBox with these versions in the toolchain. Please
correct me if I'm wrong.

In my eyes this issue breaks your README file, which stats:

=======
  Busybox is developed and tested on Linux 2.4 and 2.6 kernels, compiled
  with gcc (the unit-at-a-time optimizations in version 3.4 and later are
  worth upgrading to get, but older versions should work), and linked
against
  uClibc (0.9.27 or greater) or glibc (2.2 or greater).  In such an
  environment, the full set of busybox features should work, and if
  anything doesn't we want to know about it so we can fix it.
=======

Cause this is a header issue (uclibc) and not a compile issue i would
devide this section into <= BusyBox 1.6.x and >= BusyBox 1.7.x

Best regards,
 Christian Pössinger



More information about the busybox mailing list