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

Sunho Kim via All-commits all-commits at lists.llvm.org
Fri Jul 29 00:48:45 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f1fcd06a2a29fc534cb9f365cb4a01559f3378ce
  Author: Sunho Kim <ksunhokim123 at naver.com>
  Date:   2022-07-29 (Fri, 29 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