Only define isnan, isnanf, __isnan and __isnanf in libc.so, not in

libc.a and libc_p.a.  In addition, define isnan in libm.a and libm_p.a,
but not in libm.so.

This makes it possible to statically link executables using both isnan
and isnanf with libc and libm.

Tested by:	kargl
MFC after:	1 week
This commit is contained in:
Dimitry Andric 2012-11-10 21:22:10 +00:00
parent 1750b7b9c8
commit 0779690c2e
2 changed files with 6 additions and 3 deletions

View File

@ -35,6 +35,7 @@
* binary compat until we can bump libm's major version number.
*/
#ifdef PIC
__weak_reference(__isnan, isnan);
__weak_reference(__isnanf, isnanf);
@ -55,3 +56,4 @@ __isnanf(float f)
u.f = f;
return (u.bits.exp == 255 && u.bits.man != 0);
}
#endif /* PIC */

View File

@ -30,8 +30,9 @@
#include "fpmath.h"
/* Provided by libc */
#if 0
/* Provided by libc.so */
#ifndef PIC
#undef isnan
int
isnan(double d)
{
@ -40,7 +41,7 @@ isnan(double d)
u.d = d;
return (u.bits.exp == 2047 && (u.bits.manl != 0 || u.bits.manh != 0));
}
#endif
#endif /* !PIC */
int
__isnanf(float f)