<div dir="ltr">It cannot be optional if you are using the MSVC linker with the /incremental option.  Not setting the timestamp will cause the linker to not consider the object file as it will be considered older than the executable.<div><br></div><div>We can disable it for MinGW targets but I don't think we can for MSVC ones.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 4, 2015 at 6:17 PM, NAKAMURA Takumi via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: chapuni<br>
Date: Fri Sep  4 20:17:49 2015<br>
New Revision: 246905<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=246905&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=246905&view=rev</a><br>
Log:<br>
WinCOFFObjectWriter.cpp: Roll back TimeDateStamp along ENABLE_TIMESTAMPS.<br>
<br>
We want a deterministic output. GNU AS leaves it zero.<br>
<br>
FIXME: It may be optional by its user, like llc and clang.<br>
<br>
Modified:<br>
    llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp<br>
<br>
Modified: llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp?rev=246905&r1=246904&r2=246905&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp?rev=246905&r1=246904&r2=246905&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp (original)<br>
+++ llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp Fri Sep  4 20:17:49 2015<br>
@@ -1013,12 +1013,17 @@ void WinCOFFObjectWriter::writeObject(MC<br>
<br>
   Header.PointerToSymbolTable = offset;<br>
<br>
+#if (ENABLE_TIMESTAMPS == 1)<br>
   // MS LINK expects to be able to use this timestamp to implement their<br>
   // /INCREMENTAL feature.<br>
   std::time_t Now = time(nullptr);<br>
   if (Now < 0 || !isUInt<32>(Now))<br>
     Now = UINT32_MAX;<br>
   Header.TimeDateStamp = Now;<br>
+#else<br>
+  // We want a deterministic output. It looks like GNU as also writes 0 in here.<br>
+  Header.TimeDateStamp = 0;<br>
+#endif<br>
<br>
   // Write it all to disk...<br>
   WriteFileHeader(Header);<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>