[Buildroot] host=win32

Arnout Vandecappelle arnout at mind.be
Sun Apr 17 14:34:26 UTC 2016


  Hi Daniel,

On 04/16/16 23:11, Daniel Franzini wrote:
> Hello all.
>
> I'm new to buildroot but a reasonably seasoned software developer. Now I'm
> having some issues with old toolchains (uclibc-targetted) for custom boards
> developed by a partner of mine.
>
> Using buildroot, in a almost out-of-the-box setup (arm-linux-uclibc) I can
> actually create a shiny new toolchain for these board and that is pretty much fine.
>
> The thing is that most of our developers use Windows based workstations. So I
> have done some research on tools that could be used to generate a Windows
> hostable toolchain and here I am.

  To start with: there is very little interest in the Buildroot community to 
maintain such a feature. I'm not even sure if it is possible to build a Linux 
kernel on Windows.

  But as far as I understand, you're actually only interested in the toolchain 
itself, not building packages and a rootfs?


> From what I could understand from the manuals,
> it is possible to use a external toolchain to build the desired toolchain in
> buildroot. So here are the questions:
>
> 1.) Can this external toolchain be mingw-baed? There are pre-packaged mingw tool
> for several mainstream linux distros (Debian, Ubuntu) and I tought they could be
> with buildroot. There are also some software that is cross-compiled from Linux
> to Win32 (FileZila).

  The mingw toolchain on Debian allows you to cross-build Windows binaries on 
your Debian system. So if your goal is to use buildroot to build for a board 
that is running Windows, yes, then this would be an option. Well, except that it 
wouldn't work, of course :-) But I guess this is anyway not what you want.

  What you want is to use the mingw toolchain as your "host" toolchain, so that 
the cross-compiler that is created will run on Windows. This can be done by 
passing HOSTCC=<path-to-mingw> and same for HOSTCXX and HOSTCPP. Except that 
this also doesn't work, because buildroot will try to actually run these 
binaries (e.g. to compile the standard C library).

>
> 2.) Is there any serious limitation with the mingw tools that prevent them from
> building gcc inside Linux? I mean, if they can build some software, they can
> build gcc also. What is, if any, the problem with mingw tools?

  The problem is that a toolchain is not just a compiler. A toolchain also has a 
standard C library, a standard C++ library, binutils (linker, assembler, ...), 
and all of that has to be installed in a sysroot so the cross-compiler can find 
the correct headers and binaries when building the software. Creating such a 
cross-compiler that runs on a different platform than the one you're building on 
is called a Canadian cross-compiler. Buildroot doesn't support that. 
Crosstool-NG has limited support for it, but it is extremely fragile.

  You're much better of teaching your team to us buildroot in a VM. We now ship 
a vagrantfile that should make it trivial to set up such a VM [1]. On current 
hardware with virtualization extension, the overhead of running in a VM seems to 
be acceptable. You can add some scripts on the Windows side to automate ssh-ing 
into the VM and starting a build.

  That said, I personally believe that it's better if your Windows-based 
developers just develop the application code natively in Windows, and offload 
the target builds to either CI infra or ssh into a dedicated (Linux) build 
server. A decent headless build machine costs less than 300 euros nowadays, and 
it just makes life a lot easier.

  Regards,
  Arnout


[1] https://buildroot.org/downloads/manual/manual.html#getting-buildroot

>
> 3.) I'm willing to give this a try but I still have to figure out things in
> buildroot. Does anyone has a good starting point?
>
>
> Thanks in advance.
>
> --
> Daniel
>
> "Let us change our traditional attitude to the construction of programs. Instead
> of imagining that our main task is to instruct a computer what to do, let us
> concentrate rather on explaining to human beings what we want a computer to do."
> (Donald Knuth)
>
> "Yes, technogeeks can be funny, even if only to each other."
> (http://www.boogieonline.com/revolution/science/humor/)"
>
> "Man is driven to create; I know I really love to create things. And while I'm
> not good at painting, drawing, or music, I can write software." (Yukihiro
> Matsumoto, a.k.a. ``Matz'')
>
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF


More information about the buildroot mailing list