Revert "objtool: Warn on functions with ambiguous -ffunction-sections section names"
This reverts commit 9c7dc1dd89.
The check-function-names.sh script now provides the function name
checking functionality for all architectures, making the objtool check
redundant.
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://patch.msgid.link/c7d549d4de8bd1490d106b99630eea5efc69a4dd.1763669451.git.jpoimboe@kernel.org
pull/1354/merge
parent
93863f3f85
commit
11991999a2
|
|
@ -456,13 +456,6 @@ the objtool maintainers.
|
|||
these special names and does not use module_init() / module_exit()
|
||||
macros to create them.
|
||||
|
||||
13. file.o: warning: func() function name creates ambiguity with -ffunctions-sections
|
||||
|
||||
Functions named startup(), exit(), split(), unlikely(), hot(), and
|
||||
unknown() are not allowed due to the ambiguity of their section
|
||||
names when compiled with -ffunction-sections. For more information,
|
||||
see the comment above TEXT_MAIN in include/asm-generic/vmlinux.lds.h.
|
||||
|
||||
|
||||
If the error doesn't seem to make sense, it could be a bug in objtool.
|
||||
Feel free to ask objtool maintainers for help.
|
||||
|
|
|
|||
|
|
@ -2642,37 +2642,6 @@ static int decode_sections(struct objtool_file *file)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Certain function names are disallowed due to section name ambiguities
|
||||
* introduced by -ffunction-sections.
|
||||
*
|
||||
* See the comment above TEXT_MAIN in include/asm-generic/vmlinux.lds.h.
|
||||
*/
|
||||
static int validate_function_names(struct objtool_file *file)
|
||||
{
|
||||
struct symbol *func;
|
||||
int warnings = 0;
|
||||
|
||||
for_each_sym(file->elf, func) {
|
||||
if (!is_func_sym(func))
|
||||
continue;
|
||||
|
||||
if (!strcmp(func->name, "startup") || strstarts(func->name, "startup.") ||
|
||||
!strcmp(func->name, "exit") || strstarts(func->name, "exit.") ||
|
||||
!strcmp(func->name, "split") || strstarts(func->name, "split.") ||
|
||||
!strcmp(func->name, "unlikely") || strstarts(func->name, "unlikely.") ||
|
||||
!strcmp(func->name, "hot") || strstarts(func->name, "hot.") ||
|
||||
!strcmp(func->name, "unknown") || strstarts(func->name, "unknown.")) {
|
||||
|
||||
WARN("%s() function name creates ambiguity with -ffunction-sections",
|
||||
func->name);
|
||||
warnings++;
|
||||
}
|
||||
}
|
||||
|
||||
return warnings;
|
||||
}
|
||||
|
||||
static bool is_special_call(struct instruction *insn)
|
||||
{
|
||||
if (insn->type == INSN_CALL) {
|
||||
|
|
@ -4942,8 +4911,6 @@ int check(struct objtool_file *file)
|
|||
if (!nr_insns)
|
||||
goto out;
|
||||
|
||||
warnings += validate_function_names(file);
|
||||
|
||||
if (opts.retpoline)
|
||||
warnings += validate_retpoline(file);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue