Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Jul 2018 02:18:32 +0300
From:      Konstantin Belousov <kib@freebsd.org>
To:        current@FreeBSD.org, br@freebsd.org
Subject:   Re: FreeBSD-head-riscv64-build - Build #9623 (r336573) - Failure
Message-ID:  <20180721231832.GC65334@kib.kiev.ua>
In-Reply-To: <941706773.1.1532139392496.JavaMail.jenkins@jenkins.ci.freebsd.org>
References:  <941706773.1.1532139392496.JavaMail.jenkins@jenkins.ci.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Jul 21, 2018 at 02:16:17AM +0000, jenkins-admin@FreeBSD.org wrote:
> --- lib/ofed/libmlx5__L ---
> In file included from /workspace/src/contrib/ofed/libmlx5/mlx5.h:44:0,
>                  from /workspace/src/contrib/ofed/libmlx5/buf.c:42:
> /workspace/obj/workspace/src/riscv.riscv64/tmp/usr/include/infiniband/udma_barrier.h:108:2: error: #error No architecture specific memory barrier defines found!
>  #error No architecture specific memory barrier defines found!
>   ^~~~~

The patch below should be enough to fix the build,  modulo the syntax
errors which I cannot check.  The reason is that it seems riscv is not
cross-buildable from stable/11 host:
--- includes_subdir_include/rpcsvc ---
RPCGEN_CPP=cpp\ -target\ riscv64-unknown-freebsd12.0\ --sysroot=/usr/home/konstantinb/build/bsd/DEV/obj/usr/home/konstantinb/build/bsd/DEV/src/riscv.riscv64/tmp\ -B/usr/local rpcgen -C -h -DWANT_NFS3 /usr/home/konstantinb/build/bsd/DEV/src/include/rpcsvc/klm_prot.x -o klm_prot.h
--- key_prot.h ---
error: unknown target triple 'riscv64-unknown-freebsd12.0', please use -triple or -arch
*** [key_prot.h] Error code 1

make[4]: stopped in /usr/home/konstantinb/build/bsd/DEV/src/include/rpcsvc

So if somebody who care about riscv and can build the world could
confirm the fix, I will commit it.

diff --git a/contrib/ofed/include/udma_barrier.h b/contrib/ofed/include/udma_barrier.h
index 71d264f8dce..6709d4433a7 100644
--- a/contrib/ofed/include/udma_barrier.h
+++ b/contrib/ofed/include/udma_barrier.h
@@ -104,6 +104,10 @@
 #include <sys/types.h>
 #include <machine/atomic.h>
 #define udma_to_device_barrier() dmb()
+#elif defined(__riscv__)
+#include <sys/types.h>
+#include <machine/atomic.h>
+#define	udma_to_device_barrier() fence()
 #else
 #error No architecture specific memory barrier defines found!
 #endif



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180721231832.GC65334>