[PATCH v3 0/3] Fix objtool warnings if LTO is enabled for LoongArch (Part 2)

Tiezhu Yang posted 3 patches 2 weeks ago
arch/loongarch/kernel/Makefile     |  2 --
arch/loongarch/kernel/head.S       |  7 +++----
arch/loongarch/kernel/unwind_orc.c | 11 -----------
tools/objtool/check.c              |  4 ++++
4 files changed, 7 insertions(+), 17 deletions(-)
[PATCH v3 0/3] Fix objtool warnings if LTO is enabled for LoongArch (Part 2)
Posted by Tiezhu Yang 2 weeks ago
The previous patches [1] [2] are to fix most of the warnings (total 3030):

  sibling call from callable instruction with modified stack frame

This series is a follow up to fix 2 kinds of warnings (total 24), it only
touches the objtool and LoongArch related code:

  falls through to next function
  unreachable instruction

With this series, there is only 1 kind of warning (total 3), it does not
only touch the objtool and LoongArch related code:

  missing __noreturn in .c/.h or NORETURN() in noreturns.h

In order to silence the above warnings, it needs to change the related
code to give the functions __noreturn attribute, and have a NORETURN()
annotation in tools/objtool/noreturns.h. IMO, it will touch all of the
archs and the generic code, so this needs much more work to avoid the
side effect or regression, once it is done I will send out the patch.

How to reproduce:

  $ make ARCH=loongarch LLVM=1 clean defconfig
  $ scripts/config -d LTO_NONE -e LTO_CLANG_THIN
  $ make ARCH=loongarch LLVM=1 olddefconfig all

Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a47bc954cf0e [1]
Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5dfea6644d20 [2]

Tiezhu Yang (3):
  objtool/LoongArch: Fix fall through warning about efistub
  LoongArch: Fix unreachable instruction warnings about head.S
  LoongArch: Remove is_entry_func() related code

 arch/loongarch/kernel/Makefile     |  2 --
 arch/loongarch/kernel/head.S       |  7 +++----
 arch/loongarch/kernel/unwind_orc.c | 11 -----------
 tools/objtool/check.c              |  4 ++++
 4 files changed, 7 insertions(+), 17 deletions(-)

-- 
2.42.0