Missing symbol for zero build on bsd port repo using Fedora
Andrew Haley
aph at redhat.com
Wed Mar 11 02:39:30 PDT 2009
Gary Benson wrote:
> Michael Franz wrote:
>> I am trying to build zero using the latest bsd repo and getting the
>> following error. I cannot figure out where it is coming from and
>> thus what I am missing.
>>
>> /home/mfranz/developer/icedtea/IcedTea7-Tip/openjdk-ecj/build/linux-i586/hotspot/outputdir/linux_zero_core/product/libjvm.so:
>> undefined reference to `__sync_val_compare_and_swap_4'
>> /home/mfranz/developer/icedtea/IcedTea7-Tip/openjdk-ecj/build/linux-i586/hotspot/outputdir/linux_zero_core/product/libjvm.so:
>> undefined reference to `__sync_add_and_fetch_4'
>> collect2: ld returned 1 exit status
>
> These come from the gcc atomic intrinsics in
> ports/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
> (or its BSD equivalent). If gcc doesn't know how to generate inline
> assembly for your platform it drops in calls to functions like those.
> I'm guessing you're on x86 or ppc? gcc ought to be able to handle
> that, so maybe it's just a case of enabling something there, but I'm
> no expert. aph would know more...
The most likely explanation is that the g++ being used is building for the
i386 architecture, which doesn't have the atomic instructions. We need
i486 or above.
Andrew.
More information about the distro-pkg-dev
mailing list