AIX: Add dg-options to tests that override operator new

Paolo Carlini paolo.carlini@oracle.com
Mon Jan 24 20:46:00 GMT 2011


Hi,

On 01/24/2011 08:51 PM, Graham Reed wrote:
> Unlike [many] ELF-based systems, AIX ld/bind does not export symbols
> from the main program by default.  Consequently, attempts to replace
> operator new() and friends, per 18.4.1, will fail.  It isn't
> sufficient to engage the runtime linker (-Wl,-brtl); the symbols must
> also be exported from the defining module.
>
> Exporting could be done with an export list.  I am not, however,
> fluent enough in DejaGnu in general and the GCC use of it in
> particular to do that--in particular, how to specify the right
> relative path.  I did figure out how to use the -Wl,-bexpfull option,
> which will export all symbols from the main program.  (The
> -Wl,-bexpall option will not export symbols starting with underscore.)
>
> The attached patch changes three testcases which require this symbol
> replacement behaviour, so that the -Wl,-bexpful,-brtl option sequence
> is added on AIX (all architectures).
>
> As a result, the existing testcases ext/mt_allocator/check_new.cc,
> ext/pool_allocator/check_new.cc and 27_io/ios_base/storage/11584.cc
> will now pass execution test on AIX.
>
>   * testsuite/ext/mt_allocator/check_new.cc: Add dg-options
> -Wl,-bexpfull,-brtl on *-*-aix*
>   * testsuite/ext/pool_allocator/check_new.cc: Likewise
>   * testsuite/27_io/ios_base/storage/11584.cc: Likewise
>
> I have run these 3 testcases on powerpc-ibm-aix5.3.0.0, verifying 4
> multilib combinations: '', 'ppc64', 'pthread', and 'pthread/ppc64' in
> the 4.5.2 release code.  (The 3 files are unchanged in the trunk as of
> r169055.)
>
> I propose this change for the trunk only.

... David, can you give us your opinion about this change too?

I have no objections, only I would suggest summarizing the issue in a
small comment preceding the dg-options.

Paolo.



More information about the Libstdc++ mailing list