[llvm-dev] Linker Option support for ELF
Reid Kleckner via llvm-dev
llvm-dev at lists.llvm.org
Wed Jan 3 20:30:55 PST 2018
We should do this. ELF is the odd duck out that lacks this capability.
I agree with Rafael we should have a whitelist of flags that we support,
but I'd rather leave the syntax as more or less just a response file.
That's basically what's implemented for COFF.
Sent from phone
On Wed, Jan 3, 2018, 4:13 PM Rafael Avila de Espindola via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Saleem Abdulrasool via llvm-dev <llvm-dev at lists.llvm.org> writes:
> > Hello all,
> > There was some interest from a number of a few people about adding
> > for embedded linker options to ELF. This would be an extension that
> > requires linker support to actually work, but has significant prior art
> > with PE/COFF as well as MachO both having support for this.
> > The desire here is to actually add support to LLVM to pass along the
> > necessary information into the object file. In order to keep this
> > on that, this thread is specifically for the *backend*, we are not
> > discussing how to get the information to the backend here at all, but
> > assuming that the information is present in the same LLVM IR encoding
> > (llvm.linker-options module metadata string).
> > In order to have compatibility with existing linkers, I am suggesting the
> > use of an ELF note. These are implicitly dropped by the linker so we can
> > be certain that the options will not end up in the final binary even if
> > extension is not supported.
> So far LGTM.
> > The payload would be a 4-byte version
> > identifier (to allow future enhancements) and a null-terminated string of
> > options.
> > This allows for the backend to be entirely oblivious to the data as the
> > other backends and allows for extensions in the future without having to
> > teach the backend anything about the new functionality (again, something
> > which both of the other file formats support).
> That is the part I have issues with.
> A linker has a lot of command line options, we should not make them part
> of the object format. What happens if a file has a -strip-all,
> --gc-sections or -pie?
> I think the supported features should be explicitly documented and be
> encoded a option-number,argument pair.
> The format should also be discussed at least with the gnu linker
> maintainers and ideally on generic-abi at googlegroups.com.
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev