History log of /freebsd-9.3-release/lib/msun/Makefile
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 267654 19-Jun-2014 gjb

Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 263764 26-Mar-2014 dim

MFC r262613:

Merge the projects/clang-sparc64 branch back to head. This brings in
several updates from the llvm and clang trunks to make the sparc64
backend fully functional.

Apart from one patch to sys/sparc64/include/pcpu.h which is still under
discussion, this makes it possible to let clang fully build world and
kernel for sparc64.

Any assistance with testing this on actual sparc64 hardware is greatly
appreciated, as there will unavoidably be bugs left.

Many thanks go to Roman Divacky for his upstream work on getting the
sparc64 backend into shape.

MFC r262985:

Repair a few minor mismerges from r262261 in the clang-sparc64 project
branch. This is also to minimize differences with upstream.


# 225736 22-Sep-2011 kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by: re (implicit)


# 219576 12-Mar-2011 kargl

Take two. Add the missing file that should have been committed
with r219571 and re-enable building of cbrtl.

Implement the long double version for the cube root function, cbrtl.
The algorithm uses Newton's iterations with a crude estimate of the
cube root to converge to a result.

Reviewed by: bde
Approved by: das


# 219572 12-Mar-2011 kargl

Temporary disable the building of cbrtl until I
can determine why svn will not allow one to commit
a new file.

Approved by: das (implicit)


# 219571 12-Mar-2011 kargl

Implement the long double version for the cube root function, cbrtl.
The algorithm uses Newton's iterations with a crude estimate of the
cube root to converge to a result.

Reviewed by: bde
Approved by: das


# 219359 07-Mar-2011 das

Add cexp() and cexpf().

Reviewed by: bde (earlier version)


# 218877 20-Feb-2011 murray

Add complex(3) manual page documenting our partial support for C99
complex arithmetic in libm.

Reviewed by: David Schultz <das@FreeBSD.org>
MFC after: 2 weeks


# 216211 05-Dec-2010 das

Add log2() and log2f().


# 216137 02-Dec-2010 das

Disable gcc's built-in rint() function when compiling s_nearbyint.c.
It results in incorrect optimizations that break nearbyint().

PR: 143358
Reviewed by: bde


# 212531 13-Sep-2010 imp

This is exactly the same as the .else, so remove it.


# 212518 12-Sep-2010 imp

MFtbemd: Move to using MACHINE_CPUARCH, now that it is safe.


# 211934 28-Aug-2010 nwhitehorn

Repair some build breakage introduced in r211725 and garbage collect some
code made obsolete in the same commit.


# 211725 23-Aug-2010 imp

MFtbemd:

Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want
to test of all the CPUs of a given family conform.


# 209877 10-Jul-2010 nwhitehorn

powerpc64 floating-point is identical to powerpc, so use the same
code on both architectures.


# 181377 07-Aug-2008 das

Implement cproj{,f,l}().


# 181074 31-Jul-2008 das

Add implementations of acosl(), asinl(), atanl(), atan2l(),
and cargl().

Reviewed by: bde
sparc64 testing resources from: remko


# 181064 31-Jul-2008 das

Set WARNS=1.

I believe I've committed all the bits necessary to make this compile
on all supported architectures. :crosses fingers:


# 180581 18-Jul-2008 das

Sort the .PATH entries to give a more reasonable order of precedence:
1. architecture-specific files
2. long double format-specific files
3. bsdsrc
4. src
5. man
The original order was virtually the opposite of this.

This should not cause any functional changes at this time. The
difference is only significant when one wants to override, say, a
generic foo.c with a more specialized foo.c (as opposed to foo.S).


# 179882 19-Jun-2008 das

Implement fmodl.
Document fmodl and fix some errors in the fmod manpage.


# 177766 30-Mar-2008 das

Hook remquol() and remainderl() up to the build.


# 177761 30-Mar-2008 das

Implement csqrtl().


# 177760 30-Mar-2008 das

Hook hypotl() and cabsl() up to the build.


# 176722 01-Mar-2008 das

Hook up sqrtl() to the build.


# 176388 18-Feb-2008 das

Add tgammaf() as a simple wrapper around tgamma().


# 176361 17-Feb-2008 das

Hook up sinl(), cosl(), and tanl() to the build.


# 176243 13-Feb-2008 bde

On arches where long double is the same as double, alias ceil(), floor()
and trunc() to the corresponding long double functions. This is not
just an optimization for these arches. The full long double functions
have a wrong value for `huge', and the arches without full long doubles
depended on it being wrong.


# 175462 18-Jan-2008 das

Hook up exp2l() and related docs to the build.


# 175309 14-Jan-2008 das

Implement rintl(), nearbyintl(), lrintl(), and llrintl().
Thanks to bde@ for feedback and testing of rintl().


# 174720 17-Dec-2007 bde

Oops, the previous commit was not needed -- the file was committed but
not checked out due to my checkout error.


# 174715 17-Dec-2007 bde

Don't try to build s_nanl.c before it is committed.


# 174698 17-Dec-2007 das

Add logbl(3) to libm.


# 174684 16-Dec-2007 das

Implement and document nan(), nanf(), and nanl(). This commit
adds two new directories in msun: ld80 and ld128. These are for
long double functions specific to the 80-bit long double format
used on x86-derived architectures, and the 128-bit format used on
sparc64, respectively.


# 174617 15-Dec-2007 das

Implement and document csqrt(3) and csqrtf(3).


# 174561 12-Dec-2007 das

Implement carg(3) and cargf(3).

Rotting in an old src tree since: March 2005


# 169807 21-May-2007 deischen

Bump library versions in preparation for 7.0.

Ok'd by: kan


# 169524 13-May-2007 deischen

Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it.
Warning, after symbol versioning is enabled, going back is not easy
(use WITHOUT_SYMVER at your own risk).

Change the default thread library to libthr.

There most likely still needs to be a version bump for at least the
thread libraries. If necessary, this will happen later.


# 165855 07-Jan-2007 das

Implement modfl().


# 157196 27-Mar-2006 deischen

Add symbol versioning to libm.


# 152133 06-Nov-2005 bde

Detach k_rem_pio2f.c from the build since it is now unused. It is a libm
internal so this shouldn't cause version problems.


# 152117 06-Nov-2005 bde

The logb() functions are not just ieee754 "test" functions, but are
standard in C99 and POSIX.1-2001+. They are also not deprecated, since
apart from being standard they can handle special args slightly better
than the ilogb() functions.

Move their documentation to ilogb.3. Try to use consistent and improved
wording for both sets of functions. All of ieee854, C99 and POSIX
have better wording and more details for special args.

Add history for the logb() functions and ilogbl(). Fix history for
ilogb().


# 148297 22-Jul-2005 kensmith

Bump the shared library version number of all libraries that have not
been bumped since RELENG_5.

Reviewed by: ru
Approved by: re (not needed for commit check but in principle...)


# 145208 17-Apr-2005 ache

Fix truncl.3 MLINKS


# 145170 16-Apr-2005 das

Implement truncl() based on floorl().


# 144772 07-Apr-2005 das

Add roundl(), lroundl(), and llroundl().


# 144650 05-Apr-2005 das

Build exp2(), exp2f(), and related documentation.


# 144091 25-Mar-2005 das

Implement and document remquo() and remquof().


# 143709 16-Mar-2005 das

Document feenableexcept(), fedisableexcept(), and fegetexcept().


# 143222 07-Mar-2005 das

- Remove s_ldexpf.c (now aliased to scalbn.)
- Add nexttoward{,f,l} and nextafterl. On all platforms,
nexttowardl is an alias for nextafterl.
- Add fmal.
- Add man pages for new routines: fmal, nextafterl,
nexttoward{,f,l}, scalb{,l}nl.

Note that on platforms where long double is the same as double, we
generally just alias the double versions of the routines, since doing
so avoids extra work on the source code level and redundant code in
the binary. In particular:

ldbl53 ldbl64/113
fmal s_fma.c s_fmal.c
ldexpl s_scalbn.c s_scalbnl.c
nextafterl s_nextafter.c s_nextafterl.c
nexttoward s_nextafter.c s_nexttoward.c
nexttowardf s_nexttowardf.c s_nexttowardf.c
nexttowardl s_nextafter.c s_nextafterl.c
scalbnl s_scalbn.c s_scalbnl.c


# 142558 26-Feb-2005 das

Un-document the non-extant exp10() and exp10f() functions.
exp10() was a casualty of the transition away from the VAX.


# 141297 04-Feb-2005 das

Remove another vestige of support for a non-IEEE libm.


# 141281 04-Feb-2005 das

Move machine-dependent crud to its own makefile.


# 141280 04-Feb-2005 das

Remove wrappers and other cruft intended to support SVID, mistakes in
C90, and other arcana. Most of these features were never fully
supported or enabled by default.

Ok: bde, stefanf


# 140890 27-Jan-2005 das

- Move the functions presently described in in ieee(3) to their own
manpages. They are not very related, so separating them makes it
easier to add meaningful cross-references and extend some of the
descriptions.
- Move the part of math(3) that discusses IEEE 754 to the ieee(3)
manpage.


# 140609 22-Jan-2005 das

Add fma() and fmaf(), which implement a fused multiply-add operation.


# 140275 15-Jan-2005 das

amd64 assembly versions of sqrt(), lrint(), and llrint() using SSE2.


# 140195 13-Jan-2005 das

Import the subset of J.T. Conklin's single-precision x86-optimized
math routines that appear to be (a) correct and (b) faster than their
MI counterparts on my Pentium 4.

Obtained from: NetBSD


# 140172 13-Jan-2005 stefanf

Implement and document ceill().


# 140143 12-Jan-2005 stefanf

Hook up and document floorl().


# 140088 11-Jan-2005 das

Add MI implementations of [l]lrint[f]() and [l]lround[f]().

Discussed with: bde


# 136385 11-Oct-2004 stefanf

Add and document ilogbl(), a long double version of ilogb().


# 136027 01-Oct-2004 kensmith

Bump the library version numbers for the following libraries:

/lib/{libm,libreadline}
/usr/lib/{libhistory,libopie,libpcap}

in preparation for doing the same thing to RELENG_5. HUGE amounts of
help for determining what to bump provided by kris.

Discussed on: freebsd-current
Approved by: re (not required for commit but something like this should be)


# 133289 07-Aug-2004 stefanf

Add man pages for the cimag(), conj() and creal() functions.


# 133147 04-Aug-2004 das

Replace s_isnan.c and s_isnanf.c with the more compact s_isnan.c from
libc. The externally-visible effect of this is to add __isnanl() to
libm, which means that libm.so.2 can once again link against libc.so.4
when LD_BIND_NOW is set. This was broken by the addition of fdiml(),
which calls __isnanl().


# 132382 19-Jul-2004 das

Fix two bugs in the signbit() macro, which was implemented last year:

- It was added to libc instead of libm. Hopefully no programs rely
on this mistake.

- It didn't work properly on large long doubles because its argument
was converted to type double, resulting in undefined behavior.


# 131852 09-Jul-2004 das

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


# 131676 06-Jul-2004 das

Add C99's nearbyint{,f}() functions as wrappers around rint().
These trivial implementations are about 25 times slower than
rint{,f}() on x86 due to the FP environment save/restore.
They should eventually be redone in terms of fegetround() and
bit fiddling.


# 131320 30-Jun-2004 das

Implement and document fdim{,f,l}, fmax{,f,l}, and fmin{,f,l}.


# 131001 23-Jun-2004 marcel

s/ARCH/ARCH_SUBDIR/g -- This reduces the chance of possible conflicts
with the user's environment.

Wondered why his cross-builds kept failing: marcel


# 130775 20-Jun-2004 stefanf

Completely remove s_ilogb.S as the assembler implementation gives very little
speed improvement to none at all over the MI version.

Submitted by: bde


# 130769 20-Jun-2004 das

Connect scalbln(), trunc(), and the associated documentation to the build.


# 130179 07-Jun-2004 das

Add round(3) and roundf(3) and the associated documentation.

PR: 59797
Submitted by: "Steven G. Kargl" <kargl@troutmask.apl.washington.edu>
Reviewed by: bde (earlier version, last year)


# 130149 06-Jun-2004 das

Add fenv.h, fenv.c, and the associated documentation to the libm
build. To facilitate this, add ${.CURDIR}/${ARCH} to make's search
path unconditionally.

Reviewed by: standards@


# 129864 30-May-2004 stefanf

Add implementations for cimag{,f,l}, creal{,f,l} and conj{,f,l}. They are
needed for cases where GCC's builtin functions cannot be used and for
compilers that don't know about them.

Approved by: das (mentor)


# 129040 07-May-2004 stefanf

Add an implementation of copysignl(), a long double version of copysign().

Approved by: das (mentor)


# 129038 07-May-2004 stefanf

Add an MLINK for fabsl().

Approved by: das (mentor)


# 121497 25-Oct-2003 des

- fabsl.c should be named s_fabsl.c for consistency with libmsun's
documented naming scheme (unfortunately the documentation isn't in the
tree as far as I can tell); no repocopy is required as there is no
history to preserve.

- replace simple and almost-correct implementation with slightly hackish
but definitely correct implementation (tested on i386, alpha, sparc64)
which requires pulling in fpmath.h and the MD _fpmath.h from libc.

- try not to make a mess of the Makefile in the process.

- enterprising minds are encouraged to implement more C99 long double
functions.


# 121419 23-Oct-2003 des

Connect fabsl.c to the build.


# 119017 17-Aug-2003 gordon

Stage 3 of dynamic root support. Make all the libraries needed to run
binaries in /bin and /sbin installed in /lib. Only the versioned files
reside in /lib, the .so symlink continues to live /usr/lib so the
toolchain doesn't need to be modified.


# 117917 23-Jul-2003 bde

Fixed some style bugs (misplacement and misformatting of some commented-out
code).


# 117912 23-Jul-2003 peter

Only provide one copy of the math functions. If we provide a MD function,
do not also provide a __generic_XXX version as well. This is how we
used to runtime select the generic vs i387 versions on the i386 platform.

This saves a pile of #defines in the src/math_private.h file to undo the
__generic_XXX renames in some of the *.c files.


# 117910 23-Jul-2003 peter

No longer need the internal __get_hw_float() function.


# 117909 23-Jul-2003 peter

Now that we do not need to do runtime detection for the broken default
fp emulator, stop doing the runtime selection of hardware or emulated
floating point operations on i386. Note that I have not suppressed the
duplicate compiles yet.

While here, fix the alpha. It has provided specific copysign/copysignf
functions since the beginning of time, but they have never been used.


# 96462 12-May-2002 ru

Added new bsd.incs.mk which handles installing of header files
via INCS. Implemented INCSLINKS (equivalent to SYMLINKS) to
handle symlinking include files. Allow for multiple groups of
include files to be installed, with the powerful INCSGROUPS knob.
Documentation to follow.

Added standard `includes' and `incsinstall' targets, use them
in Makefile.inc1. Headers from the following makefiles were
not installed before (during `includes' in Makefile.inc1):

kerberos5/lib/libtelnet/Makefile
lib/libbz2/Makefile
lib/libdevinfo/Makefile
lib/libform/Makefile
lib/libisc/Makefile
lib/libmenu/Makefile
lib/libmilter/Makefile
lib/libpanel/Makefile

Replaced all `beforeinstall' targets for installing includes
with the INCS stuff.

Renamed INCDIR to INCSDIR, for consistency with FILES and SCRIPTS,
and for compatibility with NetBSD. Similarly for INCOWN, INCGRP,
and INCMODE.

Consistently use INCLUDEDIR instead of /usr/include.

gnu/lib/libstdc++/Makefile and gnu/lib/libsupc++/Makefile changes
were only lightly tested due to the missing contrib/libstdc++-v3.
I fully tested the pre-WIP_GCC31 version of this patch with the
contrib/libstdc++.295 stuff.

These changes have been tested on i386 with the -DNO_WERROR "make
world" and "make release".


# 93211 26-Mar-2002 bde

Resurrect Lite1's gamma() as C99's tgamma(). Minimal changes.


# 91514 28-Feb-2002 obrien

We need an frexp() function.


# 87804 13-Dec-2001 phantom

* remove reference to m68k-dependent sources
* fix comment


# 84403 03-Oct-2001 bde

Don't install manpage links for the nonexistent functions exp2(),
exp2f(), log2() and log2f().


# 74870 27-Mar-2001 ru

MAN[1-9] -> MAN.


# 74804 26-Mar-2001 ru

Don't use MANDEPEND and MANSRC.


# 50476 27-Aug-1999 peter

$Id$ -> $FreeBSD$


# 42044 24-Dec-1998 dfr

Disable building with alpha software completion options until we upgrade
compilers.


# 42029 23-Dec-1998 dfr

Implement fpsetmask() and other fp*() functions. Programs should use

#include <ieeefp.h>

to access these functions instead of the i386 specific

#include <machine/floatingpoint.h>

Submitted by: Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>


# 33662 20-Feb-1998 jb

Add alpha support. m68k crept in too. Oops. 8-)


# 24964 15-Apr-1997 bde

Added -D_ARCH_INDIRECT=i387_ to CFLAGS. _ARCH_INDIRECT will soon be used
to control generation of indirections in ENTRY(). Only msun needs it.

Use ${ARCH} consistently.


# 22993 22-Feb-1997 peter

Revert $FreeBSD$ to $Id$


# 22948 20-Feb-1997 bde

Split up the Bessel function wrapper files so that most wrapper functions
are in their own file.


# 22808 16-Feb-1997 bde

Select between the generic math functions and the i387-specific ones
at runtime.

etc/make.conf:
Nuked HAVE_FPU option.

lib/msun/Makefile:
Always build the i387 objects. Copy the i387 source files at build
time so that the i387 objects have different names. This is simpler
than renaming the files in the cvs repository or repeating half of
bsd.lib.mk to add explicit rules.

lib/msun/src/*.c:
Renamed all functions that have an i387-specific version by adding
`__generic_' to their names.

lib/msun/src/get_hw_float.c:
New file for getting machdep.hw_float from the kernel.

sys/i386/include/asmacros.h:
Abuse the ENTRY() macro to generate jump vectors and associated code.
This works much like PIC PLT dynamic initialization. The PIC case is
messy. The old i387 entry points are renamed. Renaming is easier
here because the names are given by macro expansions.


# 22748 15-Feb-1997 jkh

Put back .endif clobbered by the previous commit, breaking the
build.


# 22731 15-Feb-1997 bde

Disabled the i387 version if log1p(). It just evaluates log(1 + x).
This defeats the point of log1p(). ucbtest reports errors of +-5e+15
ULPs. A correct version would use the i387 fyl2xp1 instruction for
small x and maybe scale to small x. The C version does the scaling
reasonably efficiently, and fyl2px1 is slow (at least on P5s), so not
much is lost by always using the C version (only 25% for small x even
with the broken i387 version; 50% for large x).


# 21673 14-Jan-1997 jkh

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# 21435 08-Jan-1997 wollman

Delete -D_POSIX_MODE and -D_MULTI_LIBM from CFLAGS. They never had any effect
because _IEEE_LIBM always takes priority, so the definition just served
to confuse.

Reviewed by: bde


# 17958 30-Aug-1996 peter

consistancy fixup

Submitted by: "Philippe Charnier" <charnier@xp11.frmug.org>


# 17935 30-Aug-1996 peter

cmp -s || install -c ==> install -C


# 13988 08-Feb-1996 mpp

Correct one small typo in previous commit.


# 13987 08-Feb-1996 mpp

Added some missing MLINKS for section 3 man pages.
Also corrected a few minor formatting errors, file location and cross
references in some of the section 3 man pages.

This shuts up a lot of the output from "manck" for section 3.


# 11682 22-Oct-1995 bde

Undo the the changes in the previous revision (MANSRC now works right again).
Use ${INSTALL} instead of install.


# 11136 02-Oct-1995 wollman

Compress manual pages (if desired) in the obj directory rather
than in the installation destination. Should make release-building
substantially faster. The msun Makefile changes simple adapt to the new
scheme.


# 8870 30-May-1995 rgrimes

Remove trailing whitespace.


# 6953 07-Mar-1995 bde

Obtained from: NetBSD

Remove common sources from ${SRCS} when they are replaced by arch-specific
sources.


# 2574 08-Sep-1994 bde

Install math.h.


# 2122 19-Aug-1994 jkh

Make this puppy actually compile now.
Submitted by: jkh


# 2117 19-Aug-1994 jkh

This commit was generated by cvs2svn to compensate for changes in r2116,
which included commits to RCS files with non-trunk default branches.


# 2116 19-Aug-1994 jkh

J.T. Conklin's latest version of the Sun math library.

-- Begin comments from J.T. Conklin:
The most significant improvement is the addition of "float" versions
of the math functions that take float arguments, return floats, and do
all operations in floating point. This doesn't help (performance)
much on the i386, but they are still nice to have.

The float versions were orginally done by Cygnus' Ian Taylor when
fdlibm was integrated into the libm we support for embedded systems.
I gave Ian a copy of my libm as a starting point since I had already
fixed a lot of bugs & problems in Sun's original code. After he was
done, I cleaned it up a bit and integrated the changes back into my
libm.
-- End comments

Reviewed by: jkh
Submitted by: jtc