openlibm
v0.8.4
OpenLibm は、高品質で移植可能なスタンドアロン C 数学ライブラリ ( libm
) を実現するための取り組みです。アプリケーションやプログラミング言語の実装でスタンドアロンで使用できます。
このプロジェクトは、コンパイラやオペレーティング システム間、および 32 ビット環境と 64 ビット環境で一貫して動作する、Julia プログラミング言語用の優れたlibm
の必要性から生まれました。
OpenLibm は、Linux、macOS、Windows、FreeBSD、OpenBSD、NetBSD、および DragonFly BSD 上に構築されています。 GCC と Clang の両方を使用してビルドします。 OpenLibm は、x86 および x86-64 アーキテクチャで大部分がテストされ広く使用されていますが、arm、aarch64、ppc64le、mips、wasm32、riscv、s390(x)、および loongarch64 もサポートしています。
make
ですが、BSD ではgmake
。make USEGCC=1
を使用します。これは Linux および Windows のデフォルトです。make USECLANG=1
を使用します。これは、OS X、FreeBSD、および OpenBSD のデフォルトです。make ARCH=wasm32
を使用して、clang で wasm32 ライブラリをビルドします。make ARCH=i386
を使用します。サポートされているその他のアーキテクチャは、i486、i586、および i686 です。 GCC 4.8 は、古い 32 ビット アーキテクチャで正しいコード生成を行うための最小要件です。クロスビルド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 のご厚意により後援されました。