OpenLibm adalah upaya untuk memiliki perpustakaan matematika C ( libm
) yang berkualitas tinggi, portabel, dan mandiri. Ini dapat digunakan secara mandiri dalam aplikasi dan implementasi bahasa pemrograman.
Proyek ini lahir dari kebutuhan untuk memiliki libm
yang baik untuk bahasa pemrograman Julia yang bekerja secara konsisten di seluruh kompiler dan sistem operasi, dan dalam lingkungan 32-bit dan 64-bit.
OpenLibm dibangun di Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD, dan DragonFly BSD. Itu dibangun dengan GCC dan dentang. Meskipun sebagian besar diuji dan digunakan secara luas pada arsitektur x86 dan x86-64, OpenLibm juga mendukung arm, aarch64, ppc64le, mips, wasm32, riscv, s390(x) dan loongarch64.
make
di sebagian besar sistem, tetapi gmake
di BSD.make USEGCC=1
untuk membangun dengan GCC. Ini adalah default di Linux dan Windows.make USECLANG=1
untuk membangun dengan dentang. Ini adalah default pada OS X, FreeBSD, dan OpenBSD.make ARCH=wasm32
untuk membangun perpustakaan wasm32 dengan dentang.make ARCH=i386
untuk memaksakan build untuk i386. Arsitektur lain yang didukung adalah i486, i586, dan i686. GCC 4.8 adalah persyaratan minimum untuk codegen yang benar pada arsitektur 32-bit lama. Cross Build Ambil riscv64
sebagai contoh:
qemu-riscv64-static
, gcc-riscv64-linux-gnu
ARCH=riscv64
TRIPLE= $ARCH -linux-gnu
make ARCH= $ARCH TOOLPREFIX= $TRIPLE - -j
make -C test ARCH= $ARCH TOOLPREFIX= $TRIPLE - -j
qemu- $ARCH -static -L . -L /usr/ $TRIPLE / test/test-float
qemu- $ARCH -static -L . -L /usr/ $TRIPLE / test/test-double
mkdir build
dan navigasikan ke dalamnya dengan cd build
.cmake /path/to/openlibm/
atau menghasilkan proyek dengan sistem pembangunan pilihan misalnya cmake /path/to/openlib/ -G "MinGW Makefiles"
.cmake --build .
.Konfigurasi CMake default membangun perpustakaan bersama, ini dapat dengan mudah dikonfigurasi menggunakan opsi konfigurasi BUILD_SHARED_LIBS.
Dukungan PowerPC untuk openlibm disponsori dengan baik oleh IBM.