In an ongoing development we have an external pulled into a header (SYCL related); that header has a static variable. JITting that header triggers static initialization which need the library to be loaded to resolve the symbol. That library doesn't get loaded when generating module.idx causing a missing symbol. (We had a similar case with Vc in the past, IIRC.)
What would happen if we provide a new flag to ROOT signalling that we are building module.idx, and then not actually use the execution engine (just like we do in rootcling)?
Check duplicate issues.
Describe the bug
In an ongoing development we have an external pulled into a header (SYCL related); that header has a static variable. JITting that header triggers static initialization which need the library to be loaded to resolve the symbol. That library doesn't get loaded when generating module.idx causing a missing symbol. (We had a similar case with Vc in the past, IIRC.)
What is the expected behaviour?
No error message when generating
module.idx
.How to reproduce?
This can be reproduced with a modified ROOT:
This causes
As you can see, the RDataFrame library is built happily, no missing symbols. Yet the JIT complains because it cannot load the library.
ROOT version
master + modification
How did you install ROOT?
built myself
Which operating system are you using?
Ubuntu 22.04
Additional context
No response