ldexpf in 6.x amd64 [summary]
kael.fischer at gmail.com
Mon Dec 11 11:07:02 PST 2006
The problem is ldexpf(3) is not found on some amd64 systems. I
believe this problem exists on all 6.0-6.1 RELEASE amd64 systems, and
on the 6.2 RELENG tags.
How to check if you are effected:
grep the 'nm -D /usr/lib/libm.so' output for 'ldexp'. You should get
a line matching 'ldexpf', e.g.:
# nm -D /usr/lib/libm.so | grep ldexp
000000000000ff90 T ldexpf
000000000000ff70 T ldexpl
If you do not find the ldexpf symbol, you are effected.
The required version of src/lib/msun/src/s_scalbnf.c is 1.8 which has
been included in all 6.x RELENGs.
The required assembly version (src/lib/msun/amd64/s_scalbnf.S 1.2)
_is_not_correct_ in _any_ RELEASE to date. It is correct in HEAD but
not in 6.0, 6.1 or 6.2 RELENGs.
Build, Test, Install:
After updating your s_scalbnf.S, you can 'make clean; make build' in
src/lib/msun. Your new library will be
/usr/obj/usr/src/lib/msun/libm.so.4. Check for ldexpf, as above. And
'make install' if the build worked.
Note that this still needs to be fixed in the future releases, and
that this is really a 'bad thing'.
Thanks to Steve Kargl for getting me pointed in the right direction.
More information about the freebsd-amd64