objtool: Define 'struct orc_entry' only when needed
authorJulien Thierry <jthierry@redhat.com>
Tue, 25 Aug 2020 12:47:42 +0000 (13:47 +0100)
committerJosh Poimboeuf <jpoimboe@redhat.com>
Tue, 1 Sep 2020 22:19:12 +0000 (17:19 -0500)
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>
tools/objtool/Makefile
tools/objtool/arch.h
tools/objtool/check.h

index 7770edcda3a0d61e91c184d6ff64ef4e13d091e8..33d1e3ca8efdd1ff14fd02a1f899e2743ce7ac64 100644 (file)
@@ -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
index 2e2ce089b0e9e886c731f07dbbfa5c94bf7a1a40..b18c5f61d42d1211a6335b99c9da6d4a67b17637 100644 (file)
@@ -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,
index 36d38b9153acefe511cfacb7c5d4b100195cf214..6cac34542122f106c54c246fd1b03cc79088588d 100644 (file)
@@ -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,