xref: /relibc/openlibm/README.md (revision 73efb7903236482d1c254567c50f20ef14d90592)
1## OpenLibm
2
3[OpenLibm](http://www.openlibm.org) is an effort to have a high quality, portable, standalone
4C mathematical library ([`libm`](http://en.wikipedia.org/wiki/libm)).
5It can be used standalone in applications and programming language
6implementations.
7
8The project was born out of a need to have a good `libm` for the
9[Julia programming langage](http://www.julialang.org) that worked
10consistently across compilers and operating systems, and in 32-bit and
1164-bit environments.
12
13### History
14
15The OpenLibm code derives from the [FreeBSD
16msun](http://svnweb.freebsd.org/base/head/lib/msun/) and [OpenBSD
17libm](http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libm/src/)
18implementations, which in turn derives from [FDLIBM
195.3](http://www.netlib.org/fdlibm/). As a result, it includes a number
20of fixes and updates to FDLIBM that have accumulated over the years in
21`msun`, and optimized versions of many functions.
22
23### Platform support
24
25OpenLibm builds on Linux, Mac OS X, and Windows, and with little
26effort, should build on FreeBSD as well. It builds with both GCC and
27clang. Although largely tested on x86, it also includes experimental
28support for ARM. The original `msun` also includes support for mips,
29sparc64, powerpc, ia64, and alpha. These are present in the OpenLibm
30source tree, but no attempt has been made to build any of these.
31
32### Build instructions
33
341. `make` or `make USEGCC=1` to build with GCC. This is the default on
35   Linux and Windows.
362. `make USECLANG=1` to build with clang. This is the default on OS X.
37