DecFP.jl
DecFP.jl copied to clipboard
Build error when using DecFP on 32-bit arm7l
On Debian Stretch ARM platform (Beaglebone):
`julia> Pkg.add("DecFP")
INFO: Installing DecFP v0.4.3
INFO: Building DecFP
=====================================================================[ ERROR: DecFP ]======================================================================
LoadError: Your platform arm-linux-gnueabihf is not supported by this package!
while loading /root/.julia/v0.6/DecFP/deps/build.jl, in expression starting on line 32
===========================================================================================================================================================
=====================================================================[ BUILD ERRORS ]======================================================================
WARNING: DecFP had build errors.
- packages with build errors remain installed in /root/.julia/v0.6
- build the package(s) and all dependencies with `Pkg.build("DecFP")`
- build a single package by running its `deps/build.jl` script
===========================================================================================================================================================
INFO: Package database updated
INFO: METADATA is out-of-date — you may not have the latest version of DecFP
INFO: Use `Pkg.update()` to get the latest versions of your packages
`
DecFP is a wrapper for the Intel Decimal Floating-Point Math Library. It only supports the IA-32, Intel 64 and IA-64 architectures. It doesn't support ARM. There has been some interest #12 in wrapping the IBM decNumber library which would support ARM. @ScottPJones started looking at this at one time https://github.com/ScottPJones/Dec.jl
Which parts of the Intel library are Intel-specific? How hard would it be to port it to ARM, I wonder?
Yes, I haven't had time yet to get back to that - I'd wanted not to just wrap it, but to rewrite it in Julia for better flexibility. I don't know what the licensing issues are with the Intel library, there's one nice thing about it, it supports the "bid" IEEE decimal float format (which is better for software implementations), while the IBM library supports the other format (which is better for hardware, and IBM has added hardware support for that format).
Perhaps try opening an issue at https://github.com/quinnj/DecFPBuilder
Note that this is now built at Yggdrasil (https://github.com/JuliaPackaging/Yggdrasil/blob/master/D/DecFP/build_tarballs.jl), not in the DecFPBuilder package. The binary releases are here: https://github.com/JuliaBinaryWrappers/DecFP_jll.jl
It appears to have been compiled for ARM 7l (https://github.com/JuliaBinaryWrappers/DecFP_jll.jl/releases/download/DecFP-v2.0.2%2B0/DecFP.v2.0.2.armv7l-linux-gnueabihf.tar.gz) at https://github.com/JuliaBinaryWrappers/DecFP_jll.jl/releases, so is this resolved?
It compiles, but I think there are run time errors. I will look at this in the next few days.
#133 adds CI for both armv7l and aarch64 with Drone CI
Is this still an issue?
Seems to be. Drone CI is failing with:
signal (11): Segmentation fault
127s
88 in expression starting at /drone/src/src/DecFP.jl:281
127s
89 __bid64_from_string at /root/.julia/artifacts/4d827acbd6c8d7227293f7b64c440ea3f6c2f4ec/lib/libbid.so (unknown line)
127s
90 Allocations: 8286312 (Pool: 8285410; Big: 902); GC: 23
127s
91 ERROR: LoadError: Failed to precompile DecFP [55939f99-70c6-5e9b-8bb0-5071ed7d61fd] to /root/.julia/compiled/v1.3/DecFP/QmCKT_9EaeH.ji.
Not sure if this was fixed by #91? Currently we aren't testing on 32-bit ARM (#154).
I'm out of town at the moment but later this week I can test 32-bit ARM locally.