linux/tools/objtool
Matt Helsley 0decf1f8de 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>
2020-05-20 09:17:28 -05:00
..
arch/x86 objtool: Add support for intra-function calls 2020-04-30 20:14:33 +02:00
Documentation objtool: Add support for intra-function calls 2020-04-30 20:14:33 +02:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
arch.h objtool: Enable compilation of objtool for all architectures 2020-05-20 09:17:28 -05:00
Build objtool: Enable compilation of objtool for all architectures 2020-05-20 09:17:28 -05:00
builtin-check.c objtool: Enable compilation of objtool for all architectures 2020-05-20 09:17:28 -05:00
builtin-orc.c objtool: Enable compilation of objtool for all architectures 2020-05-20 09:17:28 -05:00
builtin.h objtool: Implement noinstr validation 2020-04-22 10:53:50 +02:00
cfi.h objtool: Fix !CFI insn_state propagation 2020-04-22 10:53:50 +02:00
check.c objtool: Enable compilation of objtool for all architectures 2020-05-20 09:17:28 -05:00
check.h objtool: Enable compilation of objtool for all architectures 2020-05-20 09:17:28 -05:00
elf.c objtool: use gelf_getsymshndx to handle >64k sections 2020-05-15 10:35:13 +02:00
elf.h Linux 5.7-rc6 2020-05-18 13:09:37 +03:00
Makefile objtool: Enable compilation of objtool for all architectures 2020-05-20 09:17:28 -05:00
objtool.c objtool: Exit successfully when requesting help 2020-05-20 08:32:52 -05:00
objtool.h objtool: Enable compilation of objtool for all architectures 2020-05-20 09:17:28 -05:00
orc_dump.c objtool: Enable compilation of objtool for all architectures 2020-05-20 09:17:28 -05:00
orc_gen.c objtool: Enable compilation of objtool for all architectures 2020-05-20 09:17:28 -05:00
special.c objtool: Optimize read_sections() 2020-03-25 18:28:30 +01:00
special.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
sync-check.sh objtool: Silence build output 2020-01-22 07:54:34 +01:00
warn.h objtool: Rename find_containing_func() 2020-03-25 18:28:29 +01:00
weak.c objtool: Enable compilation of objtool for all architectures 2020-05-20 09:17:28 -05:00