On Fri, Feb 22, 2013 at 8:15 AM, Mathieu Desnoyers
<mathieu.desnoyers@efficios.com> wrote:
Hi,
I notice the following build failure here
https://buildd.debian.org/status/package.php?p=liburcu
Tail of log for liburcu on sparc:
urcu/static/wfqueue.h:84:2: warning: implicit declaration of function 'CMM_STORE_SHARED' [-Wimplicit-function-declaration]
urcu/static/wfqueue.h: In function '___cds_wfq_node_sync_next':
urcu/static/wfqueue.h:99:2: warning: implicit declaration of function 'CMM_LOAD_SHARED' [-Wimplicit-function-declaration]
urcu/static/wfqueue.h:99:15: warning: assignment makes pointer from integer without a cast [enabled by default]
urcu/static/wfqueue.h:104:4: warning: implicit declaration of function 'caa_cpu_relax' [-Wimplicit-function-declaration]
urcu/static/wfqueue.h: In function '___cds_wfq_dequeue_blocking':
urcu/static/wfqueue.h:126:55: warning: comparison between pointer and integer [enabled by default]
make[3]: *** [wfqueue.lo] Error 1
make[3]: Leaving directory `/build/buildd-liburcu_0.7.6-1-sparc-GySyug/liburcu-0.7.6'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/build/buildd-liburcu_0.7.6-1-sparc-GySyug/liburcu-0.7.6'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/build/buildd-liburcu_0.7.6-1-sparc-GySyug/liburcu-0.7.6'
dh_auto_build: make -j1 returned exit code 2
make: *** [build-arch] Error 2
One main question I have: what sparc architectures are supported by
Debian's "sparc" architecture ? Userspace RCU only supports Sparcv9 and
onward, because it requires some atomic instructions.
Debian definitely only supports[1] SPARCv9 compatible CPUs (sun4u, sun4v). I've heard that Linux on 32-bit SPARC (i.e. sparc <= v8) is shoddy now, but I certainly haven't tried it.
As documented in the urcu README file, building a package that includes
sparcv9 isntructions for 32-bit sparc can be done with:
CFLAGS="-m32 -Wa,-Av9a -g -O2" ./configure
"v9a" includes VIS instruction set, which is an extension of SPARCv9. I think only some early Fujitsu SPARC CPUs (pre 2000) are missing it -- the original UltraSPARC from Sun does include it. Probably safe to turn on, but technically extends requirements to use the program.