ROOT6 compilation on BeagleBone Black

Hi,

since a colleague is willing to provide us with a cosmic trigger system and the corresponding software he wrote for the readout, I am trying to install ROOT6 as required by the control software on a BeagleBone Black (Ubuntu 18.04 LTS) which has a AM3358 ARM Cortex-A8-MCU processor.

The installation of Ubuntu went quite smooth and also the start of the compilation of ROOT6 starts well but then I get the following error:

[ 29%] Building CXX object interpreter/llvm/src/tools/clang/lib/Sema/CMakeFiles/                                                                                                             clangSema.dir/SemaChecking.cpp.o
{standard input}: Assembler messages:
{standard input}:57219: Error: ARM register expected -- `mov'
arm-linux-gnueabihf-g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
interpreter/llvm/src/tools/clang/lib/Sema/CMakeFiles/clangSema.dir/build.make:42                                                                                                             2: recipe for target 'interpreter/llvm/src/tools/clang/lib/Sema/CMakeFiles/clang                                                                                                             Sema.dir/SemaChecking.cpp.o' failed
make[2]: *** [interpreter/llvm/src/tools/clang/lib/Sema/CMakeFiles/clangSema.dir                                                                                                             /SemaChecking.cpp.o] Error 4
CMakeFiles/Makefile2:9629: recipe for target 'interpreter/llvm/src/tools/clang/l                                                                                                             ib/Sema/CMakeFiles/clangSema.dir/all' failed
make[1]: *** [interpreter/llvm/src/tools/clang/lib/Sema/CMakeFiles/clangSema.dir                                                                                                             /all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2

In one occasion I also got the following error:

[ 29%] Building CXX object interpreter/llvm/src/tools/cling/lib/Utils/CMakeFiles/obj.clingUtils.dir/SourceNormalization.cpp.o
[ 29%] Building CXX object interpreter/llvm/src/tools/cling/lib/Utils/CMakeFiles/obj.clingUtils.dir/UTF8.cpp.o
[ 29%] Building CXX object interpreter/llvm/src/tools/cling/lib/Utils/CMakeFiles/obj.clingUtils.dir/Validation.cpp.o
[ 29%] Built target obj.clingUtils
Scanning dependencies of target clingUtils
[ 29%] Linking CXX static library ../../../../lib/libclingUtils.a
[ 29%] Built target clingUtils
Scanning dependencies of target clangSema
[ 29%] Building CXX object interpreter/llvm/src/tools/clang/lib/Sema/CMakeFiles/clangSema.dir/AnalysisBasedWarnings.cpp.o
{standard input}: Assembler messages:
{standard input}:40696: Error: missing expression -- `cmp r2,'
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
interpreter/llvm/src/tools/clang/lib/Sema/CMakeFiles/clangSema.dir/build.make:62: recipe for target 'interpreter/llvm/src/tools/clang/lib/Sema/CMakeFiles/clangSema.dir/AnalysisBasedWarnings.cpp.o' failed
make[2]: *** [interpreter/llvm/src/tools/clang/lib/Sema/CMakeFiles/clangSema.dir/AnalysisBasedWarnings.cpp.o] Error 4
CMakeFiles/Makefile2:9629: recipe for target 'interpreter/llvm/src/tools/clang/lib/Sema/CMakeFiles/clangSema.dir/all' failed
make[1]: *** [interpreter/llvm/src/tools/clang/lib/Sema/CMakeFiles/clangSema.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2

gcc -v gives me:

ubuntu@arm:/sdcard/software/build$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/7/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=arm-linux-gnueabihf- --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-libitm --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-multilib --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf
Thread model: posix
gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)

I checked on the forum for compiling on ARM and for Raspberry PI but did not find anything which could help me with this problem.

Anybody has an idea? Someone else tried to install ROOT6 on a BeagleBone Black?

Thanks

Thorsten

The compiler probably got killed due to memory usage, please try make -j1. ROOT works on ARM, @Axel actually compiled it on a Raspberry Pi Zero before. Also make sure you use a Release build, as debug builds require more memory.

and if make -j1 doesn’t work, remember there’s also:

  • cross compilation
  • groot (which is inches from getting write support for ttrees)

@binet and there is Mathematica which is likely as relevant to this topic :slight_smile:

Back on topic, indeed this looks like a memory issue. We might be able to provide you with a binary. Let me look into this next week. Is there a certain ROOT version you need?

I need a ROOT 6.18/00 “binary” for Ubuntu 14.04 / x86_64. :crazy_face:

Dear Axel,

no, it seems no special ROOT6 version needed. Any should do it.

Thanks a lot!

Thorsten

A bit off-topic, but you should be able to get ROOT v6.18 on Ubuntu 14.04 via conda (conda install -c conda-forge root).

Cheers,
Enrico

I was hoping that you could use a Raspberry build - but I learned that this won’t work. So indeed - you’d have to build it yourself, or pull one from conda if you have that on your BeagleBone.

The error you see is either out of memory or a power issue. How much RAM do you have? If all fails you could create additional swap space on an SDD that you connect to your BeagleBone.

@Wile_E_Coyote I have added an Ubuntu 14 build to https://root.cern.ch/content/release-61800 - enjoy!

@Axel Thanks, I was now able to improve the bug report here: :wink:

1 Like

Does conda build ROOT for arm/arm64 as well as x86?

Definitely not x86, not sure about arm – I was replying to the request for v6.18 on ubuntu 14.04/x86_64

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.