From a7d8c14ed4f005c9e8ed360454f080720b1b1a36 Mon Sep 17 00:00:00 2001 From: Hui Li Date: Thu, 28 Sep 2023 14:29:24 +0800 Subject: [PATCH] Add support for loongarch64 Signed-off-by: Hui Li --- ...build-support-for-loongarch-platform.patch | 110 ++++++++++++++++++ libbpf.spec | 9 +- 2 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 0001-Add-build-support-for-loongarch-platform.patch diff --git a/0001-Add-build-support-for-loongarch-platform.patch b/0001-Add-build-support-for-loongarch-platform.patch new file mode 100644 index 0000000..2bdfce7 --- /dev/null +++ b/0001-Add-build-support-for-loongarch-platform.patch @@ -0,0 +1,110 @@ +From f9be915628e9bdaf6c0b16adb9bb3592e504f05b Mon Sep 17 00:00:00 2001 +From: Hui Li +Date: Wed, 2 Aug 2023 16:12:24 +0800 +Subject: [PATCH] Add build support for loongarch platform + +Solve uapi compile errors on loongarch + +Signed-off-by: Hui Li +--- + .../loongarch/include/uapi/asm/bitsperlong.h | 9 +++++ + .../loongarch/include/uapi/asm/perf_regs.h | 40 +++++++++++++++++++ + .../arch/loongarch/include/uapi/asm/unistd.h | 9 +++++ + tools/include/uapi/asm/bitsperlong.h | 2 + + 4 files changed, 60 insertions(+) + create mode 100644 tools/arch/loongarch/include/uapi/asm/bitsperlong.h + create mode 100644 tools/arch/loongarch/include/uapi/asm/perf_regs.h + create mode 100644 tools/arch/loongarch/include/uapi/asm/unistd.h + +diff --git a/tools/arch/loongarch/include/uapi/asm/bitsperlong.h b/tools/arch/loongarch/include/uapi/asm/bitsperlong.h +new file mode 100644 +index 000000000..00b4ba1e5 +--- /dev/null ++++ b/tools/arch/loongarch/include/uapi/asm/bitsperlong.h +@@ -0,0 +1,9 @@ ++/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ ++#ifndef __ASM_LOONGARCH_BITSPERLONG_H ++#define __ASM_LOONGARCH_BITSPERLONG_H ++ ++#define __BITS_PER_LONG (__SIZEOF_LONG__ * 8) ++ ++#include ++ ++#endif /* __ASM_LOONGARCH_BITSPERLONG_H */ +diff --git a/tools/arch/loongarch/include/uapi/asm/perf_regs.h b/tools/arch/loongarch/include/uapi/asm/perf_regs.h +new file mode 100644 +index 000000000..29d69c00f +--- /dev/null ++++ b/tools/arch/loongarch/include/uapi/asm/perf_regs.h +@@ -0,0 +1,40 @@ ++/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ ++#ifndef _ASM_LOONGARCH_PERF_REGS_H ++#define _ASM_LOONGARCH_PERF_REGS_H ++ ++enum perf_event_loongarch_regs { ++ PERF_REG_LOONGARCH_PC, ++ PERF_REG_LOONGARCH_R1, ++ PERF_REG_LOONGARCH_R2, ++ PERF_REG_LOONGARCH_R3, ++ PERF_REG_LOONGARCH_R4, ++ PERF_REG_LOONGARCH_R5, ++ PERF_REG_LOONGARCH_R6, ++ PERF_REG_LOONGARCH_R7, ++ PERF_REG_LOONGARCH_R8, ++ PERF_REG_LOONGARCH_R9, ++ PERF_REG_LOONGARCH_R10, ++ PERF_REG_LOONGARCH_R11, ++ PERF_REG_LOONGARCH_R12, ++ PERF_REG_LOONGARCH_R13, ++ PERF_REG_LOONGARCH_R14, ++ PERF_REG_LOONGARCH_R15, ++ PERF_REG_LOONGARCH_R16, ++ PERF_REG_LOONGARCH_R17, ++ PERF_REG_LOONGARCH_R18, ++ PERF_REG_LOONGARCH_R19, ++ PERF_REG_LOONGARCH_R20, ++ PERF_REG_LOONGARCH_R21, ++ PERF_REG_LOONGARCH_R22, ++ PERF_REG_LOONGARCH_R23, ++ PERF_REG_LOONGARCH_R24, ++ PERF_REG_LOONGARCH_R25, ++ PERF_REG_LOONGARCH_R26, ++ PERF_REG_LOONGARCH_R27, ++ PERF_REG_LOONGARCH_R28, ++ PERF_REG_LOONGARCH_R29, ++ PERF_REG_LOONGARCH_R30, ++ PERF_REG_LOONGARCH_R31, ++ PERF_REG_LOONGARCH_MAX, ++}; ++#endif /* _ASM_LOONGARCH_PERF_REGS_H */ +diff --git a/tools/arch/loongarch/include/uapi/asm/unistd.h b/tools/arch/loongarch/include/uapi/asm/unistd.h +new file mode 100644 +index 000000000..0c743344e +--- /dev/null ++++ b/tools/arch/loongarch/include/uapi/asm/unistd.h +@@ -0,0 +1,9 @@ ++/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ ++/* ++ * Copyright (C) 2020-2023 Loongson Technology Corporation Limited ++ */ ++ ++#define __ARCH_WANT_SYS_CLONE ++#define __ARCH_WANT_SYS_CLONE3 ++ ++#include +diff --git a/tools/include/uapi/asm/bitsperlong.h b/tools/include/uapi/asm/bitsperlong.h +index 928ffa1e9..f514750cf 100644 +--- a/tools/include/uapi/asm/bitsperlong.h ++++ b/tools/include/uapi/asm/bitsperlong.h +@@ -13,6 +13,8 @@ + #include "../../../arch/mips/include/uapi/asm/bitsperlong.h" + #elif defined(__ia64__) + #include "../../../arch/ia64/include/uapi/asm/bitsperlong.h" ++#elif defined(__loongarch__) ++#include "../../../arch/loongarch/include/uapi/asm/bitsperlong.h" + #else + #include + #endif +-- +2.20.1 + diff --git a/libbpf.spec b/libbpf.spec index 489d1cc..67a94f5 100644 --- a/libbpf.spec +++ b/libbpf.spec @@ -1,4 +1,4 @@ -%global anolis_release .0.2 +%global anolis_release .0.3 # We build libbpf from RHEL kernel sources, that's why we use # directly kernel tar for RHEL kernel build. # We update libbpf's 'sources' file with proper hash that's @@ -18,7 +18,7 @@ Source0: %{source}.tar.xz BuildRequires: gcc elfutils-libelf-devel elfutils-devel python3 Conflicts: bcc < 0.10 -Excludearch: loongarch64 +Patch1: 0001-Add-build-support-for-loongarch-platform.patch %description A mirror of bpf-next linux tree bpf-next/tools/lib/bpf directory plus its @@ -48,6 +48,8 @@ developing applications that use %{name} %prep %setup -n %{source} +%patch1 -p1 + %build pushd tools/lib/bpf %{libbpf_make} prefix=%{_prefix} @@ -71,6 +73,9 @@ popd %{_libdir}/libbpf.a %changelog +* Thu Sep 28 2023 Hui Li - 0.5.0-1.0.3 +- Add support for loongarch64 + * Fri Jun 30 2023 Weisson - 5.14.0-4.0.2 - Remove loongarch64 arch -- Gitee