<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">(elaborating with a real keyboard)</div><div class="gmail_quote"><br></div><div class="gmail_quote">Our experience with clang-cl is more like the following:</div><div class="gmail_quote">- Many of the options are different spellings of the same thing. We alias them in tablegen.</div><div class="gmail_quote">- Many of the options are irrelevant and can be ignored for compatibility. We do this in tablegen.</div><div class="gmail_quote">- Many of the options look like aliases, but are actually annoyingly subtly different (-EHs- vs -fno-exceptions, -GR- vs -fno-rtti). We handle these manually.</div><div class="gmail_quote">- A small number of options provide new functionality, and need to be passed through LangOptions, which is similar to LLD's Config object. (--defsym)</div><div class="gmail_quote"><br></div><div class="gmail_quote">I am not suggesting that there should be a common driver between ELF and COFF. As we have discovered, they perform different steps in different orders, so I don't think we want this. I am only suggesting that the options tablegen files can be partially shared, so that we don't have to write down "--defsym" twice.</div><div class="gmail_quote"><br></div><div class="gmail_quote">I also don't think we need more symlinks or copies of the LLD binary. The GNU options and the MSVC options don't appear to conflict, so we can probably accept both together. It sounds like Saleem is in favor of this approach.</div><div class="gmail_quote"><br></div><div class="gmail_quote">To sum up, I think adding a gnu ld command line interface for COFF should primarily be a tablegen change instead of a C++ change. There may be GNU ld flag parsing utilities that we want to share between ELF and COFF, but we should only share those, and not the whole driver.</div><div class="gmail_quote"><br></div><div class="gmail_quote">----</div><div class="gmail_quote"><br></div><div class="gmail_quote">Also, I guess it's not -rdynamic that we want to support, but the mingw equivalent called --export-all-symbols. It's useful to projects (like LLVM!) that don't have any dllexport annotations, but want to build a DLL that exports the same set of things that would be dynamically visible in an ELF shared object.</div><div class="gmail_quote"><br></div><div class="gmail_quote">On Mon, Aug 17, 2015 at 11:41 PM, Rui Ueyama <span dir="ltr"><<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I guess that the experience of the compiler is not directly applicable to this because the architecture is pretty different. I'd like to know which options cannot be mapped to link.exe options, which can, and which options don't have to be supported (some GNU ld options for PE/COFF seem to implement experimental features which does not seem to me to have to be supported). Also, do we have to support linker script on Windows?</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 18, 2015 at 12:28 PM, Reid Kleckner <span dir="ltr"><<a href="mailto:rnk@google.com" target="_blank">rnk@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">I don't think a pure aliasing or wrapping approach will work long term. There are things like -rdynamic that we want to support but they have no link.exe analogue.</p>
<p dir="ltr">Sent from phone</p><div><div>
<div class="gmail_quote">On Aug 17, 2015 7:50 PM, "Saleem Abdulrasool" <<a href="mailto:compnerd@compnerd.org" target="_blank">compnerd@compnerd.org</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">compnerd added a comment.<br>
<br>
@rnk, fwiw, that sounds very much in line with what I was trying to push for.  AFAIK, the options don't conflict.<br>
<br>
<br>
<a href="http://reviews.llvm.org/D12029" rel="noreferrer" target="_blank">http://reviews.llvm.org/D12029</a><br>
<br>
<br>
<br>
</blockquote></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>