[PATCH] D40849: CodeGen: support an extension to pass linker options on ELF
Rui Ueyama via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 11 16:48:55 PST 2017
ruiu added a comment.
> It also means that it is harder to add features in the future for things which may not yet exist. As an example, there is no equivalent to this option today, but it would be pretty nice to have: -reexport-l<ibrary>. This would be equivalent to forwarders in COFF and LC_REEXPORT in the MachO. There is no ELF equivalent, but, were we to add that to the linker, this would now require changing the entire toolchain rather than forwarding the one single option.
I don't think that's true. You can still keep the compiler agnostic of the options embedded in object files.
My point is, if you want to add a feature to embed linker options to object files, you need to clearly define the semantics of each linker command line option when it appears in an object file instead of in the command line. In lld, we have a clear distinction of "command-line processing pass" and "file reading pass". Many linker options don't make sense if they appear in the middle of linking, especially when they are included in object files that were pulled out from archive files. if you expect that linkers could just do what they "naturally" should do for embedded options, I think I have to say that that's a false assumption. What I'm thinking "natural" could be very different from yours. So I think you need to define what is the correct behavior for each command line option for the new use case.
Repository:
rL LLVM
https://reviews.llvm.org/D40849
More information about the llvm-commits
mailing list