Recent libstdc++ regression on i686-linux: abi/cxx_runtime_only_linkage.cc

Joseph S. Myers joseph@codesourcery.com
Wed Aug 27 18:14:00 GMT 2008


On Wed, 27 Aug 2008, Paolo Carlini wrote:

> Hi,
> > One significant case is where atomic operations are available with kernel
> > help.  SH GNU/Linux provides __sync_* in libgcc and there is an unreviewed
> > patch to do the same for ARM GNU/Linux; both use kernel help in those
> > implementations, and more targets may do this in future.  (It's been
> > proposed for HPPA.  The ColdFire NPTL specification doesn't include
> > exporting such helpers from libgcc but they could easily be exported from
> > libc; the use of a vDSO may make exporting from libgcc harder.)  The
> > GLIBCXX_ENABLE_ATOMIC_BUILTINS configure test looks like it's incorrect for
> > such cases, because it greps for __sync in a .s file and these targets will
> > have such __sync_* references resolved in libgcc.  So on GNU/Linux that
> > configure test ought to be a link test.
> >   
> For this issue, do you think it would be Ok to the change the current
> open-coded test to the usual GCC_TRY_COMPILE_OR_LINK pattern?

The test will always compile, but sometimes the result will have 
references to the __sync_* functions in the output.  Then, for certain 
targets where these functions are defined in a library, the result will 
link.  (The only targets where these are defined in a library are targets 
where we can assume link tests are OK.)

So a normal compile-or-link isn't what we want here; it's "link if you can 
do link tests, but otherwise check the .s file" or "link for *-*-linux* 
*-*-uclinux*, but otherwise check the .s file".

-- 
Joseph S. Myers
joseph@codesourcery.com



More information about the Libstdc++ mailing list