https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109054

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fw at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
On the other side, it is true that the unwind-dw2{,_s}.o entrypoints (or at
least their majority) uses struct _Unwind_Context which is implementation
specific and so using some other one is likely incorrect (in theory one could
wrap it around and just use dlsym (RTLD_NEXT, "_Unwind_*") found entrypoints
under the hood with some extra code).
Things are even more complicated by libgcc being configurable to use libunwind
and just call __libunwind_* APIs under the hood (on by default only on
ia64-hpux but there is configure option for it elsewhere).
Though, I wonder how can unwinding work properly even if we did that.
Because e.g. libstdc++.so.6 (or libsupc++.a) C++ EH personality routine calls
various _Unwind_* APIs too, including _Unwind_GetLanguageSpecificData,
_Unwind_GetGR, _Unwind_GetIP*, _Unwind_GetRegionStart, so if it gets some
subset of those symbols from a different unwinder, it can't work correctly.

Reply via email to