The arm64 ABI selftests fail to compile due to missing include paths
for kernel headers, causing errors like incomplete type struct sock_filter
and implicit BPF macro declarations.
Add $(KHDR_INCLUDES) and -I$(top_srcdir)/tools/include to CFLAGS
to resolve the header search path. Also remove the hardcoded __NR_write
macro and include <asm/unistd.h> to obtain the correct syscall number.
Fixes: 21e37da12071 ("kselftest/arm64: Add testcase for SECCOMP_RET_TRACE orig_x0 bypass")
Fixes: 2fcbc4adf997 ("kselftest/arm64: Add seccomp ptrace x0 bypass test")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/r/202608021842.jp6IBrFi-lkp@intel.com/
Suggested-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
Tested-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Signed-off-by: Will Deacon <will@kernel.org>
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021 ARM Limited
+CFLAGS += $(KHDR_INCLUDES) -I$(top_srcdir)/tools/include
+
TEST_GEN_PROGS := hwcap ptrace syscall-abi tpidr2 seccomp_ptrace_x0_bypass seccomp_ret_trace_x0_bypass
include ../../lib.mk
#include <linux/elf.h>
#include <linux/filter.h>
#include <linux/seccomp.h>
+#include <asm/unistd.h>
#include "kselftest.h"
-#ifndef __NR_write
-#define __NR_write 64
-#endif
-
#define EXPECTED_TESTS 1
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
#include <linux/filter.h>
#include <linux/seccomp.h>
#include <linux/ptrace.h>
+#include <asm/unistd.h>
#include "kselftest.h"
-#ifndef __NR_write
-#define __NR_write 64
-#endif
-
#define PTRACE_EVENT_MASK(status) ((status) >> 16)
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__