Skip to content

An include in TMVA affects the visibility of operator==(string const &, const char*) in ROOT's modules #23470

Description

@hageboeck

Check duplicate issues.

  • Checked for duplicates

Description

master currently fails to build because operator==(string const &, const char*) is absent from the modules.
This was traced back to the following change in c3f319f:

diff --git a/tmva/sofie/CMakeLists.txt b/tmva/sofie/CMakeLists.txt
index 91d2bf52ece..768b017c48f 100644
--- a/tmva/sofie/CMakeLists.txt
+++ b/tmva/sofie/CMakeLists.txt
@@ -82,7 +82,6 @@ ROOT_STANDARD_LIBRARY_PACKAGE(ROOTTMVASofie
     src/SOFIE_common_helpers.cxx
   DEPENDENCIES
     Core
-    TMVA
     ${EXTRA_SOFIE_DEPENDENCIES}
 )
diff --git a/tmva/sofie/inc/TMVA/SOFIE_common.hxx b/tmva/sofie/inc/TMVA/SOFIE_common.hxx
index 9fbdb91726c..2619d28ba53 100644
--- a/tmva/sofie/inc/TMVA/SOFIE_common.hxx
+++ b/tmva/sofie/inc/TMVA/SOFIE_common.hxx
@@ -1,8 +1,6 @@
 #ifndef TMVA_SOFIE_SOFIE_COMMON
 #define TMVA_SOFIE_SOFIE_COMMON
 
-#include "TMVA/RTensor.hxx"
-
 #include "ROOT/RSpan.hxx"
 
 #include <stdexcept>

RTensor.hxx transitively (and directly) includes <string>, so the comparison operator seems to end up in ROOTTMVASofie.pcm. Note that only including <string> in the same location does not achieve the same workaround.

The original include hides a problem in modules much higher in the dependency tree, which falsely omit the comparison operator.

Reproducer

Build master in e.g. alma10 at or after commit c3f319f.
Configure with:

-DCMAKE_BUILD_TYPE=RelWithDebInfo "-Dall=OFF" "-Darrow=OFF" "-Dasan=OFF" "-Dasimage=ON" "-Dasserts=OFF" "-Dbuiltin_cfitsio=OFF" "-Dbuiltin_civetweb=ON" "-Dbuiltin_clang=ON" "-Dbuiltin_cling=ON" "-Dbuiltin_fftw3=OFF" "-Dbuiltin_freetype=OFF" "-Dbuiltin_ftgl=OFF" "-Dbuiltin_gl2ps=OFF" "-Dbuiltin_glu=OFF" "-Dbuiltin_gsl=OFF" "-Dbuiltin_llvm=ON" "-Dbuiltin_lz4=OFF" "-Dbuiltin_lzma=OFF" "-Dbuiltin_mathjax=ON" "-Dbuiltin_mathtext=ON" "-Dbuiltin_nlohmannjson=OFF" "-Dbuiltin_openssl=OFF" "-Dbuiltin_openui5=ON" "-Dbuiltin_pcre=OFF" "-Dbuiltin_tbb=OFF" "-Dbuiltin_unuran=OFF" "-Dbuiltin_vdt=ON" "-Dbuiltin_xrootd=OFF" "-Dbuiltin_xxhash=OFF" "-Dbuiltin_zlib=OFF" "-Dbuiltin_zstd=OFF" "-Dccache=ON" "-Dcefweb=OFF" "-Dcheck_connection=OFF" "-Dclad=ON" "-Dclingtest=OFF" "-Dcocoa=OFF" "-Dcoverage=OFF" "-Dcuda=OFF" "-Dcurl=ON" "-Ddaos=OFF" "-Ddataframe=ON" "-Ddavix=ON" "-Ddcache=OFF" "-Ddev=OFF" "-Ddistcc=OFF" "-Dfail-on-missing=ON" "-Dfcgi=OFF" "-Dfftw3=ON" "-Dfitsio=ON" "-Dfortran=ON" "-Dgdml=ON" "-Dgminimal=OFF" "-Dgnuinstall=OFF" "-Dgsl_shared=OFF" "-Dgviz=OFF" "-Dhttp=ON" "-Dimt=ON" "-Dlibcxx=OFF" "-Dmacos_native=OFF" "-Dmathmore=ON" "-Dmemory_termination=OFF" "-Dminimal=OFF" "-Dminuit2_omp=ON" "-Dmpi=OFF" "-Dopengl=ON" "-Dpyroot=ON" "-Dpythia8=ON" "-Dqt6canv=OFF" "-Dqt6web=OFF" "-Droofit=ON" "-Droot7=ON" "-Drootbench=OFF" "-Droottest=ON" "-Druntime_cxxmodules=ON" "-Dshadowpw=OFF" "-Dshared=ON" "-Dsoversion=OFF" "-Dspectrum=ON" "-Dsqlite=ON" "-Dssl=ON" "-Dtest_distrdf_dask=ON" "-Dtest_distrdf_pyspark=ON" "-Dtest_roofit_hs3testsuite=ON" "-Dtest_tmva_sofie=ON" "-Dtesting=ON" "-Dtmva-cpu=ON" "-Dtmva-cudnn=OFF" "-Dtmva-gpu=OFF" "-Dtmva-pymva=OFF" "-Dtmva=ON" "-Dunfold=ON" "-Dunuran=ON" "-During=OFF" "-Dvdt=ON" "-Dvecgeom=OFF" "-Dwebgui=ON" "-Dwin_broken_tests=OFF" "-Dwinrtdebug=OFF" "-Dx11=ON" "-Dxml=ON" "-Dxrootd=ON" -DROOT_COMPILEDATA_IGNORE_BUILD_NODE_CHANGES=ON

Test using ctest -R roottest-root-dataframe-test_snapshotNFile -V.

Note that the modules need to be rebuilt fully and headers need to be wiped from the build dir, e.g.:

rm -rf <buildDir>/include
find . -name "*.pcm" -delete

ROOT version

master

Installation method

Source

Operating system

Alma10 and many others

See #23472 for what happens when the include is put back.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions