libgcc: On AIX, increase chances to find landing pads for exceptions
David Edelsohn
dje.gcc@gmail.com
Mon Feb 8 13:59:00 GMT 2016
Runtime linking is disabled by default on AIX, and I disabled it for libstdc++.
There are two remaining issues:
1) FDEs with overlapping ranges causing problems with exceptions. I'm
not sure of the best way to work around this. Your patch is one
possible solution.
2) AIX linker garbage collection conflicting with scanning for
symbols. collect2 scanning needs to better emulate SVR4 linker
semantics for object files and archives.
Thanks, David
On Mon, Feb 8, 2016 at 7:14 AM, Michael Haubenwallner
<michael.haubenwallner@ssi-schaefer.com> wrote:
> Hi David,
>
> still experiencing exception-not-caught problems with gcc-4.2.4 on AIX
> leads me to some patch proposed in http://gcc.gnu.org/PR13878 back in
> 2004 already, ought to be fixed by some different commit since 3.4.0.
>
> As long as build systems (even libtool right now) on AIX do export these
> _GLOBAL__* symbols from shared libraries, overlapping frame-base address
> ranges may become registered, even if newer gcc (seen with 4.8) does name
> the FDE symbols more complex to reduce these chances.
>
> But still, just think of linking some static library into multiple shared
> libraries and/or the main executable. Or sometimes there is just need for
> some hackery to override a shared object's implementation detail and rely
> on runtime linking to do the override at runtime.
>
> Agreed both is "wrong" to some degree, but the larger an application is,
> the higher is the chance for this to happen.
>
> Thoughts?
>
> Thanks!
> /haubi/
More information about the Gcc-patches
mailing list