<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body smarttemplateinserted="true" bgcolor="#FFFFFF" text="#000000">
    <div id="smartTemplate4-template">
      <p> Forgot to mention you can build static version only, shared
        fails with <a class="moz-txt-link-freetext" href="https://reviews.llvm.org/P7981">https://reviews.llvm.org/P7981</a><br>
      </p>
    </div>
    <br>
    <p><br>
    </p>
    <br>
    <div id="smartTemplate4-quoteHeader">------ Original Message ------<br>
      Subject: Re: [cfe-dev] [libc++] Compiling with MinGW-w64<br>
      Date: Sat, 1 Apr 2017 00:11:37 +0200<br>
      To: Reid Kleckner, Eric Fiselier, Cfe-dev<br>
      From: Mateusz Mikuła</div>
    <blockquote
      cite="mid:04afeb3f-306d-aac9-181b-aacc06abfe79@gmail.com"
      type="cite">
      <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
      Fantastic but looks like those libs are not linked when using
      libc++ with Clang: <a moz-do-not-send="true"
        class="moz-txt-link-freetext"
        href="https://reviews.llvm.org/P7980">https://reviews.llvm.org/P7980</a><br>
      <p>Patches I applied to 4.0.0 release sources:</p>
      <p>libc++: Reid's patch and this big, ugly and invasive patch <a
          moz-do-not-send="true"
href="https://github.com/mati865/MINGW-packages/blob/clang/mingw-w64-clang/0401-mingw-w64-hack-and-slash-fixes-for-libc.patch">[1]
        </a><br>
      </p>
      <p>libc++abi: <a moz-do-not-send="true"
href="https://github.com/mati865/MINGW-packages/blob/clang/mingw-w64-clang/0701-fix-visibility-for-libc-abi-on-win32.patch">[2]</a>
        which is most likely fixed by <a moz-do-not-send="true"
href="https://github.com/llvm-mirror/libcxxabi/commit/54227aec1d6116c936afa576e2ea36ca3e94b29c">D26949
          [3]</a><br>
      </p>
      <p>libunwind: potentially dangerous <a moz-do-not-send="true"
href="https://github.com/mati865/MINGW-packages/blob/clang/mingw-w64-clang/0601-libunwind-add-support-for-mingw-w64.patch">[4]</a><br>
      </p>
      <p><br>
      </p>
      <p>[1]
        <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://github.com/mati865/MINGW-packages/blob/clang/mingw-w64-clang/0401-mingw-w64-hack-and-slash-fixes-for-libc.patch">https://github.com/mati865/MINGW-packages/blob/clang/mingw-w64-clang/0401-mingw-w64-hack-and-slash-fixes-for-libc.patch</a></p>
      <p>[2]
        <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://github.com/mati865/MINGW-packages/blob/clang/mingw-w64-clang/0701-fix-visibility-for-libc-abi-on-win32.patch">https://github.com/mati865/MINGW-packages/blob/clang/mingw-w64-clang/0701-fix-visibility-for-libc-abi-on-win32.patch</a></p>
      <p>[3]
        <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://github.com/llvm-mirror/libcxxabi/commit/54227aec1d6116c936afa576e2ea36ca3e94b29c">https://github.com/llvm-mirror/libcxxabi/commit/54227aec1d6116c936afa576e2ea36ca3e94b29c</a><br>
      </p>
      <p>[4]
        <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://github.com/mati865/MINGW-packages/blob/clang/mingw-w64-clang/0601-libunwind-add-support-for-mingw-w64.patch">https://github.com/mati865/MINGW-packages/blob/clang/mingw-w64-clang/0601-libunwind-add-support-for-mingw-w64.patch</a></p>
      <p><br>
      </p>
      <p>Regards,</p>
      <p>Mateusz<br>
      </p>
      <br>
      <div id="smartTemplate4-quoteHeader">------ Original Message ------<br>
        Subject: Re: [cfe-dev] [libc++] Compiling with MinGW-w64<br>
        Date: Thu, 30 Mar 2017 17:29:24 -0700<br>
        To: Mateusz Mikuła, Eric Fiselier, Cfe-dev<br>
        From: Reid Kleckner</div>
      <blockquote
cite="mid:CACs=tyK8ZPH5CDj=LkP0auaom3C6T=AYYvg_cfGJytLJzU8NzQ@mail.gmail.com"
        type="cite">
        <div dir="ltr">I ran into this today and took a stab at fixing
          it:
          <div><a moz-do-not-send="true"
              href="https://reviews.llvm.org/D31518">https://reviews.llvm.org/D31518</a><br>
          </div>
          <div><br>
          </div>
          <div>It's probably a terrible fix, but I needed most of those
            mingw libraries to get basic programs linking. I could
            rewrite the patch using more auto-conf-y style tests, but
            they are slow and unreliable.</div>
        </div>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Fri, Mar 17, 2017 at 3:34 PM,
            Mateusz Mikuła via cfe-dev <span dir="ltr"><<a
                moz-do-not-send="true"
                href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@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">
              <div bgcolor="#FFFFFF" text="#000000">
                <p>Hello,</p>
                <p>I'm planing to get libc++ compiling with MinGW-w64,
                  right now without patches it fails with:</p>
                <blockquote>
                  <p>CMake Error at projects/libcxx/CMakeLists.<wbr>txt:396
                    (message):<br>
                      C++11 or greater is required but the compiler does
                    not support c++11</p>
                </blockquote>
                <p>It is caused by adding `-nodefaultlibs` flag (it
                  passes it's own check <a moz-do-not-send="true"
href="https://github.com/llvm-mirror/libcxx/blob/master/cmake/config-ix.cmake#L27"
                    target="_blank">[1]</a>). However many following
                  checks fail due to undefined references, results with
                  gcc <a moz-do-not-send="true"
                    href="https://reviews.llvm.org/P7975"
                    target="_blank">[2]</a> and clang <a
                    moz-do-not-send="true"
                    href="https://reviews.llvm.org/P7976"
                    target="_blank">[3]</a>.</p>
                <p>Hard-coding 0 for LIBCXX_SUPPORTS_NODEFAULTLIBS_<wbr>FLAG
                  allows it go finish configuration and fail during
                  build (that's another story). <br>
                </p>
                <p>`-nodefaultlibs` appears several times in libc++ and
                  libc++abi code and I'm not sure about cleanest way to
                  fix/workaround it.</p>
                <p>Any suggestions?<br>
                </p>
                <p><br>
                </p>
                <p>[1] <a moz-do-not-send="true"
                    class="m_8192861613337471926moz-txt-link-freetext"
href="https://github.com/llvm-mirror/libcxx/blob/master/cmake/config-ix.cmake#L27"
                    target="_blank">https://github.com/llvm-<wbr>mirror/libcxx/blob/master/<wbr>cmake/config-ix.cmake#L27</a></p>
                <p>[2] <a moz-do-not-send="true"
                    class="m_8192861613337471926moz-txt-link-freetext"
                    href="https://reviews.llvm.org/P7975"
                    target="_blank">https://reviews.llvm.org/P7975</a><br>
                </p>
                <p>[3] <a moz-do-not-send="true"
                    class="m_8192861613337471926moz-txt-link-freetext"
                    href="https://reviews.llvm.org/P7976"
                    target="_blank">https://reviews.llvm.org/P7976</a></p>
                <p><br>
                </p>
                <p>Thanks,</p>
                <p>Mateusz<br>
                </p>
              </div>
              <br>
              ______________________________<wbr>_________________<br>
              cfe-dev mailing list<br>
              <a moz-do-not-send="true"
                href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
              <a moz-do-not-send="true"
                href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev"
                rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
              <br>
            </blockquote>
          </div>
          <br>
        </div>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </body>
</html>