Re: [PATCH v3 0/8] Add objtool and orc support for LoongArch

From: Huacai Chen
Date: Fri Oct 20 2023 - 04:52:01 EST


Cross compiling on X86 for LoongArch fails:

CALL scripts/checksyscalls.sh
DESCEND objtool
make[5]: *** No rule to make target
'/usr/lib/gcc/x86_64-redhat-linux/8/include/stdbool.h', needed by
'/home/chenhuacai/linux-official.git/tools/objtool/libsubcmd/exec-cmd.o'.
Stop.
make[4]: *** [Makefile:80:
/home/chenhuacai/linux-official.git/tools/objtool/libsubcmd/libsubcmd-in.o]
Error 2
make[3]: *** [Makefile:82:
/home/chenhuacai/linux-official.git/tools/objtool/libsubcmd/libsubcmd.a]
Error 2
make[2]: *** [Makefile:73: objtool] Error 2
make[1]: *** [/home/chenhuacai/linux-official.git/Makefile:1355:
tools/objtool] Error 2
make: *** [Makefile:234: __sub-make] Error 2

Huacai

On Fri, Oct 20, 2023 at 10:27 AM Tiezhu Yang <yangtiezhu@xxxxxxxxxxx> wrote:
>
> This version is based on the latest torvalds/linux.git (20231020)
> which includes the commit 00c2ca84c680 ("LoongArch: Use SYM_CODE_*
> to annotate exception handlers"), tested with the latest upstream
> gcc and binutils (20231009).
>
> v3:
> -- Use tab for indentation in special.h
> -- Replace BP/bp with FP/fp
> -- Modify jirl decoder to handle special case in hibernate_asm.o
> -- Remove the calling of bswap_if_needed() which always return false
> -- Remove OBJECT_FILES_NON_STANDARD_suspend_asm.o
> -- Remove check of assembler version in Makefile
> -- Remove UNWIND_HINT_EMPTY in kernel_entry
> -- Put unwind_init() after cpu_probe()
> -- Remove CONFIG_BPF_JIT_ALWAYS_ON in defconfig
> -- Rename title of patch #8 to "Add ORC stack unwinder support"
> -- Fix build error of scripts/sorttable.h reported by test robot
> -- Add exception_table[] to save exception handlers
>
> Tiezhu Yang (8):
> objtool/LoongArch: Enable objtool to be built
> objtool/LoongArch: Implement instruction decoder
> objtool/x86: Separate arch-specific and generic parts
> objtool/LoongArch: Enable orc to be built
> objtool: Check local label about sibling call
> objtool: Check local label in add_dead_ends()
> objtool: Check local label in read_unwind_hints()
> LoongArch: Add ORC stack unwinder support
>
> arch/loongarch/Kconfig | 2 +
> arch/loongarch/Kconfig.debug | 11 +
> arch/loongarch/Makefile | 18 +
> arch/loongarch/include/asm/Kbuild | 1 +
> arch/loongarch/include/asm/bug.h | 1 +
> arch/loongarch/include/asm/exception.h | 2 +
> arch/loongarch/include/asm/module.h | 7 +
> arch/loongarch/include/asm/orc_header.h | 19 +
> arch/loongarch/include/asm/orc_lookup.h | 34 ++
> arch/loongarch/include/asm/orc_types.h | 58 +++
> arch/loongarch/include/asm/stackframe.h | 3 +
> arch/loongarch/include/asm/unwind.h | 22 +-
> arch/loongarch/include/asm/unwind_hints.h | 28 ++
> arch/loongarch/kernel/Makefile | 3 +
> arch/loongarch/kernel/entry.S | 5 +
> arch/loongarch/kernel/genex.S | 4 +
> arch/loongarch/kernel/module.c | 11 +-
> arch/loongarch/kernel/relocate_kernel.S | 2 +
> arch/loongarch/kernel/setup.c | 2 +
> arch/loongarch/kernel/stacktrace.c | 1 +
> arch/loongarch/kernel/traps.c | 44 +-
> arch/loongarch/kernel/unwind_orc.c | 522 +++++++++++++++++++++
> arch/loongarch/kernel/vmlinux.lds.S | 3 +
> arch/loongarch/lib/Makefile | 2 +
> arch/loongarch/mm/tlb.c | 27 +-
> arch/loongarch/mm/tlbex.S | 9 +
> arch/loongarch/vdso/Makefile | 1 +
> include/linux/compiler.h | 9 +
> scripts/Makefile | 7 +-
> tools/arch/loongarch/include/asm/inst.h | 161 +++++++
> tools/arch/loongarch/include/asm/orc_types.h | 58 +++
> tools/include/linux/bitops.h | 11 +
> tools/objtool/Makefile | 4 +
> tools/objtool/arch/loongarch/Build | 3 +
> tools/objtool/arch/loongarch/decode.c | 352 ++++++++++++++
> .../objtool/arch/loongarch/include/arch/cfi_regs.h | 22 +
> tools/objtool/arch/loongarch/include/arch/elf.h | 30 ++
> .../objtool/arch/loongarch/include/arch/special.h | 33 ++
> tools/objtool/arch/loongarch/orc.c | 171 +++++++
> tools/objtool/arch/loongarch/special.c | 15 +
> tools/objtool/arch/x86/Build | 1 +
> tools/objtool/arch/x86/orc.c | 188 ++++++++
> tools/objtool/check.c | 118 +++--
> tools/objtool/include/objtool/orc.h | 14 +
> tools/objtool/orc_dump.c | 69 +--
> tools/objtool/orc_gen.c | 113 +----
> 46 files changed, 1964 insertions(+), 257 deletions(-)
> create mode 100644 arch/loongarch/include/asm/orc_header.h
> create mode 100644 arch/loongarch/include/asm/orc_lookup.h
> create mode 100644 arch/loongarch/include/asm/orc_types.h
> create mode 100644 arch/loongarch/include/asm/unwind_hints.h
> create mode 100644 arch/loongarch/kernel/unwind_orc.c
> create mode 100644 tools/arch/loongarch/include/asm/inst.h
> create mode 100644 tools/arch/loongarch/include/asm/orc_types.h
> create mode 100644 tools/objtool/arch/loongarch/Build
> create mode 100644 tools/objtool/arch/loongarch/decode.c
> create mode 100644 tools/objtool/arch/loongarch/include/arch/cfi_regs.h
> create mode 100644 tools/objtool/arch/loongarch/include/arch/elf.h
> create mode 100644 tools/objtool/arch/loongarch/include/arch/special.h
> create mode 100644 tools/objtool/arch/loongarch/orc.c
> create mode 100644 tools/objtool/arch/loongarch/special.c
> create mode 100644 tools/objtool/arch/x86/orc.c
> create mode 100644 tools/objtool/include/objtool/orc.h
>
> --
> 2.1.0
>