0

i am trying to use HDF5 package in julia and i'm not succeeding, i get the following error when trying to add it.

julia> Pkg.add("HDF5")
      Updating registry at `~/.julia/registries/General`
      Updating git-repo `https://github.com/JuliaRegistries/General.git`
      Resolving package versions...
      Updating `~/.julia/environments/v1.0/Project.toml`
      [no changes]
      Updating `~/.julia/environments/v1.0/Manifest.toml`
      [no changes]

and i get the following when building it.

julia> Pkg.build("HDF5")
       Building CMake → `~/.julia/packages/CMake/nSK2r/deps/build.log`
       Building Blosc → `~/.julia/packages/Blosc/lzFr0/deps/build.log`
       Building HDF5 ─→ `~/.julia/packages/HDF5/Y9Znv/deps/build.log`
      ┌ Error: Error building `HDF5`:
      │ ERROR: LoadError: Your platform ("aarch64-linux-gnu", parsed as "aarch64-linux-gnu-gcc4-cxx11") is not supported by this package!
      │ Stacktrace:
      │  [1] error(::String) at ./error.jl:33
      │  [2] top-level scope at /home/nvidia/.julia/packages/HDF5/Y9Znv/deps/build.jl:35
      │  [3] include at ./boot.jl:317 [inlined]
      │  [4] include_relative(::Module, ::String) at ./loading.jl:1038
      │  [5] include(::Module, ::String) at ./sysimg.jl:29
      │  [6] include(::String) at ./client.jl:388
      │  [7] top-level scope at none:0
      │ in expression starting at /home/nvidia/.julia/packages/HDF5/Y9Znv/deps/build.jl:31
      └ @ Pkg.Operations ~/julia/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1068

this is the gcc installed.

nvidia@tegra-ubuntu:~$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/5/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.11' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-arm64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-arm64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-arm64 --with-arch-directory=aarch64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.11)

thanks for your help.

Amaresh S M
  • 2,936
  • 2
  • 13
  • 25
  • Your tegra has ARM CPU, but the package supports only intel based cpus https://github.com/JuliaIO/HDF5.jl/blob/master/deps/build.jl#L14 – Alex Nikiforov Jul 25 '19 at 00:14

1 Answers1

0

I had the same horrible trouble with Julia built on ARM. It seems that this dependence on custom binaries has been introduced in HDF5 v0.12. So for me it worked to force an older version of HDF5:

pkg> add HDF5@0.11.1
pkg> pin HDF5@0.11.1

Before, I have installed (in Debian/armhf) hdf5-tools, libhdf5-dev.

Hope this helps. But I think we shall inform the developers, as the HDF5 is a very important pkg (being used by JLD, without which the Julia is hardly usable), and restricting to a very small set of supported architectures is just stupid.