[llvm-dev] Embedding LLD version to executables

Mehdi Amini via llvm-dev llvm-dev at lists.llvm.org
Tue Oct 18 20:22:00 PDT 2016


> On Oct 18, 2016, at 6:44 PM, Rui Ueyama via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> I'd like to make LLD embed version information so that we can determine if an executable was created by LLD and if that's the case which version of LLD.

Pardon my ignorance, but what’s the motivation?

We don’t embed the clang version in every binary clang generates for instance.

> 
> ld.bfd doesn't seem to embed any information, so we cannot tell whether an executable was linked by ld.bfd or not easily.
> 
> ld.gold embeds a string "GNU gold <version>" as ".note.gnu.gold-version" section contents.
> 
> I'm wondering what we should do for LLD. The gold's way seems almost right, but I think we don't want to use the same section name because it contains "gold" as part of the section name. However, at the same time, I don't believe we want to create ".note.gnu.lld-version", because if we do, all programs that determine linker version need to look at ".note.gnu.<linker-name>-version" for all known linkers. That's absurd. (Also, our product is not GNU, so ".gnu" part is probably irrelevant.)
> 
> I'm leaning towards ".note.linker-version" in hope that other linkers follow it.

At least that would look much better than a .gnu.xxxx

— 
Mehdi




More information about the llvm-dev mailing list