cvs commit: src/lib/msun Makefile src/lib/msun/src math.h
s_isfinite.c s_isnormal.c src/lib/libc/alpha/gen Makefile.inc
isinf.c src/lib/libc/amd64/gen Makefile.inc isinf.c...
David Schultz
das at FreeBSD.org
Thu Jul 8 20:32:41 PDT 2004
das 2004-07-09 03:32:40 UTC
FreeBSD src repository
Modified files:
lib/msun Makefile
lib/msun/src math.h
lib/libc/alpha/gen Makefile.inc
lib/libc/amd64/gen Makefile.inc
lib/libc/arm/gen Makefile.inc
lib/libc/i386/gen Makefile.inc
lib/libc/ia64/gen Makefile.inc
lib/libc/powerpc/gen Makefile.inc
lib/libc/sparc64/gen Makefile.inc
lib/libc/gen Makefile.inc
Added files:
lib/msun/src s_isfinite.c s_isnormal.c
lib/libc/gen isinf.c isnan.c
Removed files:
lib/libc/alpha/gen isinf.c
lib/libc/amd64/gen isinf.c
lib/libc/arm/gen isinf.c
lib/libc/i386/gen isinf.c
lib/libc/ia64/gen isinf.c
lib/libc/powerpc/gen isinf.c
lib/libc/sparc64/gen isinf.c
Log:
Implement the classification macros isfinite(), isinf(), isnan(), and
isnormal() the hard way, rather than relying on fpclassify(). This is
a lose in the sense that we need a total of 12 functions, but it is
necessary for binary compatibility because we have never bumped libm's
major version number. In particular, isinf(), isnan(), and isnanf()
were BSD libc functions before they were C99 macros, so we can't
reimplement them in terms of fpclassify() without adding a dependency
on libc.so.5. I have tried to arrange things so that programs that
could be compiled in FreeBSD 4.X will generate the same external
references when compiled in 5.X. At the same time, the new macros
should remain C99-compliant.
The isinf() and isnan() functions remain in libc for historical
reasons; however, I have moved the functions that implement the macros
isfinite() and isnormal() to libm where they belong. Moreover,
half a dozen MD versions of isinf() and isnan() have been replaced
with MI versions that work equally well.
Prodded by: kris
Revision Changes Path
1.13 +1 -1 src/lib/libc/alpha/gen/Makefile.inc
1.7 +0 -68 src/lib/libc/alpha/gen/isinf.c (dead)
1.25 +1 -1 src/lib/libc/amd64/gen/Makefile.inc
1.12 +0 -75 src/lib/libc/amd64/gen/isinf.c (dead)
1.2 +1 -1 src/lib/libc/arm/gen/Makefile.inc
1.2 +0 -70 src/lib/libc/arm/gen/isinf.c (dead)
1.112 +1 -1 src/lib/libc/gen/Makefile.inc
1.1 +66 -0 src/lib/libc/gen/isinf.c (new)
1.1 +67 -0 src/lib/libc/gen/isnan.c (new)
1.19 +1 -1 src/lib/libc/i386/gen/Makefile.inc
1.12 +0 -75 src/lib/libc/i386/gen/isinf.c (dead)
1.9 +1 -2 src/lib/libc/ia64/gen/Makefile.inc
1.6 +0 -68 src/lib/libc/ia64/gen/isinf.c (dead)
1.4 +1 -1 src/lib/libc/powerpc/gen/Makefile.inc
1.4 +0 -67 src/lib/libc/powerpc/gen/isinf.c (dead)
1.9 +1 -1 src/lib/libc/sparc64/gen/Makefile.inc
1.6 +0 -69 src/lib/libc/sparc64/gen/isinf.c (dead)
1.48 +2 -1 src/lib/msun/Makefile
1.40 +28 -6 src/lib/msun/src/math.h
1.1 +58 -0 src/lib/msun/src/s_isfinite.c (new)
1.1 +58 -0 src/lib/msun/src/s_isnormal.c (new)
More information about the cvs-all
mailing list