URL:
<http://savannah.cern.ch/bugs/?81746>
Summary: Test for atomic functions slightly broken
Project: XROOTD
Submitted by: mellert
Submitted on: 2011-05-02 15:10
Severity: 3 - Normal
Priority: 5 - Normal
Status: None
Privacy: Public
Assigned to: None
Originator Email:
Open/Closed: Open
Discussion Lock: Any
Fixed by commit(s):
_______________________________________________________
Details:
The test for the existence of the atomic functions uses a "long", and
therefore tests the existence of 32-bit atomic functions on a 32 bit
architecture.
The code later uses the atomic functions with a "long long", which means it
uses the 64-bit version of the atomic functions on a 32 bit architecture.
For a 32 bit architecture that implements the 32-bit versions of the atomic
functions, but not the 64-bit versions (e.g. ppc), the test will succeed
because the 32-bit versions exist, but then the compilation will fail due to
the non-existence of the 64-bit versions:
/builddir/build/BUILD/xrootd-3.0.3/src/Xrd/.libs/libXrd.so: undefined
reference to `__sync_fetch_and_add_8'
/builddir/build/BUILD/xrootd-3.0.3/src/Xrd/.libs/libXrd.so: undefined
reference to `__sync_fetch_and_or_8'
/builddir/build/BUILD/xrootd-3.0.3/src/Xrd/.libs/libXrd.so: undefined
reference to `__sync_fetch_and_and_8'
The fix is to use "long long" in the configure test as well. Patch attached.
_______________________________________________________
File Attachments:
-------------------------------------------------------
Date: 2011-05-02 15:10 Name: xrootd-rhel5-no-atomic.patch Size: 502B By:
mellert
<http://savannah.cern.ch/bugs/download.php?file_id=19408>
_______________________________________________________
Reply to this item at:
<http://savannah.cern.ch/bugs/?81746>
_______________________________________________
Message sent via/by LCG Savannah
http://savannah.cern.ch/
|