Messages in this thread | | | Subject | Re: [PATCH 3/3] objtool: Enable compilation of objtool for all architectures | From | Kamalesh Babulal <> | Date | Wed, 27 May 2020 20:12:51 +0530 |
| |
[...]
> From: Matt Helsley <mhelsley@vmware.com> > Subject: [PATCH] objtool: Enable compilation of objtool for all architectures > > Objtool currently only compiles for x86 architectures. This is > fine as it presently does not support tooling for other > architectures. However, we would like to be able to convert other > kernel tools to run as objtool sub commands because they too > process ELF object files. This will allow us to convert tools > such as recordmcount to use objtool's ELF code. > > Since much of recordmcount's ELF code is copy-paste code to/from > a variety of other kernel tools (look at modpost for example) this > means that if we can convert recordmcount we can convert more. > > We define weak definitions for subcommand entry functions and other weak > definitions for shared functions critical to building existing > subcommands. These return 127 when the command is missing which signify > tools that do not exist on all architectures. In this case the "check" > and "orc" tools do not exist on all architectures so we only add them > for x86. Future changes adding support for "check", to arm64 for > example, can then modify the SUBCMD_CHECK variable when building for > arm64. > > Objtool is not currently wired in to KConfig to be built for other > architectures because it's not needed for those architectures and > there are no commands it supports other than those for x86. As more > command support is enabled on various architectures the necessary > KConfig changes can be made (e.g. adding "STACK_VALIDATION") to > trigger building objtool. > > [ jpoimboe: remove aliases, add __weak macro, add error messages ] > > Cc: Julien Thierry <jthierry@redhat.com> > Signed-off-by: Matt Helsley <mhelsley@vmware.com> > Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
A minor nit-pick in objtool.h
Reviewed-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
> --- [...]
> diff --git a/tools/objtool/objtool.h b/tools/objtool/objtool.h > index d89616b2ca39..528028a66816 100644 > --- a/tools/objtool/objtool.h > +++ b/tools/objtool/objtool.h > @@ -19,4 +19,9 @@ struct objtool_file { > bool ignore_unreachables, c_file, hints, rodata; > }; > > +int check(const char *objname, bool orc); > +int orc_dump(const char *objname); > +int create_orc(struct objtool_file *file); > +int create_orc_sections(struct objtool_file *file); > + > #endif /* _OBJTOOL_H */
above hunk will not apply cleanly on patch 2 of the series, it expects a new line after struct objtool which is missing in patch 2.
-- Kamalesh
| |