summaryrefslogtreecommitdiff
path: root/tools/objtool
diff options
context:
space:
mode:
authorJulien Thierry <jthierry@redhat.com>2020-08-25 13:47:42 +0100
committerJosh Poimboeuf <jpoimboe@redhat.com>2020-09-01 17:19:12 -0500
commit66734e32463bd1346466f92662feeaccef26e94f (patch)
tree3973ec79e05e9fdf4e5d6e149639952e35ccc104 /tools/objtool
parent3eaecac88a17f7fdf29561a197dc728f7f697c60 (diff)
objtool: Define 'struct orc_entry' only when needed
Implementation of ORC requires some definitions that are currently provided by the target architecture headers. Do not depend on these definitions when the orc subcommand is not implemented. This avoid requiring arches with no orc implementation to provide dummy orc definitions. Signed-off-by: Julien Thierry <jthierry@redhat.com> Reviewed-by: Miroslav Benes <mbenes@suse.cz> Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Diffstat (limited to 'tools/objtool')
-rw-r--r--tools/objtool/Makefile4
-rw-r--r--tools/objtool/arch.h2
-rw-r--r--tools/objtool/check.h2
3 files changed, 8 insertions, 0 deletions
diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile
index 7770edcda3a0..33d1e3ca8efd 100644
--- a/tools/objtool/Makefile
+++ b/tools/objtool/Makefile
@@ -55,6 +55,10 @@ ifeq ($(SRCARCH),x86)
SUBCMD_ORC := y
endif
+ifeq ($(SUBCMD_ORC),y)
+ CFLAGS += -DINSN_USE_ORC
+endif
+
export SUBCMD_CHECK SUBCMD_ORC
export srctree OUTPUT CFLAGS SRCARCH AWK
include $(srctree)/tools/build/Makefile.include
diff --git a/tools/objtool/arch.h b/tools/objtool/arch.h
index 2e2ce089b0e9..b18c5f61d42d 100644
--- a/tools/objtool/arch.h
+++ b/tools/objtool/arch.h
@@ -11,7 +11,9 @@
#include "objtool.h"
#include "cfi.h"
+#ifdef INSN_USE_ORC
#include <asm/orc_types.h>
+#endif
enum insn_type {
INSN_JUMP_CONDITIONAL,
diff --git a/tools/objtool/check.h b/tools/objtool/check.h
index 36d38b9153ac..6cac34542122 100644
--- a/tools/objtool/check.h
+++ b/tools/objtool/check.h
@@ -43,7 +43,9 @@ struct instruction {
struct symbol *func;
struct list_head stack_ops;
struct cfi_state cfi;
+#ifdef INSN_USE_ORC
struct orc_entry orc;
+#endif
};
struct instruction *find_insn(struct objtool_file *file,