Message ID | 20210311005418.2207250-1-nathan@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ARM: Make UNWINDER_ARM depend on ld.bfd or ld.lld 11.0.0+ | expand |
On Wed, Mar 10, 2021 at 4:54 PM Nathan Chancellor <nathan@kernel.org> wrote: > > When linking aspeed_g5_defconfig with ld.lld 10.0.1, the following error > occurs: > > ld.lld: error: .tmp_vmlinux.kallsyms1:(.ARM.exidx+0x34D98): relocation > R_ARM_PREL31 out of range: 2135538592 is not in [-1073741824, > 1073741823] > > This was resolved in ld.lld 11.0.0 but the minimum supported version of > ld.lld for the kernel is 10.0.1. Prevent CONFIG_UNWINDER_ARM from being > selected in this case so that the problematic sections cannot be > created. > > Link: https://github.com/ClangBuiltLinux/linux/issues/732 > Link: https://github.com/llvm/llvm-project/commit/48aebfc908ba7b9372aaa478a9c200789491096e > Suggested-by: Nick Desaulniers <ndesaulniers@google.com> > Signed-off-by: Nathan Chancellor <nathan@kernel.org> Thanks for the patch. We discussed at the kernelCI meeting yesterday and the clangbuiltlinux meeting today continuing coverage for kernel builds with clang-10, so this is still worthwhile IMO at least for randconfig testing not to select known broken configs when using older tools. We can rip it out once we bump the minimum supported version of clang. Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > --- > arch/arm/Kconfig.debug | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug > index 9e0b5e7f12af..64c1f8a46ab5 100644 > --- a/arch/arm/Kconfig.debug > +++ b/arch/arm/Kconfig.debug > @@ -66,6 +66,8 @@ config UNWINDER_FRAME_POINTER > config UNWINDER_ARM > bool "ARM EABI stack unwinder" > depends on AEABI && !FUNCTION_GRAPH_TRACER > + # https://github.com/ClangBuiltLinux/linux/issues/732 > + depends on !LD_IS_LLD || LLD_VERSION >= 110000 > select ARM_UNWIND > help > This option enables stack unwinding support in the kernel > > base-commit: a38fd8748464831584a19438cbb3082b5a2dab15 > --
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 9e0b5e7f12af..64c1f8a46ab5 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -66,6 +66,8 @@ config UNWINDER_FRAME_POINTER config UNWINDER_ARM bool "ARM EABI stack unwinder" depends on AEABI && !FUNCTION_GRAPH_TRACER + # https://github.com/ClangBuiltLinux/linux/issues/732 + depends on !LD_IS_LLD || LLD_VERSION >= 110000 select ARM_UNWIND help This option enables stack unwinding support in the kernel
When linking aspeed_g5_defconfig with ld.lld 10.0.1, the following error occurs: ld.lld: error: .tmp_vmlinux.kallsyms1:(.ARM.exidx+0x34D98): relocation R_ARM_PREL31 out of range: 2135538592 is not in [-1073741824, 1073741823] This was resolved in ld.lld 11.0.0 but the minimum supported version of ld.lld for the kernel is 10.0.1. Prevent CONFIG_UNWINDER_ARM from being selected in this case so that the problematic sections cannot be created. Link: https://github.com/ClangBuiltLinux/linux/issues/732 Link: https://github.com/llvm/llvm-project/commit/48aebfc908ba7b9372aaa478a9c200789491096e Suggested-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Nathan Chancellor <nathan@kernel.org> --- arch/arm/Kconfig.debug | 2 ++ 1 file changed, 2 insertions(+) base-commit: a38fd8748464831584a19438cbb3082b5a2dab15