[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