Hello.
I am trying to link 9base against uClibc. Linkage fails thus:
make[3]: Entering directory
`/home/strake/buildroot-2011.11/output/build/9base-6/awk'
make[3]: warning: jobserver unavailable: using -j1. Add `+' to parent
make rule.
LD awk
../lib9/lib9.a(fltfmt.o): In function `xdtoa':
fltfmt.c:(.text+0x39a): undefined reference to `frexp'
../lib9/lib9.a(strtod.o): In function `fmtstrtod':
strtod.c:(.text+0x994): undefined reference to `ldexp'
collect2: ld returned 1 exit status
make[3]: *** [awk] Error 1
make[3]: Leaving directory
`/home/strake/buildroot-2011.11/output/build/9base-6/awk'
make[2]: *** [all] Error 2
make[2]: Leaving directory
`/home/strake/buildroot-2011.11/output/build/9base-6/awk'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/strake/buildroot-2011.11/output/build/9base-6'
make: *** [/home/strake/buildroot-2011.11/output/build/9base-6/.stamp_built]
Error 2
It fails thus also when built without buidroot, but works when linked
against GNU libc.
uClibc configuration here:
http://hpaste.org/64419
$ nm uClibc-0.9.32/lib/libm.a | human-grep frexp
s_frexp.os:
0000000000000000 r .LC0
0000000000000000 T __GI_frexp
0000000000000000 T frexp
$ nm uClibc-0.9.32/lib/libm.a | human-grep ldexp
s_ldexp.os:
U _GLOBAL_OFFSET_TABLE_
U __GI___finite
0000000000000000 T __GI_ldexp
U __GI_scalbn
U __errno_location
0000000000000000 T ldexp
I looked at lib9/libc.h, and found
extern double frexp(double, int*);
/* extern double ldexp(double, int); <math.h> */
Not sure why one is commented out, and not the other.
I searched the dev_AT_suckless.org archives and found no such trouble.
I haven't a clue why this failed. How can I link this?
Thanks.
Cheers,
strake
Received on Mon Feb 27 2012 - 02:06:43 CET