This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
RE: AIX 5.1 dlopen shared library exception handling problem
- From: "Coulter, Scott" <scott dot coulter at retek dot com>
- To: <Joerg dot Richter at pdv-FS dot de>,<dje at watson dot ibm dot com>
- Cc: <Joe dot Buck at synopsys dot com>,<gcc at gcc dot gnu dot org>
- Date: Fri, 6 Feb 2004 09:41:18 -0600
- Subject: RE: AIX 5.1 dlopen shared library exception handling problem
Many, many thanks to Joerg, and the others who responded to my question.
The patch suggested in PR13878 does indeed seem to fix my problem, both in
my small test case, and in our full application.
I hope we can get either this fix, or something related, into future releases of
gcc for the AIX platform. I'm no compiler guru, but if there's any way I can help
track down the root causes of this issue, please let me know...
Scott Coulter
scott.coulter@retek.com
-----Original Message-----
From: Joerg.Richter@pdv-FS.de [mailto:Joerg.Richter@pdv-FS.de]
Sent: Fri 2/6/2004 3:36 AM
To: dje@watson.ibm.com
Cc: Joe.Buck@synopsys.com; Coulter, Scott; gcc@gcc.gnu.org
Subject: Re: AIX 5.1 dlopen shared library exception handling problem
> According to an analysis in a related bug report, it appears that
> GCC's assumption about the sorting of FDEs is getting confused by the
> address ranges of shared libraries used by AIX. The duplicate symbols
> cause FDEs for the same symbol to appear in multiple shared libraries.
Please note that this are two different issues. Duplicate symbols in user
code can cause uncaught exceptions. But only when they are both the first
definition in both translation units. I think GCC uses their name to name
the unwind table or something related. So the unwind information for one
translation unit is lost.
I tried to describe the second cause for uncaught exceptions in bug report
13878. There are no duplicate symbols (in user code) involved. All unwind
information is still present. But due to the fact that some fdes are shared
between shared libraries GCC runtime doesn't find the right fde.
The patch in PR13878 fixes the second issue. Not the first.
Joerg