Print

Print


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/