It's quite clear that __sched_cpualloc/free* functions are either specific to Glibc 2.7 or not implemented in uclibc.
$ objdump -T libc.so.6 | grep __sched
000c4c30 g DF .text 00000043 GLIBC_2.0 __sched_getparam
000c4d10 g DF .text 00000037 GLIBC_2.0 __sched_yield
000c5540 g DF .text 00000029 GLIBC_2.7 __sched_cpualloc
000c4d50 g DF .text 0000003f GLIBC_2.0 __sched_get_priority_max
000c5570 g DF .text 00000020 GLIBC_2.7 __sched_cpufree
000c4d90 g DF .text 0000003f GLIBC_2.0 __sched_get_priority_min
000c5500 g iD .text 0000003f GLIBC_2.6 __sched_cpucount
000c4c80 g DF .text 00000045 GLIBC_2.0 __sched_setscheduler
000c4cd0 g DF .text 0000003f GLIBC_2.0 __sched_getscheduler
I guess these required for the CPU concurrency tasks.
If you have access to uclibc source, perhaps it will be possible to define these functions and recompile the library by referencing Glibc here.. Or better yet, just make a small library with these two functions and link that when creating the binary ELF image.
__sched_cpualloc and __sched_cpufree aren't rocket science, as it turns out. Here is the code as it appears in Glibc:
9 #include <sched.h>
20 #include <stdlib.h>
21
22
23 cpu_set_t *
24 __sched_cpualloc (size_t count)
25 {
26 return malloc (CPU_ALLOC_SIZE (count));
27 }
and
23 void
24 __sched_cpufree (cpu_set_t *set)
25 {
26 free (set);
27 }
finally, CPU_ALLOC_SIZE is also simple:
165 # define __CPU_ALLOC_SIZE(count) \
166 ((((count) + __NCPUBITS - 1) / __NCPUBITS) * 8)
So I guess you can write your own wrappers for uclibc now and test to see if it works.