[all-commits] [llvm/llvm-project] 881813: [JITLink][COFF] Implement include/alternatename li...

Sunho Kim via All-commits all-commits at lists.llvm.org
Sat Jul 30 15:50:14 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 88181375a3db11687ec318b4518fe64dbbccf5e7
  Author: Sunho Kim <ksunhokim123 at gmail.com>
  Date:   2022-07-31 (Sun, 31 Jul 2022)

  Changed paths:
    M llvm/lib/ExecutionEngine/JITLink/CMakeLists.txt
    A llvm/lib/ExecutionEngine/JITLink/COFFDirectiveParser.cpp
    A llvm/lib/ExecutionEngine/JITLink/COFFDirectiveParser.h
    M llvm/lib/ExecutionEngine/JITLink/COFFLinkGraphBuilder.cpp
    M llvm/lib/ExecutionEngine/JITLink/COFFLinkGraphBuilder.h
    A llvm/lib/ExecutionEngine/JITLink/COFFOptions.td
    A llvm/test/ExecutionEngine/JITLink/X86/COFF_directive_alternatename.s
    A llvm/test/ExecutionEngine/JITLink/X86/COFF_directive_alternatename_fail.s
    A llvm/test/ExecutionEngine/JITLink/X86/COFF_directive_include.s

  Log Message:
  [JITLink][COFF] Implement include/alternatename linker directive.

Implements include/alternatename linker directive. Alternatename is used by static msvc runtime library. Alias symbol is technically incorrect (we have to search for external definition) but we don't have a way to represent this in jitlink/orc yet, this is solved in the following up patch.

Inlcude linker directive is used in ucrt to forcelly lookup the static initializer symbols so that they will be emitted. It's implemented as extenral symbols with live flag on that cause the lookup of these symbols.

Reviewed By: lhames

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

More information about the All-commits mailing list