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.