[driver] Allow ld
as a driver alias to lld (#90515)
This adds a "hidden" alias kind that allows using LLD when symlinked as `ld`; however, it does not install `ld` as a symlink. This is to allow either using a mixed toolchain with both LLD and GNU ld, or a pure LLD toolchain where LLD has been installed (or symlinked) to `ld` for compatibility w/ older tools that expect `ld`.
This commit is contained in:
parent
975eca0e6a
commit
9d955a63c7
@ -42,3 +42,7 @@ endif()
|
|||||||
foreach(link ${LLD_SYMLINKS_TO_CREATE})
|
foreach(link ${LLD_SYMLINKS_TO_CREATE})
|
||||||
add_lld_symlink(${link} lld)
|
add_lld_symlink(${link} lld)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
if(LLVM_TOOL_LLVM_DRIVER_BUILD)
|
||||||
|
set_property(GLOBAL APPEND PROPERTY LLVM_DRIVER_HIDDEN_TOOL_ALIASES_lld ld)
|
||||||
|
endif()
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
# REQUIRES: llvm-driver, lld
|
# REQUIRES: llvm-driver, lld
|
||||||
|
|
||||||
# RUN: %llvm ld.lld --help | FileCheck %s
|
# RUN: %llvm ld.lld --help | FileCheck %s
|
||||||
|
# RUN: %llvm ld --help | FileCheck %s
|
||||||
# RUN: %llvm lld -flavor ld.lld --help | FileCheck %s
|
# RUN: %llvm lld -flavor ld.lld --help | FileCheck %s
|
||||||
|
# RUN: %llvm ld -flavor ld.lld --help | FileCheck %s
|
||||||
|
|
||||||
# CHECK: supported targets: elf
|
# CHECK: supported targets: elf
|
||||||
|
@ -13,6 +13,11 @@ foreach(tool ${LLVM_DRIVER_TOOLS})
|
|||||||
string(REPLACE "llvm-" "" alias ${alias})
|
string(REPLACE "llvm-" "" alias ${alias})
|
||||||
set(def_decl "${def_decl}LLVM_DRIVER_TOOL(\"${alias}\", ${tool_entry})\n")
|
set(def_decl "${def_decl}LLVM_DRIVER_TOOL(\"${alias}\", ${tool_entry})\n")
|
||||||
endforeach()
|
endforeach()
|
||||||
|
get_property(hidden_tool_aliases GLOBAL PROPERTY LLVM_DRIVER_HIDDEN_TOOL_ALIASES_${tool})
|
||||||
|
foreach(alias ${hidden_tool_aliases})
|
||||||
|
string(REPLACE "llvm-" "" alias ${alias})
|
||||||
|
set(def_decl "${def_decl}LLVM_DRIVER_TOOL(\"${alias}\", ${tool_entry})\n")
|
||||||
|
endforeach()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
file(WRITE
|
file(WRITE
|
||||||
|
@ -37,7 +37,7 @@ _TOOLS = {
|
|||||||
# aliases for a given tool.
|
# aliases for a given tool.
|
||||||
_EXTRA_ALIASES = {
|
_EXTRA_ALIASES = {
|
||||||
"clang": ["clang++", "clang-cl", "clang-cpp"],
|
"clang": ["clang++", "clang-cl", "clang-cpp"],
|
||||||
"lld": ["lld-link", "ld.lld", "ld64.lld", "wasm-ld"],
|
"lld": ["ld", "lld-link", "ld.lld", "ld64.lld", "wasm-ld"],
|
||||||
"llvm-ar": ["ranlib", "lib", "dlltool"],
|
"llvm-ar": ["ranlib", "lib", "dlltool"],
|
||||||
"llvm-objcopy": ["bitcode-strip", "install-name-tool", "strip"],
|
"llvm-objcopy": ["bitcode-strip", "install-name-tool", "strip"],
|
||||||
"llvm-objdump": ["otool"],
|
"llvm-objdump": ["otool"],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user