From eff0a21a835808c5e2862b820a1ebb200ff100db Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 23 Jul 2019 23:56:15 -0700 Subject: linux-libc-header: Fix ptrace.h and prctl.h conflict on aarch64 This is a backport from 5.2 release upstream, it fixes long standing build failure on musl/aarch64 Signed-off-by: Khem Raj Signed-off-by: Richard Purdie --- ...api-asm-ptrace.h-should-not-depend-on-uap.patch | 62 ++++++++++++++++++++++ .../linux-libc-headers/linux-libc-headers_5.0.bb | 1 + 2 files changed, 63 insertions(+) create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-arm64-sve-uapi-asm-ptrace.h-should-not-depend-on-uap.patch diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-arm64-sve-uapi-asm-ptrace.h-should-not-depend-on-uap.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-arm64-sve-uapi-asm-ptrace.h-should-not-depend-on-uap.patch new file mode 100644 index 0000000000..5ea46e9590 --- /dev/null +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-arm64-sve-uapi-asm-ptrace.h-should-not-depend-on-uap.patch @@ -0,0 +1,62 @@ +From 35341ca0614ab13e1ef34ad4f29a39e15ef31fa8 Mon Sep 17 00:00:00 2001 +From: Anisse Astier +Date: Mon, 17 Jun 2019 15:22:22 +0200 +Subject: [PATCH] arm64/sve: should not depend on + + +Pulling linux/prctl.h into asm/ptrace.h in the arm64 UAPI headers causes +userspace build issues for any program (e.g. strace and qemu) that +includes both and when using musl libc: + + | error: redefinition of 'struct prctl_mm_map' + | struct prctl_mm_map { + +See https://github.com/foundriesio/meta-lmp/commit/6d4a106e191b5d79c41b9ac78fd321316d3013c0 +for a public example of people working around this issue. + +Although it's a bit grotty, fix this breakage by duplicating the prctl +constant definitions. Since these are part of the kernel ABI, they +cannot be changed in future and so it's not the end of the world to have +them open-coded. + +Fixes: 43d4da2c45b2 ("arm64/sve: ptrace and ELF coredump support") + +Upstream-Status: Backport [https://github.com/torvalds/linux/commit/35341ca0614ab13e1ef34ad4f29a39e15ef31fa8] +Cc: stable@vger.kernel.org +Acked-by: Dave Martin +Signed-off-by: Anisse Astier +Signed-off-by: Will Deacon +--- + arch/arm64/include/uapi/asm/ptrace.h | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h +index 97c53203150b..e932284993d4 100644 +--- a/arch/arm64/include/uapi/asm/ptrace.h ++++ b/arch/arm64/include/uapi/asm/ptrace.h +@@ -65,8 +65,6 @@ + + #ifndef __ASSEMBLY__ + +-#include +- + /* + * User structures for general purpose, floating point and debug registers. + */ +@@ -113,10 +111,10 @@ struct user_sve_header { + + /* + * Common SVE_PT_* flags: +- * These must be kept in sync with prctl interface in ++ * These must be kept in sync with prctl interface in + */ +-#define SVE_PT_VL_INHERIT (PR_SVE_VL_INHERIT >> 16) +-#define SVE_PT_VL_ONEXEC (PR_SVE_SET_VL_ONEXEC >> 16) ++#define SVE_PT_VL_INHERIT ((1 << 17) /* PR_SVE_VL_INHERIT */ >> 16) ++#define SVE_PT_VL_ONEXEC ((1 << 18) /* PR_SVE_SET_VL_ONEXEC */ >> 16) + + + /* +-- +2.22.0 + diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb index e76120c5b8..473688d95f 100644 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb @@ -12,6 +12,7 @@ SRC_URI_append_libc-musl = "\ SRC_URI_append = "\ file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \ file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \ + file://0001-arm64-sve-uapi-asm-ptrace.h-should-not-depend-on-uap.patch \ " SRC_URI[md5sum] = "7381ce8aac80a01448e065ce795c19c0" -- cgit 1.2.3-korg