Skip to content

Avoid cppyy precompiled header warning

Within eic-shell container, import cppyy causes the following warning:

22:26:50 wdconinc@menelaos ~/EIC/detectors/ip6 (beampipe-from-eic-project-step-to-gdml *%=) $ eic-shell 
eic-shell> wdconinc@menelaos:~/EIC/detectors/ip6$ python
Python 3.7.8 (default, Jul 21 2021, 22:58:34) 
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cppyy
/opt/software/linux-debian-x86_64/gcc-10.2.1/root-6.22.08-nppn25kikh6sz2sl73ukz5nzipxzopoj/lib/cppyy_backend/loader.py:113: UserWarning: No precompiled header available (/opt/software/linux-debian-x86_64/gcc-10.2.1/root-6.22.08-nppn25kikh6sz2sl73ukz5nzipxzopoj/lib/cppyy_backend/etc not writable); this may impact performance.
  warnings.warn('No precompiled header available (%s); this may impact performance.' % msg)

To fix, in the container build, after installing root with spack, run this:

ln -sf $(spack location -i root)/etc $(spack location -i root)/lib/cppyy_backend/etc

Arguably should be fixed properly in the root package.