[dpdk-dev] [PATCH v2] lib/bpf: fix clang build warnings for aarch64

Ruifeng Wang ruifeng.wang at arm.com
Fri Nov 15 07:47:54 CET 2019


Clang has different prototype for __builtin___clear_cache(). It requires
'char *' parameters while gcc requires 'void *'.

Clang version 8.0 was used.
Warning messages during build:
../lib/librte_bpf/bpf_jit_arm64.c:1438:26: warning: incompatible pointer
types passing 'uint32_t *' (aka 'unsigned int *') to parameter of type
'char *' [-Wincompatible-pointer-types]
        __builtin___clear_cache(ctx.ins, ctx.ins + ctx.idx);
                                ^~~~~~~
../lib/librte_bpf/bpf_jit_arm64.c:1438:35: warning: incompatible pointer
types passing 'uint32_t *' (aka 'unsigned int *') to parameter of type
'char *' [-Wincompatible-pointer-types]
        __builtin___clear_cache(ctx.ins, ctx.ins + ctx.idx);
                                         ^~~~~~~~~~~~~~~~~

Fixes: f3e516772464 ("bpf/arm: add prologue and epilogue")
Cc: jerinj at marvell.com

Signed-off-by: Ruifeng Wang <ruifeng.wang at arm.com>
Reviewed-by: Phil Yang <phil.yang at arm.com>
Reviewed-by: Gavin Hu <gavin.hu at arm.com>
---
v2:
Update commit message for failure reason. (Jerin)

 lib/librte_bpf/bpf_jit_arm64.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_bpf/bpf_jit_arm64.c b/lib/librte_bpf/bpf_jit_arm64.c
index 8882fee67..a5a5d46f0 100644
--- a/lib/librte_bpf/bpf_jit_arm64.c
+++ b/lib/librte_bpf/bpf_jit_arm64.c
@@ -1435,7 +1435,7 @@ bpf_jit_arm64(struct rte_bpf *bpf)
 	}
 
 	/* Flush the icache */
-	__builtin___clear_cache(ctx.ins, ctx.ins + ctx.idx);
+	__builtin___clear_cache((char *)ctx.ins, (char *)(ctx.ins + ctx.idx));
 
 	bpf->jit.func = (void *)ctx.ins;
 	bpf->jit.sz = size;
-- 
2.17.1



More information about the dev mailing list