Bug 57764

Summary: libtbbmalloc.so.2 из libtbb-2020.3-alt2.e2kv6.rpm: libstdc++.so.6 -> undefined __cxa_vec_ctor
Product: Branch p10 Reporter: Alexander <ale>
Component: tbbAssignee: Michael Shigorin <mike>
Status: NEW --- QA Contact: qa-p10 <qa-p10>
Severity: normal    
Priority: P5 CC: amakeenk, mike
Version: не указана   
Hardware: e2k   
OS: Linux   

Description Alexander 2026-02-04 13:26:06 MSK
Здравствуйте.

Обнаружили проблему в пакете libtbb-2020.3-alt2.e2kv6.rpm: библиотека libtbbmalloc.so.2 имеет неразрешённый символ __cxa_vec_ctor, из‑за чего не загружается, если вызывается не из C++‑приложения (например, через LD_PRELOAD или из C‑кода).

Доказательства:
1. DT_NEEDED у RPM‑версии не содержит libstdc++.so.6:
$ readelf -d /var/lib/lxc/test/rootfs/usr/lib64/libtbbmalloc.so.2 | grep NEEDED
    NEEDED               Shared library: [libdl.so.2]
    NEEDED               Shared library: [librt.so.1]
    NEEDED               Shared library: [libpthread.so.0]
    NEEDED               Shared library: [libc.so.6]

2. При этом ldd -r показывает неразрешённый символ:
$ ldd -r /var/lib/lxc/test/rootfs/usr/lib64/libtbbmalloc.so.2
  ...
  undefined symbol: __cxa_vec_ctor

3. Сборка из исходников на той же системе корректна и содержит libstdc++.so.6 в DT_NEEDED:
$ readelf -d /usr/lib64/libtbbmalloc.so.2 | grep NEEDED
    NEEDED               Shared library: [libdl.so.2]
    NEEDED               Shared library: [librt.so.1]
    NEEDED               Shared library: [libpthread.so.0]
    NEEDED               Shared library: [libstdc++.so.6]
    NEEDED               Shared library: [libc.so.6]

Ожидаемое поведение:
libtbbmalloc.so.2 должен иметь DT_NEEDED: libstdc++.so.6, чтобы __cxa_vec_ctor резолвился при загрузке.
Comment 1 Alexander Makeenkov 2026-02-06 10:29:11 MSK
На x86_64 проблемы нет:

# ldd -r /usr/lib64/libtbbmalloc.so.2 | grep -c undefined
0