Message ID | 20190724065615.13704-1-raj.khem@gmail.com |
---|---|
State | Accepted |
Commit | eff0a21a835808c5e2862b820a1ebb200ff100db |
Headers | show |
Series | [V2] linux-libc-header: Fix ptrace.h and prctl.h conflict on aarch64 | expand |
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@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@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@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@vger.kernel.org > +Acked-by: Dave Martin <Dave.Martin@arm.com> > +Signed-off-by: Anisse Astier <aastier@freebox.fr> > +Signed-off-by: Will Deacon <will.deacon@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@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 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
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@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@vger.kernel.org +Acked-by: Dave Martin <Dave.Martin@arm.com> +Signed-off-by: Anisse Astier <aastier@freebox.fr> +Signed-off-by: Will Deacon <will.deacon@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"
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@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 -- 2.22.0 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core