OK, thanks, I’ll try
OK, I tried everything, nothing works so far. I’ll try to find out what’s going on and I’ll keep you in touch
Thanks a lot Bertrand for having a look ! Let us know if we can be of any help. This framework is a bit cumbersome indeed …
Cheers,
Mathieu
(if there is a simpler recipe with just a Dockerfile that still fails in the same way it might make things easier)
OK, so the build is ongoing. But looking more carefully at your log, it looks like the main issue is the -mtune=cortex-a72.cortex-a53
flag not supported by clang
. So it’s maybe due to the version of clang
used by ROOT.
EDIT: Well, maybe not, I’m lost with the informations in the log files. I’ll try to figure out in the docker build itself
@mathieubenoit @simonspa OK, so it build, and fails. Now, how (and where) can I run cmake to try to change some options? where is the build directory of ROOT? Where is the source directory of ROOT?
Hi @bellenot , sorry, got a bit busy.
The easiest way, in the current image you have, is to mount an extra volume with a checkout of root git repo :
mkir root_src
cd root_src && git clone git://github.com/root-project/root.git && cd ..
docker run -it --net=host -v ${PWD}/root_src:/root_src -v ${PWD}/downloads:/downloads -v ${PWD}/sstate-cache:/sstate-cache gitlab-registry.cern.ch/mbenoit/meta-caribou bash
Then from inside the image, there is a convenient tool call devtool, that you can use to point to bitbake where to pick the source to compile :
devtool modify -n root /root_src/root
[caribou@docker-desktop build]$ devtool modify -n root /root_src/root
NOTE: Starting bitbake server...
INFO: Creating workspace layer in /home/caribou/poky/build/workspace
NOTE: Reconnecting to bitbake server...
NOTE: Retrying server connection (#1)...
NOTE: Started PRServer with DBfile: /home/caribou/poky/build/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 58659, PID: 73
WARNING: Host distribution "centos-8" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Parsing recipes: 100% |################################################################################################################################################| Time: 0:00:54
Parsing of 2276 .bb files complete (0 cached, 2276 parsed). 3404 targets, 135 skipped, 0 masked, 0 errors.
Summary: There was 1 WARNING message shown.
INFO: Recipe root now set up to build from /root_src/root
From now on the local copy of root in root_src in the host PC will be used to compile.
So when you issue bitbake root
, it will use this version, that you can modify at will.
The cmake options are defined , inside the image in file at /home/caribou/poky/meta-caribou/recipes-caribou/root/root_git.bb
You can modify the EXTRA_OECMAKE variable there. I know it is not the most convenient.
@simonspa , is there a way to override the EXTRA_OECMAKE directly from command line, that you know of ?
Would that work for you ?
Cheers,
Mathieu
Thanks @mathieubenoit ! I’ll try to play with that and report back here. (sorry for the basic questions, but as I said I’m a Windows user…)
Hi,
is the build toolchain (specifically compiler and standard library) coming from devtoolset?
ROOT has a bunch of issues with devtoolset, see e.g. Devtoolset/gcc-toolset compatibility
slightly off-topic, but I’d be interested to know if groot
were to run on that SoC.
it should be as simple as:
$> curl -O -L https://go-hep.org/dist/latest/root-ls-linux_arm64.exe
$> chmod +x ./root-ls-linux_arm64.exe
$> ./root-ls-linux_arm64.exe /path/to/some/file.root
So I tried to change an option in root_git.bb
and here is what I get now:
[caribou@bbcc7x64 build]$ bitbake root
NOTE: Started PRServer with DBfile: /home/caribou/poky/build/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 45118, PID: 155
WARNING: Host distribution "centos-8" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Loading cache: 100% |################################################################################################| Time: 0:00:00
Loaded 3400 entries from dependency cache.
Parsing recipes: 100% |##############################################################################################| Time: 0:00:00
Parsing of 2276 .bb files complete (2272 cached, 4 parsed). 3404 targets, 135 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION = "1.44.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "universal"
TARGET_SYS = "arm-poky-linux-gnueabi"
MACHINE = "caribou-zynq7"
DISTRO = "poky"
DISTRO_VERSION = "3.0.4"
TUNE_FEATURES = "arm vfp cortexa9 neon thumb callconvention-hard"
TARGET_FPU = "hard"
meta
meta-poky
meta-yocto-bsp = "zeus:d88d62c20d7d8da85f02edb170dae0280624ad7e"
meta-xilinx-bsp
meta-xilinx-contrib = "zeus:b82343ac5f013926839627cee9dae7106c008ae9"
meta-oe
meta-python
meta-networking = "zeus:2b5dd1eb81cd08bc065bc76125f2856e9383e98b"
meta-caribou = "ROOT-compilation-test:1ed173c77a11a41b04ed8362722b7edc06f50984"
Initialising tasks: 100% |###########################################################################################| Time: 0:00:01
Sstate summary: Wanted 561 Found 33 Missed 528 Current 0 (5% match, 0% complete)
NOTE: Executing Tasks
WARNING: The free space of /home/caribou/poky/build/tmp (rootfs) is running low (0.536GB left)
ERROR: No new tasks can be executed since the disk space monitor action is "STOPTASKS"!
WARNING: The free space of /downloads (/dev/vda1) is running low (0.536GB left)
ERROR: No new tasks can be executed since the disk space monitor action is "STOPTASKS"!
WARNING: The free space of /sstate-cache (/dev/vda1) is running low (0.536GB left)
ERROR: No new tasks can be executed since the disk space monitor action is "STOPTASKS"!
NOTE: Tasks Summary: Attempted 0 tasks of which 0 didn't need to be rerun and all succeeded.
Summary: There were 4 WARNING messages shown.
Summary: There were 3 ERROR messages shown, returning a non-zero exit code.
[caribou@bbcc7x64 build]$
I tried to delete everything in the /home/caribou/poky/build/tmp
directory, but no change
Seems to work fine !
root@ST1_ME-XU1-6CG-1E-D11E:~# chmod +x ./root-ls-linux_arm64.exe
root@ST1_ME-XU1-6CG-1E-D11E:~# ./root-ls-linux_arm64.exe
error: you need to give a ROOT file
Usage: root-ls [options] file1.root [file2.root [...]]
ex:
$> root-ls ./testdata/graphs.root
$> root-ls -t -sinfos ./testdata/graphs.root
options:
-cpu-profile string
path to CPU profile output file
-sinfos
print StreamerInfos
-t print Tree(s) (recursively)
root@ST1_ME-XU1-6CG-1E-D11E:~# ls
pulser_results.root root-ls-linux_arm64.exe
root@ST1_ME-XU1-6CG-1E-D11E:~# ./root-ls-linux_arm64.exe pulser_results.root
=== [pulser_results.root] ===
version: 62401
TCanvas c1_n2 c1_n2 (cycle=1)
TCanvas c1_n3 c1_n3 (cycle=1)
TCanvas c1_n4 c1_n4 (cycle=1)
Hi Bertrand, it seems to be an issue of docker itself running out of space. It will not increase the space beyond a certain limit as to not kill your machine by accident. You can try pruning old image that are not used :
docker system prune
also,
There should be also a setting in the docker runner where you can increase the allowable size for docker. I am not sure where in the windows version, it should be called disk images max size in Docker Settings.
OK, thanks, that was my VM (CentOS) on which I run the docker image which was a bit low on disk space…
Latest news, after creating a dedicated VM, here is what I got when trying to build with bitbake root
:
exit 1 from 'cmake -G 'Ninja' -DCMAKE_MAKE_PROGRAM=ninja $oecmake_sitefile /home/caribou/poky/build/tmp/work/cortexa9t2hf-neon-poky-linux-gnueabi/root/AUTOINC+069afcc949-r0/git -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_INSTALL_BINDIR:PATH=bin -DCMAKE_INSTALL_SBINDIR:PATH=sbin -DCMAKE_INSTALL_LIBEXECDIR:PATH=libexec -DCMAKE_INSTALL_SYSCONFDIR:PATH=/etc -DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=../com -DCMAKE_INSTALL_LOCALSTATEDIR:PATH=/var -DCMAKE_INSTALL_LIBDIR:PATH=lib -DCMAKE_INSTALL_INCLUDEDIR:PATH=include -DCMAKE_INSTALL_DATAROOTDIR:PATH=share -DCMAKE_INSTALL_SO_NO_EXE=0 -DCMAKE_TOOLCHAIN_FILE=/home/caribou/poky/build/tmp/work/cortexa9t2hf-neon-poky-linux-gnueabi/root/AUTOINC+069afcc949-r0/toolchain.cmake -DCMAKE_NO_SYSTEM_FROM_IMPORTED=1 -Drootfit=ON -Dminuit2=ON -Dssl=ON -Dbuiltin_freetype=OFF -Dbuiltin_llvm=ON -Dbuiltin_clang=ON -Dbuiltin_cling=ON -DCMAKE_CXX_STANDARD=14 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DPYTHON_EXECUTABLE=python3 -Wno-dev'
ERROR: Task (/home/caribou/poky/meta-caribou/recipes-caribou/root/root_git.bb:do_configure) failed with exit code '1'
And here is the bottom part of /CMakeError.log
:
Run Build Command(s):ninja cmTC_d2873 && [1/2] Building C object CMakeFiles/cmTC_d2873.dir/CheckSymbolExists.c.o
FAILED: CMakeFiles/cmTC_d2873.dir/CheckSymbolExists.c.o
/home/caribou/poky/build/tmp/work/cortexa9t2hf-neon-poky-linux-gnueabi/root/AUTOINC+069afcc949-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/arm-poky-linu
x-gnueabi-gcc -D_GNU_SOURCE -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 -fstack-protector-strong -D_FORTIFY_SOURCE=2 --sysroot=/home/caribou/poky/build/
tmp/work/cortexa9t2hf-neon-poky-linux-gnueabi/root/AUTOINC+069afcc949-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/home/caribo
u/poky/build/tmp/work/cortexa9t2hf-neon-poky-linux-gnueabi/root/AUTOINC+069afcc949-r0=/usr/src/debug/root/AUTOINC+069afcc949-r0 -fdebug-prefix-
map=/home/caribou/poky/build/tmp/work/cortexa9t2hf-neon-poky-linux-gnueabi/root/AUTOINC+069afcc949-r0=/usr/src/debug/root/AUTOINC+069afcc949-r0
-fdebug-prefix-map=/home/caribou/poky/build/tmp/work/cortexa9t2hf-neon-poky-linux-gnueabi/root/AUTOINC+069afcc949-r0/recipe-sysroot= -fdebug-p
refix-map=/home/caribou/poky/build/tmp/work/cortexa9t2hf-neon-poky-linux-gnueabi/root/AUTOINC+069afcc949-r0/recipe-sysroot-native= -mthumb -mfpu=neon -mfloat-abi=
hard -mcpu=cortex-a9 -fstack-protector-strong -D_FORTIFY_SOURCE=2 --sysroot=/home/caribou/poky/build/tmp/work/cortexa9t2hf-neon-poky-linux-gnueabi/root/AUTOINC+0
69afcc949-r0/recipe-sysroot -fdiagnostics-color=always -Wno-implicit-fallthrough -pipe -Wall -W -pthread -fPIC -Werror=date-time -w -fdiagnostics-color -ffunction-s
ections -fdata-sections -o CMakeFiles/cmTC_d2873.dir/CheckSymbolExists.c.o -c CheckSymbolExists.c
CheckSymbolExists.c:2:10: fatal error: os/signpost.h: No such file or directory
2 | #include <os/signpost.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.
File /home/caribou/poky/build/tmp/work/cortexa9t2hf-neon-poky-linux-gnueabi/root/AUTOINC+069afcc949-r0/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <os/signpost.h>
int main(int argc, char** argv)
{
(void)argv;
#ifndef os_signpost_interval_begin
return ((int*)(&os_signpost_interval_begin))[argc];
#else
(void)argc;
return 0;
#endif
}
(if it’s the relevant part…)
And the only information I could find is: Fail when Using RISCV gcc to build LLVM · Issue #823 · riscv/riscv-gnu-toolchain · GitHub
cool.
(I wasn’t particularly worried as I do use such a thing -kind of: an Altera SocKit DE-10- for a non-LHC experiment where the whole DAQ is in Go, translating an experiment-cooked binary format to LCIO and/or ROOT, still in Go.)
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.