root icon indicating copy to clipboard operation
root copied to clipboard

[6.32/master] Fail to materialise simbols from `libMatrix`

Open vepadulano opened this issue 4 months ago • 2 comments

Check duplicate issues.

  • [ ] Checked for duplicates

Description

Any code run through TInterpreter::Declare that needs symbols from libMatrix ends up in

cling JIT session error: Failed to materialize symbols: { (main, { _ZN8TVectorTIfE8StreamerER7TBuffer, _ZN8TVectorTIfE8Delete_mEiRPf, _ZN8TVectorTIfE4DrawEPKc, _ZNK8TVectorTIfE5PrintEPKc, _ZN8TVectorTIfE5ClassEv }) }

See the simple reproducer below. Here is what I get with two different ROOT versions on lxplus:

ROOT 6.32.02 (LCG106)

[vpadulan@lxplus951 ~]$source /cvmfs/sft.cern.ch/lcg/views/LCG_106/x86_64-el9-gcc13-opt/setup.sh
[vpadulan@lxplus951 ~]$root --version
ROOT Version: 6.32.02
Built for linuxx8664gcc on Jun 19 2024, 05:05:49
From heads/master@tags/v6-32-02
[vpadulan@lxplus951 ~]$python repro_libphysics.py
cling JIT session error: Failed to materialize symbols: { (main, { _ZN8TVectorTIfE8StreamerER7TBuffer, _ZN8TVectorTIfE8Delete_mEiRPf, _ZN8TVectorTIfE4DrawEPKc, _ZNK8TVectorTIfE5PrintEPKc, _ZN8TVectorTIfE5ClassEv }) }
[runStaticInitializersOnce]: Failed to materialize symbols: { (main, { _ZL5myvec, _ZN8TStorage19FilledByObjectAllocEPVKj, _ZNSt13__atomic_baseIhEppEi, _ZN4ROOT8Internal22THashConsistencyHolderIRK8TVectorTIfEE17fgHashConsistencyE, __cxx_global_var_initcling_module_306_, _ZN8TVectorTIfED2Ev, _ZN8TStorage14UpdateIsOnHeapERVKjRVj, _ZGVL5myvec, _ZN8TVectorTIfEC1Ev, _ZTI8TVectorTIfE, _ZTV8TVectorTIfE, __clang_call_terminate, _ZNK8TVectorTIfE11ShowMembersER16TMemberInspector, $.cling-module-306.__inits.0, _ZNK7TObject10IsSortableEv, _ZN8TVectorTIfEC2Ev, _ZNSt13__atomic_baseIhEppEv, _ZNK8TVectorTIfE3IsAEv, __orc_init_func.cling-module-306, _ZN8TVectorTIfED0Ev, _ZZNK8TVectorTIfE27CheckTObjectHashConsistencyEvE14recurseBlocker, _ZN7TObjectC2Ev, _ZN8TVectorTIfED1Ev, _ZStanSt12memory_orderSt23__memory_order_modifier, _ZNK8TVectorTIfE27CheckTObjectHashConsistencyEv, _ZNKSt13__atomic_baseIhEcvhEv, _ZTS8TVectorTIfE, _ZN8TVectorTIfE5ClearEPKc, _ZNK7TObject9GetOptionEv }) }
cling JIT session error: Failed to materialize symbols: { (main, { _ZGVL5myvec }) }
[runStaticInitializersOnce]: Failed to materialize symbols: { (main, { __cxx_global_var_initcling_module_307_, __orc_init_func.cling-module-307, _ZN12__cling_N51516__cling_Un1Qu314EPv, $.cling-module-307.__inits.0 }) }
[runStaticInitializersOnce]: Failed to materialize symbols: { (main, { __orc_init_func.cling-module-306 }) }
Traceback (most recent call last):
  File "/afs/cern.ch/user/v/vpadulan/repro_libphysics.py", line 12, in <module>
    raise SystemExit(main())
                     ^^^^^^
  File "/afs/cern.ch/user/v/vpadulan/repro_libphysics.py", line 9, in main
    print(ROOT.myvec)
          ^^^^^^^^^^
  File "/cvmfs/sft.cern.ch/lcg/views/LCG_106/x86_64-el9-gcc13-opt/lib/ROOT/_facade.py", line 164, in _fallback_getattr
    raise AttributeError("Failed to get attribute {} from ROOT".format(name))
AttributeError: Failed to get attribute myvec from ROOT

ROOT 6.30.02 (LCG105)

[vpadulan@lxplus959 ~]$source /cvmfs/sft.cern.ch/lcg/views/LCG_105/x86_64-el9-gcc13-opt/setup.sh
[vpadulan@lxplus959 ~]$root --version
ROOT Version: 6.30/02
Built for linuxx8664gcc on Dec 20 2023, 18:59:44
From heads/master@tags/v6-30-02
[vpadulan@lxplus959 ~]$python repro_libphysics.py
Name: TVectorT<float> Title:

Reproducer

import ROOT

def main():
    ROOT.gInterpreter.Declare('''
        #include <TVectorT.h>
        //R__LOAD_LIBRARY(libMatrix);  // Uncomment to make the error disappear
        const auto myvec = TVectorT<float>();
    ''')
    print(ROOT.myvec)

if __name__ == "__main__":
    raise SystemExit(main())

ROOT version

6.32.*

Installation method

Any

Operating system

Any

Additional context

No response

vepadulano avatar Oct 04 '24 09:10 vepadulano