This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: __sync_sychronize on ARM


On 01/30/2012 05:26 PM, Jon Masters wrote:
> 
> On Mon, 2012-01-30 at 08:50 +0000, Ramana Radhakrishnan wrote:
> 
>> Therefore I'm assuming this is a breakage you face when building for
>> armv5te
> 
> It is indeed. Thanks for noting that. 
> 
>>> The icu package contains a direct call to __sync_sychronize, especially
>>> in the iotest test cases. I believe that this compiles fine on x86
>>> because there is no function call. However, on ARM, the code fails to
>>> link because the __sync_synchronize function is HIDDEN and not exported
>>> (or so goes my understanding - is that correct?).
>>
>> No, the HIDDEN shouldn't cause a link failure in this case - you
>> should be able to pull this
>> in when you link against the static libgcc where this should be defined.
>>
>> I don't know what your linker command line is  so maybe that's a place
>> to start investigating from.

There has been a bug in the past where
/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.6.1/libgcc_s.so was not a
linker script, but a shared library or a symlink.  That bug definitely
would cause the problem you're seeing.

libgcc_s.so must be a script.

You can get a linker map with the option -Wl,-Map,mapfile
This would be very useful.

> Thanks! You're the second person to suggest that, so I'll look some
> more. Could you let me know about the correct function name, above?

The official documented builtin is __sync_synchronize ()

Andrew.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]