libgcc problems
David Edelsohn
dje@watson.ibm.com
Fri Jan 16 01:51:00 GMT 1998
>>>>> Jeffrey A Law writes:
>> Understand. Uphh! After long debugging I found a problem! This is because
>> in current exception handling implementation __sjthrow() code can not
>> be in shared library. Otherwise, no operation to restore original TOC
>> anchor pointer is performed.
I guess I do not understand if this is a general problem and
nonlocal_goto_receiver needs to be fixed regardless. Is the issue that
__sjthrow() must have local copies for each module or __sjthrow() cannot
throw through a shared library? If the former, isn't this yet another
reason not to make libgcc.a shared -- at least on AIX?
The general answer is to find someone who has the time to
correctly implement exception handling on AIX. The PowerOpen ABI adds an
epilogue to each function which specifically provides the information
necessary to walk the stack. This will save the sjlj space, be compatible
with C-Set++, and be more efficient. Someone just needs to take the time
to teach the GCC exception handling code about this -- I can provide
guidance but do not have the time to implement it myself.
I would think that implementing exception handling correctly for
AIX would be a better way to spend the time than fixing something that
only is broken because of the sjlj implementation of exception handling.
David
More information about the Gcc
mailing list