| From 6ebf6c4f9e5ebca123a5b5f24afe67cf0473cf92 Mon Sep 17 00:00:00 2001 |
| From: "Dmitry V. Levin" <ldv@altlinux.org> |
| Date: Wed, 21 Feb 2018 23:03:27 +0000 |
| Subject: [PATCH] m68k: fix build |
| |
| When <sys/reg.h> is included after <linux/ptrace.h>, the build fails |
| on m68k with the following diagnostics: |
| |
| In file included from /usr/include/linux/ptrace.h:101:0, |
| from ptrace.h:51, |
| from sigreturn.c:2: |
| /usr/include/m68k-linux-gnu/sys/reg.h:26:3: error: expected identifier |
| before numeric constant |
| PT_D1 = 0, |
| ^ |
| |
| Apparently, the only architecture where strace needs definitions |
| provided by <sys/reg.h> is x86_64, other three (m68k, tile, and x86) |
| are fine with definitions already provided by <linux/ptrace.h>. |
| |
| Fix the issue by getting rid of <sys/reg.h> and defining necessary |
| macros in linux/x86_64/arch_regs.h file. |
| |
| * configure.ac (AC_CHECK_HEADERS): Remove sys/reg.h. |
| * regs.h: Do not include <sys/reg.h>. |
| * linux/x86_64/arch_regs.h (R15, R14, R13, R12, RBP, RBX, R11, R10, |
| R9, R8, RAX, RCX, RDX, RSI, RDI, ORIG_RAX, RIP, CS, EFLAGS, RSP, SS, |
| FS_BASE, GS_BASE, DS, ES, FS, GS): New macros. |
| * NEWS: Mention this fix. |
| |
| Fixes: v4.21~21 ("Include <sys/ptrace.h> early") |
| [baruch: drop the NEWS and configure.ac hunks] |
| Signed-off-by: Baruch Siach <baruch@tkos.co.il> |
| --- |
| Upstream status: commit 6ebf6c4f9e5e |
| |
| NEWS | 3 +++ |
| configure.ac | 1 - |
| linux/x86_64/arch_regs.h | 29 +++++++++++++++++++++++++++++ |
| regs.h | 5 ----- |
| 4 files changed, 32 insertions(+), 6 deletions(-) |
| |
| diff --git a/linux/x86_64/arch_regs.h b/linux/x86_64/arch_regs.h |
| index c2ccee671d4f..d502ca4bf202 100644 |
| --- a/linux/x86_64/arch_regs.h |
| +++ b/linux/x86_64/arch_regs.h |
| @@ -1,2 +1,31 @@ |
| extern uint32_t *const i386_esp_ptr; |
| extern uint64_t *const x86_64_rsp_ptr; |
| + |
| +/* <asm/ptrace.h> does not provide these definitions. */ |
| +#define R15 0 |
| +#define R14 1 |
| +#define R13 2 |
| +#define R12 3 |
| +#define RBP 4 |
| +#define RBX 5 |
| +#define R11 6 |
| +#define R10 7 |
| +#define R9 8 |
| +#define R8 9 |
| +#define RAX 10 |
| +#define RCX 11 |
| +#define RDX 12 |
| +#define RSI 13 |
| +#define RDI 14 |
| +#define ORIG_RAX 15 |
| +#define RIP 16 |
| +#define CS 17 |
| +#define EFLAGS 18 |
| +#define RSP 19 |
| +#define SS 20 |
| +#define FS_BASE 21 |
| +#define GS_BASE 22 |
| +#define DS 23 |
| +#define ES 24 |
| +#define FS 25 |
| +#define GS 26 |
| diff --git a/regs.h b/regs.h |
| index d89581d7dd3f..7a044cef8fbf 100644 |
| --- a/regs.h |
| +++ b/regs.h |
| @@ -2,11 +2,6 @@ |
| #define STRACE_REGS_H |
| |
| #include <sys/user.h> |
| - |
| -#ifdef HAVE_SYS_REG_H |
| -# include <sys/reg.h> |
| -#endif |
| - |
| #include "arch_regs.h" |
| |
| #endif /* !STRACE_REGS_H */ |
| -- |
| 2.17.0 |
| |