blob: 9675eaaa3c71861fc67464dd40e520606a933fdf [file] [log] [blame]
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