Hi!

Do you know whether your ARM cpu supports atomic compare-and-swap (CAS)?

If you can compile the following program, then the answer is "yes":

#include <inttypes.h>

int main(void) {
    return __sync_bool_compare_and_swap ((uint32_t *) 0, 1, 2);
}


(note that you cannot run this program, it's only important to see if it
compiles).

How it looks like when it's failing:

a...@fire:/tmp$ gcc test.c 
/tmp/ccKk6ynt.o: In function `main':
test.c:(.text+0x10): undefined reference to `__sync_bool_compare_and_swap_4'
collect2: ld returned 1 exit status

Working case:

a...@fire:/tmp$ gcc -mcpu=v9 test.c 
a...@fire:/tmp$ echo $?
0


You'd need at least ggc-4.1 for this test. Please apply the right
mcpu/march settings for the lowest supported CPU version. (the example
above uses Sparc v8/v9, the v8 CPUs lacking atomic CAS)

If your target has atomic CAS, I can come up with an upstream patch for
jackd (see config/cpu/, there's currently no arm at all, thus only using
the generic non-atomic fallback). Can you also provide the automatic
compiler defines for your targets? (like __powerpc__ or __i386__)?

Have you tried compiling jackd from source on your targets? Just to make
sure it's possible at all...


Cheerio

-- 
mail: [email protected]      http://adi.thur.de      PGP/GPG: key via keyserver



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to