[all-commits] [llvm/llvm-project] 6daa4b: [LLD] [COFF] Warn about pseudo relocations that ar...

Martin Storsjö via All-commits all-commits at lists.llvm.org
Tue Jul 11 13:43:52 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6daa4b90e28ef4789ae0eb3163c6770c110d3a28
      https://github.com/llvm/llvm-project/commit/6daa4b90e28ef4789ae0eb3163c6770c110d3a28
  Author: Martin Storsjö <martin at martin.st>
  Date:   2023-07-11 (Tue, 11 Jul 2023)

  Changed paths:
    M lld/COFF/Chunks.cpp
    M lld/test/CMakeLists.txt
    A lld/test/COFF/autoimport-nowarn.s
    A lld/test/COFF/autoimport-warn.s

  Log Message:
  -----------
  [LLD] [COFF] Warn about pseudo relocations that are too narrow

In 64 bit mode, any references to symbols that might end up autoimported
must be made via full 64 bit pointers (usually in .refptr stubs
generated by the compiler).

If referenced via e.g. a 32 bit rip relative offset, it might work
as long as DLLs are loaded close together in the 64 bit address
space, but will fail surprisingly later if they happen to be loaded
further apart. Any cases of that happening is usually a toolchain
error, and the sooner we can warn about it, the easier it is to diagnose.

Differential Revision: https://reviews.llvm.org/D154777




More information about the All-commits mailing list