Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Dec 2006 10:58:36 -0800
From:      "Kael Fischer" <kael.fischer@gmail.com>
To:        freebsd-amd64@freebsd.org
Subject:   Re: ldexpf in 6.x amd64 [summary]
Message-ID:  <cd02cc220612111058q3c1e39aav46a728680413376@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hi Everybody:

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.

-DIAGNOSIS-
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
                  U ldexp
  000000000000ff90 T ldexpf
  000000000000ff70 T ldexpl

If you do not find the ldexpf symbol, you are effected.

-FIX-
Required sources:
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.
(http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/msun/amd64/s_scalbnf.S).

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.

-Kael



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?cd02cc220612111058q3c1e39aav46a728680413376>