[OE-core] [PATCH V2] linux-libc-header: Fix ptrace.h and prctl.h conflict on aarch64

Bruce Ashfield bruce.ashfield at gmail.com
Wed Jul 24 12:30:58 UTC 2019


v2 looks good to me.

I have a full linux-libc-headers from 5.2 just about ready to go, so
I'll make sure to test and drop this patch as part of that work.

Cheers,

Bruce

On Wed, Jul 24, 2019 at 2:56 AM Khem Raj <raj.khem at gmail.com> wrote:
>
> This is a backport from 5.2 release upstream, it fixes long standing
> build failure on musl/aarch64
>
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ---
> v2: Drop unused patch
>
>  ...sm-ptrace.h-should-not-depend-on-uap.patch | 62 +++++++++++++++++++
>  .../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 <aastier at freebox.fr>
> +Date: Mon, 17 Jun 2019 15:22:22 +0200
> +Subject: [PATCH] arm64/sve: <uapi/asm/ptrace.h> should not depend on
> + <uapi/linux/prctl.h>
> +
> +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 <sys/prctl.h> and <linux/ptrace.h> 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 at vger.kernel.org
> +Acked-by: Dave Martin <Dave.Martin at arm.com>
> +Signed-off-by: Anisse Astier <aastier at freebox.fr>
> +Signed-off-by: Will Deacon <will.deacon at arm.com>
> +---
> + 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 <linux/prctl.h>
> +-
> + /*
> +  * 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 <linux/ptrace.h>
> ++ * These must be kept in sync with prctl interface in <linux/prctl.h>
> +  */
> +-#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"
> --
> 2.22.0
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


More information about the Openembedded-core mailing list