arm64/sve: <uapi/asm/ptrace.h> should not depend on <uapi/linux/prctl.h>
authorAnisse Astier <aastier@freebox.fr>
Mon, 17 Jun 2019 13:22:22 +0000 (15:22 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 25 Jun 2019 03:36:00 +0000 (11:36 +0800)
commit3e16b5c25466107d2479a5c068668dc1a8fa70e6
treea8bedd61e59adee0f18d1dafc5173fe1e0594fc4
parent2296fd59eb3007332c66f369e875e08a04a5a94b
arm64/sve: <uapi/asm/ptrace.h> should not depend on <uapi/linux/prctl.h>

commit 35341ca0614ab13e1ef34ad4f29a39e15ef31fa8 upstream.

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")
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm64/include/uapi/asm/ptrace.h