New testing workflow for Windows (was Re: [PATCH] [DOCS] How to Setup a Windows Builder)
alp at nuanti.com
Thu Nov 14 14:23:19 PST 2013
On 14/11/2013 22:16, Mikael Lyngvig wrote:
> Alp, is there something I can do to help you out with finalizing this?
> I am very excited about this path through the maze of Unix-style
> components needed to build LLVM on Windows. I sort of hope that your
> method will solve all known problems in the world and that Paradise
> will be a reality the day after tomorrow as a result of using your
> stuff :-)
Thanks for the encouragement, ran out of time yesterday but going to
push it out this week :-)
It certainly changes the Windows experience, and potentially will find
other uses like simple cross-testing using qemu without a full chroot/VM
so yeah, it is exciting!
> If necessary, I can take over the job of maintaining your patches when
> a new version of BusyBox hits the street (which rarely, it seems).
There are actually a couple of bits that I could do with help fixing
once I push the changes. The 'not' built-in utility is using a tokenizer
hack in the ash shell I don't like, perhaps you could help me dig into
> 2013/11/13 Alp Toker <alp at nuanti.com <mailto:alp at nuanti.com>>
> On 13/11/2013 01:06, Sean Silva wrote:
>> +**Notice:** If you do not plan to run the test suite, or sshd
>> server, you don't
>> +need Cygwin. You can build LLVM + Clang with only Subversion,
>> MingwNN, and CMake.
>> I feel like the way you are handling these notices is backwards.
> This is all very complicated and difficult to document!
> I'd like to share an alternative..
> At Nuanti we have a setup that can run the full test suite
> natively on Windows using only the native Microsoft toolchain and
> a special BusyBox binary, so we don't even install MingW or Cygwin
> on Windows development systems.
> This has a number of benefits:
> * Full test coverage. Our BusyBox is patched to be compatible
> with Unix so we get to run tests that would usually fail due
> to REQURES/XFAIL mingw/shell/shell-preserves-root.
> * No need for Administrator access. There is nothing to install,
> no GNU this or that, just a fresh SVN/git checkout from
> llvm.org <http://llvm.org>.
> * Easy to set up. Just drop the single binary in your PATH or
> lit folder.
> * Escaping and /dev/null hacks for Windows in lit are no longer
> * Full in-process execution. Forking is slow on Windows, but
> with our approach a full test suite run is reduced close to
> native timings comparable to other platforms.
> I was planning to upstream this work later in the 3.5 cycle but
> looking at how painful the process is at present, and more so the
> effort to document it, I feel now like it might be worth pushing
> ahead earlier.
> The patch to lit itself is very small / low-impact and most of the
> work is in BusyBox itself.
> I can get this work Open Sourced along with a build of the drop-in
> llvm-busybox.exe later today if it sounds desirable.
> Certainly it'd reduce much of this document to just "Copy
> llvm-busybox.exe into your PATH"
> How does this sound?
> If you like the idea, let me know soon as today's the best time
> for me to pull this all together and post the lit side of the work
> for review.
> the browser experts
the browser experts
More information about the llvm-commits