Allow cross compilation with BLAS on ARM bare metal (no libc)
Replaces libc references with core::ffi, and update cblas-sys to 0.3.0 which makes the same change there.
Following this change, you can add the following to your Cargo.toml
ndarray = { version = "0.17.1", default-features = false, features = ["blas"] }
blas-src = { version = "0.14", features = ["openblas"] }
openblas-src = { version = "0.10.13", features = ["cblas", "static"] }
and compile a static lib for --target=thumbv7em-none-eabi by providing the following ENV variables:
NO_SHARED=1 NO_FORTRAN=1 USE_THREAD=0 EMBEDDED=1 ONLY_CBLAS=1 ONLY_LAPACK=1 CROSS=1 OPENBLAS_TARGET=ARMV7 OPENBLAS_CC=arm-none-eabi-gcc HOST_CC=gcc
naturally you need the arm-none-eabi-gcc toolchain. Since it's a bit hard to configure, I figured i'd share the details in case you want it for documentation.
Hello! I'm not super familiar with cross-compilation or ARM specifically. You mention that this requires some configuration; was this configuration always necessary? Or is there something about this change that has made it harder to configure?