[Bug middle-end/51258] 64-bit gcc.dg/atomic-compare-exchange-5.c link failure on 32-bit Solaris/x86
ro at CeBiTec dot Uni-Bielefeld.DE
gcc-bugzilla@gcc.gnu.org
Tue Nov 22 15:10:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51258
--- Comment #3 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> 2011-11-22 15:05:13 UTC ---
> --- Comment #1 from Andrew Macleod <amacleod at redhat dot com> 2011-11-21 19:21:30 UTC ---
> 32 bit targets don't usually support 128 bit atomic operations natively, and
> leave calls to be resolved by an external atomic library. There was some
> issue with X32 support where 32 bit could support it under some circumstances.
>
> Now gcc/testsuite/lib/target-supports.exp defines the testsuite check for
> whether 128 bit is supported as:
>
> proc check_effective_target_sync_int_128 { } {
> if { ([istarget x86_64-*-*] || [istarget i?86-*-*])
> && ![is-effective-target ia32] } {
> return 1
> } else {
> return 0
> }
> }
>
> I presume if 32 bit solaris isn't supporting 128 bit operations then this needs
> to be tweaked...
There's nothing Solaris-specific here, as I'm seeing the same issue on a
bi-arch i386-apple-darwin9.8.0 compiler for the 64-bit multilib. It
seems the 32-bit compiler doesn't generate the 128-bit atomic insns when
generating 64-bit code.
Rainer
More information about the Gcc-bugs
mailing list