| 0a9d806e | 18-Jan-2025 |
Damjan Jovanovic <damjan@apache.org> |
We cannot use $(SRCDIR)/solenv/src/component.map as a version map file yet, because it doesn't export RTTI and exception typeinfos.
Generally speaking, .map files have 2 purposes: (A) to set symbol
We cannot use $(SRCDIR)/solenv/src/component.map as a version map file yet, because it doesn't export RTTI and exception typeinfos.
Generally speaking, .map files have 2 purposes: (A) to set symbol visibility (exported / hidden). (B) to assign symbol versions to symbols.
We already achieve (A) by means of compiler-level annotations, at least in gbuild (and in some dmake modules too), so we only need .map files for (B).
dmake also has an AWK script in main/solenv/bin/addsym.awk, which it uses to add: _ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions to the "global" section in .map files before linking with them.
However we don't need that. Since gbuild already hides unwanted symbols, and exports everything wanted, once dmake is gone, we could just use this much simpler .map file:
UDK_3_0_0 { global: *; };
which would assign symbol version, without changing visibility.
For now, just stop using $(SRCDIR)/solenv/src/component.map. It crashes during chart creation, because it cannot find exception typeinfos. This means all gbuild modules lack symbol versions which they used to have with dmake, but we can easily add that later.
Patch by: me
show more ...
|