[PATCH] D96914: [ELF] Add -z start-stop-gc to let __start_/__stop_ not retain C identifier name sections
David Chisnall via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 8 05:29:49 PST 2021
theraven added a comment.
I completely agree with @jrtc27 on this, specifically:
> This is a version lockstep question. How well can an LLD of version X support llvm-project of version Y?
There is *no* dependency between the version of any consumer of the LLVM CodeGen libraries and and a specific linker version, LLVM or otherwise, except in three cases:
- A specific linker version may be unsupported because it has bugs.
- A specific linker version may be the minimum supported version for an opt-in feature in the compiler.
- If doing LTO, LLD must be no older than the compiler (this one falls out from the bitcode compatibility guarantees).
In particular, using LLVM in your compiler front-end does not impose a requirement to use LLD as your system linker. Historically this was because LLD didn't exist but now it remains an important use case. Typically, the linker is a global system component for a given target, whereas language front ends may or may not be. If LLD had to be version locked with clang, rustc, ldc, and every other LLVM-based compiler front end then it would be almost impossible for an LLVM-based compiler ecosystem to exist. It must be possible to upgrade compilers and link modules generated by the system's C/C++ compiler (which may or may not be clang) using the system's linker (which may or may not be LLD).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D96914/new/
https://reviews.llvm.org/D96914
More information about the llvm-commits
mailing list