<div dir="ltr">On Mon, Dec 26, 2016 at 6:22 PM, Vitaly Buka <span dir="ltr"><<a href="mailto:vitalybuka@google.com" target="_blank">vitalybuka@google.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">This fails here <a href="http://lab.llvm.org:8011/builders/sanitizer-windows/builds/3537/steps/run%20tests/logs/stdio" target="_blank">http://lab.llvm.org:8011/<wbr>builders/sanitizer-windows/<wbr>builds/3537/steps/run%20tests/<wbr>logs/stdio</a></div></blockquote><div><br></div><div>Thanks for letting me know.  Should be addressed in SVN r290571.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="gmail-HOEnZb"><div class="gmail-h5"><br><div class="gmail_quote"><div dir="ltr">On Sun, Dec 25, 2016 at 7:45 PM Saleem Abdulrasool via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Author: compnerd<br class="gmail-m_-7679553522810892447gmail_msg">
Date: Sun Dec 25 21:35:24 2016<br class="gmail-m_-7679553522810892447gmail_msg">
New Revision: 290533<br class="gmail-m_-7679553522810892447gmail_msg">
<br class="gmail-m_-7679553522810892447gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=290533&view=rev" rel="noreferrer" class="gmail-m_-7679553522810892447gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=290533&view=rev</a><br class="gmail-m_-7679553522810892447gmail_msg">
Log:<br class="gmail-m_-7679553522810892447gmail_msg">
Driver: warn on -fPIC/-fpic/-fPIE/-fpie on Windows<br class="gmail-m_-7679553522810892447gmail_msg">
<br class="gmail-m_-7679553522810892447gmail_msg">
Use of these flags would result in the use of ELF-style PIE/PIC code<br class="gmail-m_-7679553522810892447gmail_msg">
which is incorrect on Windows.  Windows is inherently PIC by means of<br class="gmail-m_-7679553522810892447gmail_msg">
the DLL slide that occurs at load.  This also mirrors the behaviour on<br class="gmail-m_-7679553522810892447gmail_msg">
GCC for MinGW.  Currently, the Windows x86_64 forces the relocation<br class="gmail-m_-7679553522810892447gmail_msg">
model to PIC (Level 2).  This is unchanged for now, though we should<br class="gmail-m_-7679553522810892447gmail_msg">
remove any assumptions on that and change it to a static relocation<br class="gmail-m_-7679553522810892447gmail_msg">
model.<br class="gmail-m_-7679553522810892447gmail_msg">
<br class="gmail-m_-7679553522810892447gmail_msg">
Added:<br class="gmail-m_-7679553522810892447gmail_msg">
    cfe/trunk/test/Driver/windows-<wbr>pic.cpp<br class="gmail-m_-7679553522810892447gmail_msg">
Modified:<br class="gmail-m_-7679553522810892447gmail_msg">
    cfe/trunk/lib/Driver/Tools.cpp<br class="gmail-m_-7679553522810892447gmail_msg">
<br class="gmail-m_-7679553522810892447gmail_msg">
Modified: cfe/trunk/lib/Driver/Tools.cpp<br class="gmail-m_-7679553522810892447gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=290533&r1=290532&r2=290533&view=diff" rel="noreferrer" class="gmail-m_-7679553522810892447gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/cfe/trunk/lib/Driver/<wbr>Tools.cpp?rev=290533&r1=<wbr>290532&r2=290533&view=diff</a><br class="gmail-m_-7679553522810892447gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="gmail-m_-7679553522810892447gmail_msg">
--- cfe/trunk/lib/Driver/Tools.cpp (original)<br class="gmail-m_-7679553522810892447gmail_msg">
+++ cfe/trunk/lib/Driver/Tools.cpp Sun Dec 25 21:35:24 2016<br class="gmail-m_-7679553522810892447gmail_msg">
@@ -3859,6 +3859,17 @@ ParsePICArgs(const ToolChain &ToolChain,<br class="gmail-m_-7679553522810892447gmail_msg">
                                     options::OPT_fpic, options::OPT_fno_pic,<br class="gmail-m_-7679553522810892447gmail_msg">
                                     options::OPT_fPIE, options::OPT_fno_PIE,<br class="gmail-m_-7679553522810892447gmail_msg">
                                     options::OPT_fpie, options::OPT_fno_pie);<br class="gmail-m_-7679553522810892447gmail_msg">
+  if (Triple.isOSWindows() && LastPICArg &&<br class="gmail-m_-7679553522810892447gmail_msg">
+      LastPICArg ==<br class="gmail-m_-7679553522810892447gmail_msg">
+          Args.getLastArg(options::OPT_<wbr>fPIC, options::OPT_fpic,<br class="gmail-m_-7679553522810892447gmail_msg">
+                          options::OPT_fPIE, options::OPT_fpie)) {<br class="gmail-m_-7679553522810892447gmail_msg">
+    ToolChain.getDriver().Diag(<wbr>diag::err_drv_unsupported_opt_<wbr>for_target)<br class="gmail-m_-7679553522810892447gmail_msg">
+        << LastPICArg->getSpelling() << Triple.str();<br class="gmail-m_-7679553522810892447gmail_msg">
+    if (Triple.getArch() == llvm::Triple::x86_64)<br class="gmail-m_-7679553522810892447gmail_msg">
+      return std::make_tuple(llvm::Reloc::<wbr>PIC_, 2U, false);<br class="gmail-m_-7679553522810892447gmail_msg">
+    return std::make_tuple(llvm::Reloc::<wbr>Static, 0U, false);<br class="gmail-m_-7679553522810892447gmail_msg">
+  }<br class="gmail-m_-7679553522810892447gmail_msg">
+<br class="gmail-m_-7679553522810892447gmail_msg">
   // Check whether the tool chain trumps the PIC-ness decision. If the PIC-ness<br class="gmail-m_-7679553522810892447gmail_msg">
   // is forced, then neither PIC nor PIE flags will have no effect.<br class="gmail-m_-7679553522810892447gmail_msg">
   if (!ToolChain.<wbr>isPICDefaultForced()) {<br class="gmail-m_-7679553522810892447gmail_msg">
<br class="gmail-m_-7679553522810892447gmail_msg">
Added: cfe/trunk/test/Driver/windows-<wbr>pic.cpp<br class="gmail-m_-7679553522810892447gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/windows-pic.cpp?rev=290533&view=auto" rel="noreferrer" class="gmail-m_-7679553522810892447gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/cfe/trunk/test/Driver/<wbr>windows-pic.cpp?rev=290533&<wbr>view=auto</a><br class="gmail-m_-7679553522810892447gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="gmail-m_-7679553522810892447gmail_msg">
--- cfe/trunk/test/Driver/windows-<wbr>pic.cpp (added)<br class="gmail-m_-7679553522810892447gmail_msg">
+++ cfe/trunk/test/Driver/windows-<wbr>pic.cpp Sun Dec 25 21:35:24 2016<br class="gmail-m_-7679553522810892447gmail_msg">
@@ -0,0 +1,59 @@<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows -fPIC %s 2>&1 | FileCheck -check-prefix CHECK-PIC-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows -fpic %s 2>&1 | FileCheck -check-prefix CHECK-pic-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows -fPIE %s 2>&1 | FileCheck -check-prefix CHECK-PIE-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows -fpie %s 2>&1 | FileCheck -check-prefix CHECK-pie-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows -fPIC -fno-pic %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows -Fpic -fno-pic %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows -fPIE -fno-pie %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows -fpie -fno-pie %s<br class="gmail-m_-7679553522810892447gmail_msg">
+<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-itanium -fPIC %s 2>&1 | FileCheck -check-prefix CHECK-PIC-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-itanium -fpic %s 2>&1 | FileCheck -check-prefix CHECK-pic-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-itanium -fPIE %s 2>&1 | FileCheck -check-prefix CHECK-PIE-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-itanium -fpie %s 2>&1 | FileCheck -check-prefix CHECK-pie-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-itanium -fPIC -fno-pic %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-itanium -Fpic -fno-pic %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-itanium -fPIE -fno-pie %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-itanium -fpie -fno-pie %s<br class="gmail-m_-7679553522810892447gmail_msg">
+<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-gnu -fPIC %s 2>&1 | FileCheck -check-prefix CHECK-PIC-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-gnu -fpic %s 2>&1 | FileCheck -check-prefix CHECK-pic-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-gnu -fPIE %s 2>&1 | FileCheck -check-prefix CHECK-PIE-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-gnu -fpie %s 2>&1 | FileCheck -check-prefix CHECK-pie-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-gnu -fPIC -fno-pic %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-gnu -Fpic -fno-pic %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-gnu -fPIE -fno-pie %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target i686-windows-gnu -fpie -fno-pie %s<br class="gmail-m_-7679553522810892447gmail_msg">
+<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows -fPIC %s 2>&1 | FileCheck -check-prefix CHECK-PIC-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows -fpic %s 2>&1 | FileCheck -check-prefix CHECK-pic-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows -fPIE %s 2>&1 | FileCheck -check-prefix CHECK-PIE-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows -fpie %s 2>&1 | FileCheck -check-prefix CHECK-pie-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows -fPIC -fno-pic %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows -Fpic -fno-pic %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows -fPIE -fno-pie %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows -fpie -fno-pie %s<br class="gmail-m_-7679553522810892447gmail_msg">
+<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-itanium -fPIC %s 2>&1 | FileCheck -check-prefix CHECK-PIC-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-itanium -fpic %s 2>&1 | FileCheck -check-prefix CHECK-pic-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-itanium -fPIE %s 2>&1 | FileCheck -check-prefix CHECK-PIE-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-itanium -fpie %s 2>&1 | FileCheck -check-prefix CHECK-pie-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-itanium -fPIC -fno-pic %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-itanium -Fpic -fno-pic %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-itanium -fPIE -fno-pie %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-itanium -fpie -fno-pie %s<br class="gmail-m_-7679553522810892447gmail_msg">
+<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-gnu -fPIC %s 2>&1 | FileCheck -check-prefix CHECK-PIC-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-gnu -fpic %s 2>&1 | FileCheck -check-prefix CHECK-pic-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-gnu -fPIE %s 2>&1 | FileCheck -check-prefix CHECK-PIE-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-gnu -fpie %s 2>&1 | FileCheck -check-prefix CHECK-pie-ERROR %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-gnu -fPIC -fno-pic %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-gnu -Fpic -fno-pic %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-gnu -fPIE -fno-pie %s<br class="gmail-m_-7679553522810892447gmail_msg">
+// RUN: %clang -### -target x86_64-windows-gnu -fpie -fno-pie %s<br class="gmail-m_-7679553522810892447gmail_msg">
+<br class="gmail-m_-7679553522810892447gmail_msg">
+// CHECK-PIC-ERROR: unsupported option '-fPIC' for target '{{.*}}<br class="gmail-m_-7679553522810892447gmail_msg">
+// CHECK-pic-ERROR: unsupported option '-fpic' for target '{{.*}}<br class="gmail-m_-7679553522810892447gmail_msg">
+// CHECK-PIE-ERROR: unsupported option '-fPIE' for target '{{.*}}<br class="gmail-m_-7679553522810892447gmail_msg">
+// CHECK-pie-ERROR: unsupported option '-fpie' for target '{{.*}}<br class="gmail-m_-7679553522810892447gmail_msg">
+<br class="gmail-m_-7679553522810892447gmail_msg">
<br class="gmail-m_-7679553522810892447gmail_msg">
<br class="gmail-m_-7679553522810892447gmail_msg">
______________________________<wbr>_________________<br class="gmail-m_-7679553522810892447gmail_msg">
cfe-commits mailing list<br class="gmail-m_-7679553522810892447gmail_msg">
<a href="mailto:cfe-commits@lists.llvm.org" class="gmail-m_-7679553522810892447gmail_msg" target="_blank">cfe-commits@lists.llvm.org</a><br class="gmail-m_-7679553522810892447gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" class="gmail-m_-7679553522810892447gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-commits</a><br class="gmail-m_-7679553522810892447gmail_msg">
</blockquote></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Saleem Abdulrasool<br>compnerd (at) compnerd (dot) org</div>
</div></div>