You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$ nm libmirserver.so.61
0000000000338568 b _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag
Hiding symbols is a problem, as this precludes the linker from collapsing multiple definitions of the same symbol, and breaking the One Definition Rule. In practice, this affects e.g. glibc's std::string::_M_dispose, which references a static variable:
if (this == &_S_empty_rep())
Because address comparisons no longer return expected results, that particular spot ends up calling the wrong deallocator and corrupts the program state.
Hiding symbols is a problem, as this precludes the linker from collapsing multiple definitions of the same symbol, and breaking the One Definition Rule. In practice, this affects e.g. glibc's
std::string::_M_dispose
, which references a static variable:Because address comparisons no longer return expected results, that particular spot ends up calling the wrong deallocator and corrupts the program state.
The following symbols must be unhidden:
This needs to happen for a bunch of libraries, so:
std::
boost::
YAML::
(used by libmiral)Furthermore, tools/symbols_map_generator/main.py also needs to insert
construction vtable for ...
.The text was updated successfully, but these errors were encountered: