Objtool changes for this cycle were:

 - Comprehensive interface overhaul:
   =================================

   Objtool's interface has some issues:

     - Several features are done unconditionally, without any way to turn
       them off.  Some of them might be surprising.  This makes objtool
       tricky to use, and prevents porting individual features to other
       arches.

     - The config dependencies are too coarse-grained.  Objtool enablement is
       tied to CONFIG_STACK_VALIDATION, but it has several other features
       independent of that.

     - The objtool subcmds ("check" and "orc") are clumsy: "check" is really
       a subset of "orc", so it has all the same options.  The subcmd model
       has never really worked for objtool, as it only has a single purpose:
       "do some combination of things on an object file".

     - The '--lto' and '--vmlinux' options are nonsensical and have
       surprising behavior.

   Overhaul the interface:

      - get rid of subcmds

      - make all features individually selectable

      - remove and/or clarify confusing/obsolete options

      - update the documentation

      - fix some bugs found along the way

 - Fix x32 regression

 - Fix Kbuild cleanup bugs

 - Add scripts/objdump-func helper script to disassemble a single function from an object file.

 - Rewrite scripts/faddr2line to be section-aware, by basing it on 'readelf',
   moving it away from 'nm', which doesn't handle multiple sections well,
   which can result in decoding failure.

 - Rewrite & fix symbol handling - which had a number of bugs wrt. object files
   that don't have global symbols - which is rare but possible. Also fix a
   bunch of symbol handling bugs found along the way.

Signed-off-by: Ingo Molnar <mingo@kernel.org>
objtool: Fix objtool regression on x32 systems

Commit c087c6e7b551 ("objtool: Fix type of reloc::addend") failed to
appreciate cross building from ILP32 hosts, where 'int' == 'long' and
the issue persists.

As such, use s64/int64_t/Elf64_Sxword for this field and suffer the
pain that is ISO C99 printf formats for it.

Fixes: c087c6e7b551 ("objtool: Fix type of reloc::addend")
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
[peterz: reword changelog, s/long long/s64/]
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: <stable@vger.kernel.org>
Link: https://lkml.kernel.org/r/alpine.LRH.2.02.2205161041260.11556@file01.intranet.prod.int.rdu2.redhat.com
3 files changed