objtool: Add --hacks=skylake
Make the call/func sections selectable via the --hacks option. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lore.kernel.org/r/20220915111146.120821440@infradead.org
This commit is contained in:
parent
00abd38408
commit
0c0a6d8934
@ -254,6 +254,7 @@ objtool := $(objtree)/tools/objtool/objtool
|
||||
|
||||
objtool-args-$(CONFIG_HAVE_JUMP_LABEL_HACK) += --hacks=jump_label
|
||||
objtool-args-$(CONFIG_HAVE_NOINSTR_HACK) += --hacks=noinstr
|
||||
objtool-args-$(CONFIG_CALL_DEPTH_TRACKING) += --hacks=skylake
|
||||
objtool-args-$(CONFIG_X86_KERNEL_IBT) += --ibt
|
||||
objtool-args-$(CONFIG_FTRACE_MCOUNT_USE_OBJTOOL) += --mcount
|
||||
objtool-args-$(CONFIG_UNWINDER_ORC) += --orc
|
||||
|
@ -57,12 +57,17 @@ static int parse_hacks(const struct option *opt, const char *str, int unset)
|
||||
found = true;
|
||||
}
|
||||
|
||||
if (!str || strstr(str, "skylake")) {
|
||||
opts.hack_skylake = true;
|
||||
found = true;
|
||||
}
|
||||
|
||||
return found ? 0 : -1;
|
||||
}
|
||||
|
||||
const struct option check_options[] = {
|
||||
OPT_GROUP("Actions:"),
|
||||
OPT_CALLBACK_OPTARG('h', "hacks", NULL, NULL, "jump_label,noinstr", "patch toolchain bugs/limitations", parse_hacks),
|
||||
OPT_CALLBACK_OPTARG('h', "hacks", NULL, NULL, "jump_label,noinstr,skylake", "patch toolchain bugs/limitations", parse_hacks),
|
||||
OPT_BOOLEAN('i', "ibt", &opts.ibt, "validate and annotate IBT"),
|
||||
OPT_BOOLEAN('m', "mcount", &opts.mcount, "annotate mcount/fentry calls for ftrace"),
|
||||
OPT_BOOLEAN('n', "noinstr", &opts.noinstr, "validate noinstr rules"),
|
||||
|
@ -4352,10 +4352,12 @@ int check(struct objtool_file *file)
|
||||
goto out;
|
||||
warnings += ret;
|
||||
|
||||
ret = create_direct_call_sections(file);
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
warnings += ret;
|
||||
if (opts.hack_skylake) {
|
||||
ret = create_direct_call_sections(file);
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
warnings += ret;
|
||||
}
|
||||
}
|
||||
|
||||
if (opts.mcount) {
|
||||
|
@ -14,6 +14,7 @@ struct opts {
|
||||
bool dump_orc;
|
||||
bool hack_jump_label;
|
||||
bool hack_noinstr;
|
||||
bool hack_skylake;
|
||||
bool ibt;
|
||||
bool mcount;
|
||||
bool noinstr;
|
||||
|
Loading…
Reference in New Issue
Block a user