|
1 | | -## OpenLIBM |
| 1 | +## OpenLibm |
2 | 2 |
|
3 | | -OpenLIBM is an effort to have a high quality standalone LIBM |
4 | | -library. It is meant to be used standalone in applications and |
5 | | -programming language implementations. |
| 3 | +OpenLibm is an effort to have a high quality, portable, standalone |
| 4 | +`libm` library. It can be used standalone in applications and |
| 5 | +programming language implementations. |
6 | 6 |
|
7 | | -OpenLibm builds on Linux, Mac OS X, and Windows, and with little effort, |
8 | | -should build on FreeBSD as well. It builds with both, GCC and clang. |
| 7 | +The project was born out of a need to have a good `libm` for the |
| 8 | +[Julia programming langage](http://www.julialang.org) that worked |
| 9 | +consistently across compilers and operating systems, and in 32-bit and |
| 10 | +64-bit environments. |
9 | 11 |
|
10 | | -The OpenLIBM code derives from the FreeBSD msun implementation, which |
11 | | -in turn derives from FDLIBM 5.3. As a result, it has a number of fixes and |
12 | | -updates that have accumulated over the years in msun, and also optimized |
13 | | -assembly versions of many functions. |
| 12 | +### History |
14 | 13 |
|
15 | | -### Build instructions: |
| 14 | +The OpenLibm code derives from the [FreeBSD |
| 15 | +msun](http://ftp.freebsd.org/pub/FreeBSD/FreeBSD/development/FreeBSD-CVS/src/lib/msun/) |
| 16 | +implementation, which in turn derives from [FDLIBM |
| 17 | +5.3](http://www.netlib.org/fdlibm/). As a result, it includes a number |
| 18 | +of fixes and updates to FDLIBM that have accumulated over the years in |
| 19 | +`msun`, and optimized versions of many functions. |
16 | 20 |
|
17 | | -1. `make` or `make USEGCC=1` to build with GCC. |
18 | | -2. `make USECLANG=1` to build with clang. |
| 21 | +### Platform support |
| 22 | + |
| 23 | +OpenLibm builds on Linux, Mac OS X, and Windows, and with little |
| 24 | +effort, should build on FreeBSD as well. It builds with both, GCC and |
| 25 | +clang. Although largely tested on x86, it also includes experimental |
| 26 | +support for ARM. The original `msun` also includes support for mips, |
| 27 | +sparc64, powerpc, ia64, and alpha. These are present in the OpenLibm |
| 28 | +source tree, but no attempt has been made to build any of these. |
| 29 | + |
| 30 | +### Build instructions |
| 31 | + |
| 32 | +1. `make` or `make USEGCC=1` to build with GCC. This is the default on |
| 33 | +Linux and Windows. |
| 34 | +2. `make USECLANG=1` to build with clang. This is the default on OS X. |
0 commit comments