Martin Storsjö via llvm-dev
2018-May-21 09:34 UTC
[llvm-dev] Showcase of the Windows/ARM64/MinGW target
Hi, At the Build conference recently, Microsoft had a session about Windows on ARM(64), [1]. As case example of a large, nontrivial app rebuilt for this arch, they demonstrated VLC. The presentation claimed that this was built with MSVC, with zero changes to the source. This actually isn't true; the app that was demonstrated was actually built with Clang and LLD with mingw-w64 as SDK (and there had been quite a few minor fixes throughout the codebase to make it all build both with clang/libc++ for windows, and for windows on non x86 targets). Despite the pretty drastic miscommunication, I think it was nice to have at least the output from these tools demonstrated. (The presenter was reminded about how it actually was built after the presentation; apparently this information had been lost somewhere along the chain.) And as a fun fact, it can be mentioned that a large amout of the windows/arm64 support in LLVM/LLD was developed before I even had access to this OS for testing, or even MSVC for reference - most of it was developed and tested just with wine (bootstrapped from a handful of reference windows/arm64 binaries). Thanks to everybody who have helped make this happen! // Martin [1] https://www.youtube.com/watch?v=vdYIaUeZnqc
Hayden Livingston via llvm-dev
2018-May-21 10:15 UTC
[llvm-dev] Showcase of the Windows/ARM64/MinGW target
So are you saying that LLVM can be built as ARM64 on Windows now? CMake doesn't show me an option for ARM64 when using MSVC on Windows. I have the latest CMake. On Mon, May 21, 2018 at 2:34 AM, Martin Storsjö via llvm-dev <llvm-dev at lists.llvm.org> wrote:> Hi, > > At the Build conference recently, Microsoft had a session about Windows on > ARM(64), [1]. As case example of a large, nontrivial app rebuilt for this > arch, they demonstrated VLC. > > The presentation claimed that this was built with MSVC, with zero changes to > the source. > > This actually isn't true; the app that was demonstrated was actually built > with Clang and LLD with mingw-w64 as SDK (and there had been quite a few > minor fixes throughout the codebase to make it all build both with > clang/libc++ for windows, and for windows on non x86 targets). > > Despite the pretty drastic miscommunication, I think it was nice to have at > least the output from these tools demonstrated. (The presenter was reminded > about how it actually was built after the presentation; apparently this > information had been lost somewhere along the chain.) > > And as a fun fact, it can be mentioned that a large amout of the > windows/arm64 support in LLVM/LLD was developed before I even had access to > this OS for testing, or even MSVC for reference - most of it was developed > and tested just with wine (bootstrapped from a handful of reference > windows/arm64 binaries). > > Thanks to everybody who have helped make this happen! > > // Martin > > [1] https://www.youtube.com/watch?v=vdYIaUeZnqc > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
Martin Storsjö via llvm-dev
2018-May-21 10:38 UTC
[llvm-dev] Showcase of the Windows/ARM64/MinGW target
On Mon, 21 May 2018, Hayden Livingston wrote:> So are you saying that LLVM can be built as ARM64 on Windows now? > CMake doesn't show me an option for ARM64 when using MSVC on Windows. > I have the latest CMake.I'm saying that LLVM can produce code for the Windows/ARM64 target. As for compiling LLVM itself to run on ARM64 on Windows, I don't know how to configure MSVC to do that; MSVC doesn't install the ARM64 compiler by default but you manually need to check a box in the installer (available since 15.4, and more intended for actual public use since the 15.8 preview). No idea how you configure that in CMake. You can build LLVM+Clang for ARM64 with Clang/mingw-w64/libcxx though, with the same toolchain used to build VLC in that demo. // Martin