• Linus Torvalds's avatar
    Merge tag 'objtool-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 22922dea
    Linus Torvalds authored
    Pull objtool updates from Ingo Molnar:
    
     - 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.
    
    * tag 'objtool-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
      objtool: Fix objtool regression on x32 systems
      objtool: Fix symbol creation
      scripts/faddr2line: Fix overlapping text section failures
      scripts: Create objdump-func helper script
      objtool: Remove libsubcmd.a when make clean
      objtool: Remove inat-tables.c when make clean
      objtool: Update documentation
      objtool: Remove --lto and --vmlinux in favor of --link
      objtool: Add HAVE_NOINSTR_VALIDATION
      objtool: Rename "VMLINUX_VALIDATION" -> "NOINSTR_VALIDATION"
      objtool: Make noinstr hacks optional
      objtool: Make jump label hack optional
      objtool: Make static call annotation optional
      objtool: Make stack validation frame-pointer-specific
      objtool: Add CONFIG_OBJTOOL
      objtool: Extricate sls from stack validation
      objtool: Rework ibt and extricate from stack validation
      objtool: Make stack validation optional
      objtool: Add option to print section addresses
      objtool: Don't print parentheses in function addresses
      ...
    22922dea
Makefile 63.6 KB