OpenLibm คือความพยายามที่จะมีไลบรารีคณิตศาสตร์ C แบบสแตนด์อโลนคุณภาพสูงแบบพกพา ( libm
) สามารถใช้แบบสแตนด์อโลนในแอปพลิเคชันและการใช้งานภาษาการเขียนโปรแกรม
โปรเจ็กต์นี้เกิดขึ้นจากความต้องการที่จะต้องมี libm
ที่ดีสำหรับภาษาโปรแกรม Julia ที่ทำงานอย่างต่อเนื่องกับคอมไพเลอร์และระบบปฏิบัติการ และในสภาพแวดล้อม 32 บิตและ 64 บิต
OpenLibm สร้างขึ้นบน Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD และ DragonFly BSD มันสร้างด้วยทั้ง GCC และเสียงดังกราว แม้ว่าจะได้รับการทดสอบและใช้กันอย่างแพร่หลายในสถาปัตยกรรม x86 และ x86-64 แต่ OpenLibm ยังรองรับ arm, aarch64, ppc64le, mips, wasm32, riscv, s390(x) และ loongarch64 อีกด้วย
make
บนระบบส่วนใหญ่ แต่ gmake
บน BSDmake USEGCC=1
เพื่อสร้างด้วย GCC นี่เป็นค่าเริ่มต้นบน Linux และ Windowsmake USECLANG=1
เพื่อสร้างด้วยเสียงดังกราว นี่เป็นค่าเริ่มต้นบน OS X, FreeBSD และ OpenBSDmake ARCH=wasm32
เพื่อสร้างไลบรารี wasm32 ด้วยเสียงดังกราวmake ARCH=i386
เพื่อบังคับบิลด์สำหรับ i386 สถาปัตยกรรมที่รองรับอื่นๆ ได้แก่ i486, i586 และ i686 GCC 4.8 เป็นข้อกำหนดขั้นต่ำสำหรับโค้ดเจนที่ถูกต้องบนสถาปัตยกรรม 32 บิตรุ่นเก่า Cross Build ใช้ riscv64
เป็นตัวอย่าง:
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
และนำทางไปยังไดเร็กทอรีด้วย cd build
cmake /path/to/openlibm/
หรือสร้างโปรเจ็กต์ด้วยระบบบิลด์ที่เลือก เช่น cmake /path/to/openlib/ -G "MinGW Makefiles"
cmake --build .
-การกำหนดค่า CMake เริ่มต้นจะสร้างไลบรารีที่ใช้ร่วมกัน ซึ่งสามารถกำหนดค่าได้อย่างง่ายดายโดยใช้ตัวเลือกการกำหนดค่า BUILD_SHARED_LIBS
การสนับสนุน PowerPC สำหรับ openlibm ได้รับการสนับสนุนอย่างดีจาก IBM