Message ID | 20200903203053.3411268-28-samitolvanen@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for Clang LTO | expand |
On Thu, Sep 03, 2020 at 01:30:52PM -0700, Sami Tolvanen wrote: > L4_PAGE_OFFSET is a constant value, so don't warn about absolute > relocations. > > Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Any other details on this? I assume this is an ld.lld-ism. Any idea why this is only a problem under LTO? (Or is this an LLVM integrated assembler-ism?) Regardless, yes, let's nail it down: Reviewed-by: Kees Cook <keescook@chromium.org>
On Thu, Sep 03, 2020 at 03:47:32PM -0700, Kees Cook wrote: > On Thu, Sep 03, 2020 at 01:30:52PM -0700, Sami Tolvanen wrote: > > L4_PAGE_OFFSET is a constant value, so don't warn about absolute > > relocations. > > > > Signed-off-by: Sami Tolvanen <samitolvanen@google.com> > > Any other details on this? I assume this is an ld.lld-ism. Any idea why > this is only a problem under LTO? (Or is this an LLVM integrated > assembler-ism?) Regardless, yes, let's nail it down: With the LTO v1 series, LLD generated this relocation somewhere in the .init.data section, but only with LTO: $ arch/x86/tools/relocs --abs-relocs vmlinux WARNING: Absolute relocations present Offset Info Type Sym.Value Sym.Name ffffffff828e7fe0 0000000100000001 R_X86_64_64 0000000000000111 L4_PAGE_OFFSET It actually looks like this might not be a problem anymore with the current ToT kernel and the v2 series, but I'll do some more testing to confirm this and drop the patch from v3 if it's no longer needed. Sami
diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c index ce7188cbdae5..8f3bf34840ce 100644 --- a/arch/x86/tools/relocs.c +++ b/arch/x86/tools/relocs.c @@ -47,6 +47,7 @@ static const char * const sym_regex_kernel[S_NSYMTYPES] = { [S_ABS] = "^(xen_irq_disable_direct_reloc$|" "xen_save_fl_direct_reloc$|" + "L4_PAGE_OFFSET|" "VDSO|" "__crc_)",
L4_PAGE_OFFSET is a constant value, so don't warn about absolute relocations. Signed-off-by: Sami Tolvanen <samitolvanen@google.com> --- arch/x86/tools/relocs.c | 1 + 1 file changed, 1 insertion(+)