OpenLibm هو جهد للحصول على مكتبة رياضية مستقلة عالية الجودة ومحمولة بلغة C ( libm
). ويمكن استخدامه بشكل مستقل في التطبيقات وتطبيقات لغة البرمجة.
وُلد المشروع بسبب الحاجة إلى الحصول على libm
جيدة للغة برمجة جوليا التي تعمل باستمرار عبر المترجمين وأنظمة التشغيل، وفي بيئات 32 بت و64 بت.
يعتمد OpenLibm على Linux وmacOS وWindows وFreeBSD وOpenBSD وNetBSD وDragonFly BSD. إنه يبني مع كل من دول مجلس التعاون الخليجي والرنين. على الرغم من أنه تم اختباره على نطاق واسع واستخدامه على نطاق واسع في معماريات x86 وx86-64، إلا أن OpenLibm يدعم أيضًا Arm وaarch64 وppc64le وmips وwasm32 وriscv وs390(x) وloongarch64.
make
ذلك على معظم الأنظمة، ولكنه gmake
على أنظمة BSD.make USEGCC=1
للإنشاء باستخدام دول مجلس التعاون الخليجي. هذا هو الإعداد الافتراضي في Linux وWindows.make USECLANG=1
للبناء باستخدام clang. هذا هو الإعداد الافتراضي في أنظمة التشغيل OS X وFreeBSD وOpenBSD.make ARCH=wasm32
لإنشاء مكتبة Wasm32 باستخدام clang.make ARCH=i386
لفرض إنشاء لـ i386. البنى الأخرى المدعومة هي i486 وi586 وi686. يعد الإصدار 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.