Bug#460084: jackd working on armel/armeb?

Adrian Knoth adi at drcomp.erfurt.thur.de
Sun Mar 15 13:58:55 UTC 2009


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:

adi at 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:

adi at fire:/tmp$ gcc -mcpu=v9 test.c 
adi at 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: adi at thur.de  	http://adi.thur.de	PGP/GPG: key via keyserver





More information about the pkg-multimedia-maintainers mailing list