objtool: Split out arch-specific CFI definitions
authorJulien Thierry <jthierry@redhat.com>
Fri, 27 Mar 2020 15:28:46 +0000 (15:28 +0000)
committerIngo Molnar <mingo@kernel.org>
Wed, 22 Apr 2020 08:53:49 +0000 (10:53 +0200)
Some CFI definitions used by generic objtool code have no reason to vary
from one architecture to another.  Keep those definitions in generic
code and move the arch-specific ones to a new arch-specific header.

Signed-off-by: Julien Thierry <jthierry@redhat.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
tools/objtool/Makefile
tools/objtool/arch/x86/include/cfi_regs.h [new file with mode: 0644]
tools/objtool/cfi.h

index d1ab0cc..6b91388 100644 (file)
@@ -35,7 +35,8 @@ all: $(OBJTOOL)
 
 INCLUDES := -I$(srctree)/tools/include \
            -I$(srctree)/tools/arch/$(HOSTARCH)/include/uapi \
-           -I$(srctree)/tools/arch/$(SRCARCH)/include
+           -I$(srctree)/tools/arch/$(SRCARCH)/include  \
+           -I$(srctree)/tools/objtool/arch/$(SRCARCH)/include
 WARNINGS := $(EXTRA_WARNINGS) -Wno-switch-default -Wno-switch-enum -Wno-packed
 CFLAGS   := -Werror $(WARNINGS) $(KBUILD_HOSTCFLAGS) -g $(INCLUDES) $(LIBELF_FLAGS)
 LDFLAGS  += $(LIBELF_LIBS) $(LIBSUBCMD) $(KBUILD_HOSTLDFLAGS)
diff --git a/tools/objtool/arch/x86/include/cfi_regs.h b/tools/objtool/arch/x86/include/cfi_regs.h
new file mode 100644 (file)
index 0000000..79bc517
--- /dev/null
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#ifndef _OBJTOOL_CFI_REGS_H
+#define _OBJTOOL_CFI_REGS_H
+
+#define CFI_AX                 0
+#define CFI_DX                 1
+#define CFI_CX                 2
+#define CFI_BX                 3
+#define CFI_SI                 4
+#define CFI_DI                 5
+#define CFI_BP                 6
+#define CFI_SP                 7
+#define CFI_R8                 8
+#define CFI_R9                 9
+#define CFI_R10                        10
+#define CFI_R11                        11
+#define CFI_R12                        12
+#define CFI_R13                        13
+#define CFI_R14                        14
+#define CFI_R15                        15
+#define CFI_RA                 16
+#define CFI_NUM_REGS           17
+
+#endif /* _OBJTOOL_CFI_REGS_H */
index 4427bf8..1a3e7b8 100644 (file)
@@ -6,30 +6,13 @@
 #ifndef _OBJTOOL_CFI_H
 #define _OBJTOOL_CFI_H
 
+#include "cfi_regs.h"
+
 #define CFI_UNDEFINED          -1
 #define CFI_CFA                        -2
 #define CFI_SP_INDIRECT                -3
 #define CFI_BP_INDIRECT                -4
 
-#define CFI_AX                 0
-#define CFI_DX                 1
-#define CFI_CX                 2
-#define CFI_BX                 3
-#define CFI_SI                 4
-#define CFI_DI                 5
-#define CFI_BP                 6
-#define CFI_SP                 7
-#define CFI_R8                 8
-#define CFI_R9                 9
-#define CFI_R10                        10
-#define CFI_R11                        11
-#define CFI_R12                        12
-#define CFI_R13                        13
-#define CFI_R14                        14
-#define CFI_R15                        15
-#define CFI_RA                 16
-#define CFI_NUM_REGS           17
-
 struct cfi_reg {
        int base;
        int offset;