From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Edelsohn To: law@cygnus.com Cc: pooh@msu.net, egcs@cygnus.com Subject: Re: libgcc problems Date: Fri, 16 Jan 1998 01:51:00 -0000 Message-id: <9801151729.AA25060@rios1.watson.ibm.com> References: <10216.884832018@hurl.cygnus.com> X-SW-Source: 1998-01/msg00512.html >>>>> 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