Fork of the OpenLibm math library with fx-9860G and fx-CG 50 support.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Go to file
Yann MAGNIN 1ce46633c0
OpenLibm - v1.1.0 : vxSDK update
3 months ago
.github Update FUNDING.yml 3 years ago
aarch64 Make fenv methods static on additional platforms. 2 years ago
amd64 Revert "Export `fenv` functions on all platforms (#213)" 2 years ago
arm Remove unused Symbol.map files. 8 years ago
bsdsrc add missing weak references for long double functions 2 years ago
docs Update list of libm libraries 3 years ago
i387 Fix invalid assembly directive caught by clang 7 years ago
include OpenLibm - v1.1.0 : vxSDK update 3 months ago
ld80 Fix undefined reference to __fpgetprec on i386 7 years ago
ld128 Fix compilation on AArch64 6 years ago
mips Using cdefs-compat.h and stdint.h instead <sys/types.h> 5 years ago
powerpc Make fenv methods static on additional platforms. 2 years ago
s390 s390(x) port 4 years ago
sh3eb fenv: provide environment primitives 2 years ago
src add missing weak references for long double functions 2 years ago
test Fix #211 2 years ago
wasm32 wasm32 support (#192) 4 years ago
.gitignore OpenLibm - v1.0.2 : vxSDK update 11 months ago
.mailmap Add mailmap 11 years ago
.travis.yml travis: Add mips, mipsel, mips64el build. 5 years ago
LICENSE.md Update references to JuliaLang to point to JuliaMath (#182) 5 years ago
Make.inc add vxsdk support + enable PIC for sh3eb arch 1 year ago
Makefile OpenLibm - v1.1.0-rc1 : vxSDK update 3 months ago
README-OpenLibm.md sh3eb: move older README 2 years ago
README.md README: update make command due to toolchain changes 2 years ago
appveyor.yml Update appveyor.yml 5 years ago
openlibm.pc.in Update references to JuliaLang to point to JuliaMath (#182) 5 years ago
vxsdk.make OpenLibm - v1.1.0-rc1 : vxSDK update 3 months ago
vxsdk.toml OpenLibm - v1.1.0-rc0 : vxSDK update 3 months ago

README.md

Soft-FP sh3eb port of OpenLibm

This is a fork of OpenLibm with support for the sh3eb architecture, intended for add-in programming on fx-9860G and fx-CG 50.

Installing with GiteaPC

This library can be installed automatically with GiteaPC.

% giteapc install Lephenixnoir/OpenLibm

Building manually

You will need a GCC toolchain built with --target=sh3eb-elf, such as the sh-elf-gcc commonly used on Planète Casio.

First locate the compiler's install directory. This is normally the lib/gcc/sh3eb-elf/<version>/ folder inside the install path of the compiler.

% PREFIX=$(sh-elf-gcc --print-search-dirs | grep install | sed 's/install: //')

You can then build and install the static libopenlibm.a archive and the headers.

% make USEGCC=1 TOOLPREFIX=sh-elf- AR=sh-elf-ar CC=sh-elf-gcc libdir="$PREFIX" includedir="$PREFIX/include" install-static install-headers

Using in a Makefile-based add-in

Link with -lopenlibm as you would do with -lm. Since OpenLibm headers reference themselves by file name (#include <openlibm_complex.h>) even though they are installed in a subfolder, you need a -I flag:

CFLAGS += -I $(shell sh-elf-gcc -print-file-name=include/openlibm)
LDFLAGS += -lopenlibm

Using in a CMake-based add-in

When using CMake with the fxSDK, add the include folder and library like this.

target_include_directories(<TARGET> PRIVATE "${FXSDK_COMPILER_INSTALL}/include/openlibm")
target_link_libraries(<TARGET> -lopenlibm)

README and Licensing

See the original README file in README-OpenLibm.md. OpenLibm contains code covered by various licenses, see LICENSE.md.