[openib-general] kdapl build error on ia64
John Partridge
johnip at sgi.com
Fri Jul 29 14:46:03 PDT 2005
James,
I am trying to build the kdapl module on an IA64 (SGI Altix) machine using a
2.6.12-gentoo-r6 kernel and am getting the following build error :-
LD drivers/infiniband/core/built-in.o
LD drivers/infiniband/hw/mthca/built-in.o
LD drivers/infiniband/ulp/ipoib/built-in.o
LD drivers/infiniband/ulp/kdapl/built-in.o
CC [M] drivers/infiniband/ulp/kdapl/api.o
LD [M] drivers/infiniband/ulp/kdapl/kdapl.o
LD drivers/infiniband/ulp/kdapl/ib/built-in.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_openib_qp.o
In file included from drivers/infiniband/ulp/kdapl/ib/dapl.h:42,
from drivers/infiniband/ulp/kdapl/ib/dapl_openib_qp.c:38:
drivers/infiniband/ulp/kdapl/ib/dapl_util.h:74:73: pasting "ia64_cmpxchg1_" and ""acq"" does not give a valid preprocessing token
In file included from drivers/infiniband/ulp/kdapl/ib/dapl.h:42,
from drivers/infiniband/ulp/kdapl/ib/dapl_openib_qp.c:38:
drivers/infiniband/ulp/kdapl/ib/dapl_util.h: In function `dapl_os_atomic_assign':
drivers/infiniband/ulp/kdapl/ib/dapl_util.h:74: error: `ia64_cmpxchg1_' undeclared (first use in this function)
drivers/infiniband/ulp/kdapl/ib/dapl_util.h:74: error: (Each undeclared identifier is reported only once
drivers/infiniband/ulp/kdapl/ib/dapl_util.h:74: error: for each function it appears in.)
drivers/infiniband/ulp/kdapl/ib/dapl_util.h:74: error: syntax error before string constant
drivers/infiniband/ulp/kdapl/ib/dapl_util.h:74:73: pasting "ia64_cmpxchg2_" and ""acq"" does not give a valid preprocessing token
drivers/infiniband/ulp/kdapl/ib/dapl_util.h:74: error: `ia64_cmpxchg2_' undeclared (first use in this function)
drivers/infiniband/ulp/kdapl/ib/dapl_util.h:74: error: syntax error before string constant
drivers/infiniband/ulp/kdapl/ib/dapl_util.h:74:73: pasting "ia64_cmpxchg4_" and ""acq"" does not give a valid preprocessing token
drivers/infiniband/ulp/kdapl/ib/dapl_util.h:74: error: `ia64_cmpxchg4_' undeclared (first use in this function)
drivers/infiniband/ulp/kdapl/ib/dapl_util.h:74: error: syntax error before string constant
drivers/infiniband/ulp/kdapl/ib/dapl_util.h:74:73: pasting "ia64_cmpxchg8_" and ""acq"" does not give a valid preprocessing token
drivers/infiniband/ulp/kdapl/ib/dapl_util.h:74: error: `ia64_cmpxchg8_' undeclared (first use in this function)
drivers/infiniband/ulp/kdapl/ib/dapl_util.h:74: error: syntax error before string constant
make[4]: *** [drivers/infiniband/ulp/kdapl/ib/dapl_openib_qp.o] Error 1
make[3]: *** [drivers/infiniband/ulp/kdapl/ib] Error 2
make[2]: *** [drivers/infiniband/ulp/kdapl] Error 2
make[1]: *** [drivers/infiniband] Error 2
make: *** [drivers] Error 2
I searched the archives and don't see a solution, but I think I've tracked it down
to a bug in ulp/kdapl/ib/dapl_util.h
root on mig133 > diff -ruN dapl_util.h dapl_util.h-johnip
=============== diff ===============================
--- dapl_util.h 2005-07-29 16:36:17.514669886 -0500
+++ dapl_util.h-johnip 2005-07-29 16:37:11.514578548 -0500
@@ -71,7 +71,7 @@
#ifdef __ia64__
- current_value = ia64_cmpxchg("acq", v, match_value, new_value, 4);
+ current_value = ia64_cmpxchg(acq, v, match_value, new_value, 4);
#elif defined (__PPC__)
============ diff end =======================================
With this fix the ia64 modules all build to completion with just a couple of warnings :-
/usr/src/linux
root on mig133 > make
CHK include/linux/version.h
make[1]: `arch/ia64/kernel/asm-offsets.s' is up to date.
CHK include/asm-ia64/offsets.h
CHK include/linux/compile.h
CHK usr/initramfs_list
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_openib_qp.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_openib_util.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_openib_cm.o
drivers/infiniband/ulp/kdapl/ib/dapl_openib_cm.c: In function `dapl_path_comp_handler':
drivers/infiniband/ulp/kdapl/ib/dapl_openib_cm.c:346: warning: long long int format, u64 arg (arg 3)
drivers/infiniband/ulp/kdapl/ib/dapl_openib_cm.c: In function `dapl_rt_comp_handler':
drivers/infiniband/ulp/kdapl/ib/dapl_openib_cm.c:416: warning: long long int format, u64 arg (arg 3)
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_cookie.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_cr.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_ep.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_evd.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_hca_util.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_ia.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_lmr.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_provider.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_pz.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_ring_buffer_util.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_rmr.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_sp.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_srq.o
CC [M] drivers/infiniband/ulp/kdapl/ib/dapl_util.o
LD [M] drivers/infiniband/ulp/kdapl/ib/kdapl_ib.o
LD drivers/infiniband/ulp/sdp/built-in.o
LD drivers/infiniband/ulp/srp/built-in.o
GEN .version
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
I have not yet tested kdapl, but will go ahead and try it and let you know how it works on IA64
John
--
John Partridge
Silicon Graphics Inc
Tel: 651-683-3428
Vnet: 233-3428
E-Mail: johnip at sgi.com
More information about the general
mailing list