[cairo-bugs] [Bug 18140] New: additional atomic support check in configure for sh ( Super-H) arch

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Oct 20 19:19:35 PDT 2008


http://bugs.freedesktop.org/show_bug.cgi?id=18140

           Summary: additional atomic support check in configure for sh
                    (Super-H) arch
           Product: cairo
           Version: 1.8.0
          Platform: Other
        OS/Version: Linux (All)
            Status: NEW
          Severity: normal
          Priority: low
         Component: general
        AssignedTo: cworth at cworth.org
        ReportedBy: masaki.chikama at gmail.com
         QAContact: cairo-bugs at cairographics.org


The cairo uses native atomic operation (__sync_fetch_and_add and
_sync_val_compare_and_swap) defined in cairo-atomic-private.h,
and checks whether a system has them in configure script.
But in fact, configure script checks only __sync_fetch_and_add
and this causes undefined symbol on sh architecture like below.

/usr/lib/gcc/sh4-redhat-linux/4.3.0/../../../libcairo.so: undefined reference
to
 `__sync_val_compare_and_swap_4'
collect2: ld returned 1 exit status

This is a proposed patch for configure script to check both function.

--- cairo-1.8.0/configure.org   2008-10-19 19:27:20.000000000 +0900
+++ cairo-1.8.0/configure       2008-10-19 20:29:50.000000000 +0900
@@ -22857,6 +22857,7 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 int atomic_add(int i) { return __sync_fetch_and_add (&i, 1); }
+int atomic_int_cmpxchg(int i, int j, int k) { return
__sync_val_compare_and_swap(&i, j, k); }
 int
 main ()
 {

see also https://bugzilla.redhat.com/show_bug.cgi?id=467658


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the cairo-bugs mailing list