On 02/08/2016 02:59 PM, David Edelsohn wrote:
> Runtime linking is disabled by default on AIX, and I disabled it for 
> libstdc++.

For large applications mainly developed on/for Linux I do prefer/need
runtime linking even on AIX. Still I do believe there is no AIX-based
reason to leave runtime linking disabled, but build-/linktime issues
instead that cause things to fail with runtime linking enabled.

> 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.

This patch is not meant as a final solution, but to improve current
situation with broken build systems exporting even _GLOBAL__ symbols.
I'm about to prepare another libtool patch to fix that one.

> 2) AIX linker garbage collection conflicting with scanning for
> symbols.  collect2 scanning needs to better emulate SVR4 linker
> semantics for object files and archives.

Probably collect2 should filter the symbol list originating in either
an explicit -bexport:file or the -bexpall/-bexpfull flags and pass the
resulting symbol list as explicit -bexport:file only to the AIX linker?

/haubi/

> 
> Thanks, David
> 
> 
> On Mon, Feb 8, 2016 at 7:14 AM, Michael Haubenwallner
> <michael.haubenwall...@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/

Reply via email to