`Vc.pcm` not found when running root after building with external Vc with runtime_cxxmodules ON
Check duplicate issues.
- [x] Checked for duplicates
Description
I have been trying to turn runtime_cxxmodules ON in Spack (https://github.com/spack/spack/pull/50432) and I have found that when building with a standalone Vc and then running root I get the following error (reproduced on Alma 9 with GCC 14, on Ubuntu 24.04 with GCC 13 and in the Spack CI).
<<< cling interactive line includer >>>: fatal error: module file '/tmp/root/spack-stage/spack-stage-root-6.36.00-3zoafy6mjx64vkgps6eq5nhuamqu57ri/spack-build-3zoafy6/lib/Vc.pcm' not found: module file not found
<<< cling interactive line includer >>>: note: imported by module 'MathCore' in '/cvmfs/sw-nightlies.hsf.org/key4hep/releases/2025-05-31/x86_64-almalinux9-gcc14.2.0-opt/root/6.36.00-3zoafy/lib/root/MathCore.pcm'
input_line_4:2:2: error: use of undeclared identifier 'include'
followed by a bunch of errors that depend on exactly what I'm running with root. The /tmp/root... folder is the build directory.
Reproducer
Build Vc standalone, and then build ROOT with -Dbuiltin_vc=OFF and -Druntime_cxxmodules=ON and then delete the build directory. If the build directory is not deleted, the error is not triggered since Vc.pcm can be found (my guess). This problem is also fixed by changing to -Dbuiltin_vc=ON.
Full build command from Spack:
cmake .. '-DCMAKE_BUILD_TYPE:STRING=Release' '-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON' '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION:BOOL=OFF' '-DCMAKE_POLICY_DEFAULT_CMP0090:STRING=NEW' '-DCMAKE_FIND_USE_PACKAGE_REGISTRY:BOOL=OFF' '-DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON' '-Dfail-on-missing:BOOL=ON' '-Dfortran:BOOL=OFF' '-Dgminimal:BOOL=ON' '-Dlibcxx:BOOL=OFF' '-Droottest:BOOL=OFF' '-Drpath:BOOL=ON' '-Dshared:BOOL=ON' '-Dsoversion:BOOL=ON' '-Dtesting:BOOL=OFF' '-DCLING_CXX_PATH:STRING=/cvmfs/sw.hsf.org/contrib/x86_64-almalinux9-gcc11.4.1-opt/gcc/14.2.0-yuyjov/bin/g++' '-Dbuiltin_cfitsio:BOOL=OFF' '-Dbuiltin_davix:BOOL=OFF' '-Dbuiltin_fftw3:BOOL=OFF' '-Dbuiltin_freetype:BOOL=OFF' '-Dbuiltin_ftgl:BOOL=OFF' '-Dbuiltin_gif:BOOL=ON' '-Dbuiltin_gl2ps:BOOL=OFF' '-Dbuiltin_glew:BOOL=OFF' '-Dbuiltin_gsl:BOOL=OFF' '-Dbuiltin_llvm:BOOL=ON' '-Dbuiltin_lz4:BOOL=OFF' '-Dbuiltin_lzma:BOOL=OFF' '-Dbuiltin_nlohmannjson:BOOL=OFF' '-Dbuiltin_openssl:BOOL=OFF' '-Dbuiltin_pcre:BOOL=OFF' '-Dbuiltin_tbb:BOOL=OFF' '-Dbuiltin_unuran:BOOL=OFF' '-Dbuiltin_vc:BOOL=OFF' '-Dbuiltin_vdt:BOOL=OFF' '-Dbuiltin_veccore:BOOL=OFF' '-Dbuiltin_xrootd:BOOL=OFF' '-Dbuiltin_xxhash:BOOL=OFF' '-Dbuiltin_zlib:BOOL=OFF' '-Dbuiltin_gif:BOOL=ON' '-Dbuiltin_jpeg:BOOL=OFF' '-Dbuiltin_png:BOOL=OFF' '-Dafdsmrgd:BOOL=OFF' '-Dafs:BOOL=OFF' '-Dalien:BOOL=OFF' '-Darrow:BOOL=OFF' '-Dasimage:BOOL=ON' '-Dbonjour:BOOL=OFF' '-Dcastor:BOOL=OFF' '-Dccache:BOOL=OFF' '-Dchirp:BOOL=OFF' '-Dcocoa:BOOL=OFF' '-Ddataframe:BOOL=ON' '-Ddavix:BOOL=ON' '-Ddaos:BOOL=OFF' '-Ddcache:BOOL=OFF' '-Dfftw3:BOOL=ON' '-Dfitsio:BOOL=OFF' '-Dftgl:BOOL=ON' '-Dgdml:BOOL=ON' '-Dgeom:BOOL=ON' '-Dgeombuilder:BOOL=OFF' '-Dgenvector:BOOL=ON' '-Dgeocad:BOOL=OFF' '-Dgfal:BOOL=OFF' '-Dgl2ps:BOOL=ON' '-Dglite:BOOL=OFF' '-Dglobus:BOOL=OFF' '-Dgviz:BOOL=OFF' '-Dhdfs:BOOL=OFF' '-Dhttp:BOOL=ON' '-Dimt:BOOL=ON' '' '-Dkrb5:BOOL=OFF' '-Dldap:BOOL=OFF' '-Dmathmore:BOOL=ON' '' '-Dminimal:BOOL=OFF' '-Dminuit:BOOL=ON' '-Dmlp:BOOL=ON' '-Dmonalisa:BOOL=OFF' '-Dopengl:BOOL=ON' '' '' '-Dpythia8:BOOL=OFF' '' '' '-Dr:BOOL=ON' '-Drfio:BOOL=OFF' '-Droofit:BOOL=ON' '-Droot7:BOOL=ON' '-Druby:BOOL=OFF' '-Dsapdb:BOOL=OFF' '-Dshadowpw:BOOL=OFF' '-Dspectrum:BOOL=ON' '-Dsqlite:BOOL=ON' '-Dsrp:BOOL=OFF' '-Dssl:BOOL=ON' '' '-Dtbb:BOOL=ON' '-Dtcmalloc:BOOL=OFF' '-Dtmva:BOOL=ON' '-Dunuran:BOOL=ON' '-Duse_gsl_cblas:BOOL=OFF' '-Dvc:BOOL=ON' '-Dvdt:BOOL=ON' '-Dveccore:BOOL=OFF' '' '-Dx11:BOOL=ON' '-Dxft:BOOL=ON' '-Dxml:BOOL=ON' '-Dxrootd:BOOL=ON' '-Dcuda:BOOL=OFF' '-Dwebgui:BOOL=ON' '-Dtmva-cpu:BOOL=ON' '-Dtmva-gpu:BOOL=OFF' '-Dtmva-pymva:BOOL=OFF' '-Dcudnn:BOOL=OFF' '-Dpyroot:BOOL=ON' '-Dtmva-sofie:BOOL=OFF' '-Dtmva-cudnn:BOOL=ON' '-Dtmva-cudnn:BOOL=OFF' '-Dtpython:BOOL=ON' '-Dmysql:BOOL=OFF' '-Dpgsql:BOOL=OFF' '-Dodbc:BOOL=OFF' '-Dasimage_tiff:BOOL=ON' '-DCMAKE_CXX_STANDARD:STRING=20'
ROOT version
I only tested this on v6.36.00
Installation method
Spack, source
Operating system
Linux: Alma 9 and Ubuntu 24.04
Additional context
The LCG stacks are also built with external Vc, but they do not see this problem because <Vc>/include is added to ROOT_INCLUDE_PATH, which is another way of solving this issue. Note that sourcing thisroot.sh does not add <Vc>/include to ROOT_INCLUDE_PATH.
Hi! Thanks for the report. I think @LukasBreitwieser is already looking at the equivalent problem in a different environment, so we're on it.
This is not fixed after https://github.com/root-project/root/pull/19179 and 3f8c86e509bf3af48c7ef8ed39147e7883a2f9ae, I keep getting the same error about Vc.pcm not found in the build directory building today's master (3f8c86e509bf3af48c7ef8ed39147e7883a2f9ae). Build options for completeness from Spack (same as before but I think I had to add builtin_civetweb:
'-Dfail-on-missing:BOOL=ON' '-Dfortran:BOOL=OFF' '-Dgminimal:BOOL=ON' '-Dgnuinstall:BOOL=ON' '-Dlibcxx:BOOL=OFF' '-Droottest:BOOL=OFF' '-Drpath:BOOL=ON' '-Druntime_cxxmodules:BOOL=ON' '-Dshared:BOOL=ON' '-Dsoversion:BOOL=ON' '-Dtesting:BOOL=OFF' '-DCLING_CXX_PATH:STRING=/cvmfs/sw.hsf.org/contrib/x86_64-almalinux9-gcc11.4.1-opt/gcc/14.2.0-yuyjov/bin/g++' '-Dbuiltin_cfitsio:BOOL=OFF' '-Dbuiltin_civetweb:BOOL=ON' '-Dbuiltin_davix:BOOL=OFF' '-Dbuiltin_fftw3:BOOL=OFF' '-Dbuiltin_freetype:BOOL=OFF' '-Dbuiltin_ftgl:BOOL=OFF' '-Dbuiltin_gif:BOOL=OFF' '-Dbuiltin_gl2ps:BOOL=OFF' '-Dbuiltin_glew:BOOL=OFF' '-Dbuiltin_gsl:BOOL=OFF' '-Dbuiltin_llvm:BOOL=ON' '-Dbuiltin_lz4:BOOL=OFF' '-Dbuiltin_lzma:BOOL=OFF' '-Dbuiltin_nlohmannjson:BOOL=OFF' '-Dbuiltin_openssl:BOOL=OFF' '-Dbuiltin_pcre:BOOL=OFF' '-Dbuiltin_tbb:BOOL=OFF' '-Dbuiltin_unuran:BOOL=OFF' '-Dbuiltin_vc:BOOL=OFF' '-Dbuiltin_vdt:BOOL=OFF' '-Dbuiltin_veccore:BOOL=OFF' '-Dbuiltin_xrootd:BOOL=OFF' '-Dbuiltin_xxhash:BOOL=OFF' '-Dbuiltin_zlib:BOOL=OFF' '-Dbuiltin_gif:BOOL=OFF' '-Dbuiltin_jpeg:BOOL=OFF' '-Dbuiltin_png:BOOL=OFF' '-Dafdsmrgd:BOOL=OFF' '-Dafs:BOOL=OFF' '-Dalien:BOOL=OFF' '-Darrow:BOOL=OFF' '-Dasimage:BOOL=ON' '-Dbonjour:BOOL=OFF' '-Dcastor:BOOL=OFF' '-Dccache:BOOL=OFF' '-Dchirp:BOOL=OFF' '-Dcocoa:BOOL=OFF' '-Ddataframe:BOOL=ON' '-Ddavix:BOOL=ON' '-Ddaos:BOOL=OFF' '-Ddcache:BOOL=OFF' '-Dfftw3:BOOL=ON' '-Dfitsio:BOOL=OFF' '-Dftgl:BOOL=ON' '-Dgdml:BOOL=ON' '-Dgeom:BOOL=ON' '-Dgeombuilder:BOOL=OFF' '-Dgenvector:BOOL=ON' '-Dgeocad:BOOL=OFF' '-Dgfal:BOOL=OFF' '-Dgl2ps:BOOL=ON' '-Dglite:BOOL=OFF' '-Dglobus:BOOL=OFF' '-Dgviz:BOOL=OFF' '-Dhdfs:BOOL=OFF' '-Dhttp:BOOL=ON' '-Dimt:BOOL=ON' '' '-Dkrb5:BOOL=OFF' '-Dldap:BOOL=OFF' '-Dmathmore:BOOL=ON' '' '-Dminimal:BOOL=OFF' '-Dminuit:BOOL=ON' '-Dmlp:BOOL=ON' '-Dmonalisa:BOOL=OFF' '-Dopengl:BOOL=ON' '' '' '-Dpythia8:BOOL=OFF' '' '' '-Dr:BOOL=ON' '-Drfio:BOOL=OFF' '-Droofit:BOOL=ON' '-Droot7:BOOL=ON' '-Druby:BOOL=OFF' '-Dsapdb:BOOL=OFF' '-Dshadowpw:BOOL=OFF' '-Dspectrum:BOOL=ON' '-Dsqlite:BOOL=ON' '-Dsrp:BOOL=OFF' '-Dssl:BOOL=ON' '' '-Dtbb:BOOL=ON' '-Dtcmalloc:BOOL=OFF' '-Dtmva:BOOL=ON' '-Dunuran:BOOL=ON' '-Duse_gsl_cblas:BOOL=OFF' '-Dvc:BOOL=ON'-Dvdt:BOOL=ON' '-Dveccore:BOOL=OFF' '' '-Dx11:BOOL=ON' '-Dxft:BOOL=ON' '-Dxml:BOOL=ON' '-Dxrootd:BOOL=ON' '-Dcuda:BOOL=OFF' '-Dwebgui:BOOL=ON' '-Dtmva-cpu:BOOL=ON' '-Dtmva-gpu:BOOL=OFF' '-Dtmva-pymva:BOOL=OFF' '-Dcudnn:BOOL=OFF' '-Dpyroot:BOOL=ON' '-Dtmva-sofie:BOOL=OFF' '-Dtmva-cudnn:BOOL=ON' '-Dtmva-cudnn:BOOL=OFF' '-Dtpython:BOOL=ON' '-Dasimage_tiff:BOOL=ON' '-DCMAKE_CXX_STANDARD:STRING=20'
Thanks for the info @jmcarcell I will take a look.