Skip to content

Interpreter autoload lookup failure when runtime_cxxmodules=ON #9583

@greenc-FNAL

Description

@greenc-FNAL
  • Checked for duplicates

Describe the bug

The provided reproducer's "bad" test fails when the reproducer is built against a ROOT with runtime_cxxmodules=ON but passes when runtime_cxxmodules=OFF. Verified with 6.24/06 and 6.25/02.

Expected behavior

Tests "good," and "bad" should both pass.

To Reproduce

  1. Ensure you are using ROOT >= 6.24/00
  2. Ensure you are using CMake >= 3.22.0
  3. Execute the provided runit script to configure, build, and execute the tests.

Setup

  1. Problem verified on 6.24/06 and 6.25/02.
  2. SLF7.
  3. ROOT was compiled for UPS, configured using FNAL/art standard options. See attached ROOT build logs for details.

Additional context

The showstopper issue appears to be that when looking for information about gallery::Event (defined in an "old-style" dictionary rather than a C++ module), it mistakenly identifies the TMVA module as providing Event and never loads the dictionary containing the definition for gallery::Event. This issue does not occur if we look for the aliased gallery::GalleryEvent instead, nor if runtime_cxxmodules=OFF.

In addition, when runtime_cxxmodules=ON—even for the "good" case—I get many messages of the form:

Error in <TCling::RegisterRdictForLoadPCM>: Rdict '/scratch/greenc/products/root/v6_25_02/Linux64bit+3.10-2.17-e20-p399-debug/lib/libNet_rdict.pcm' is both in Module extension and in File system.

This may be due to the presence of dev=ON, asserts=ON, CMAKE_BUILD_TYPE=Debug, LLVM_BUILD_TYPE=Debug or LLVM_ENABLE_ASSERTIONS=ON, but regardless: is this a real error, or indicative of another (or the same) bug, or should this be ignored by the art infrastructure which would otherwise convert it to a fatal exception?

Attached files:

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions