Comment 0 for bug 1742188

Revision history for this message
Erlkoenig (profclonk) wrote : Windows 64bit build of GNU ARMEmbedded toolchain

Dear maintainers,

I would find it useful if there were ready-to-use 64bit Windows binaries of the toolchain available for download, as we already have for Linux. GCC and LD need a lot of memory when compiling/linking (with LTO) template-heavy C++ code even if the resulting program is small, and the 32bit executable can of course only use 4 GB, while a 64bit one can use much more. With some fiddling, I was able to produce a working 64bit toolchain for windows based on the 7-2017-q4 release, based on these steps:

* MinGW-w64 must be installed, e.g. via the Ubuntu package "gcc-mingw-w64-x86-64". The commands "x86_64-w64-mingw32-gcc" and "x86_64-w64-mingw32-g++" need to work.
* wine must *not* be installed, as this allows Windows executables to run directly (like ./test.exe), which causes libelf to think it is building on Windows, which will break the build.
* In the file build-toolchain.sh, the lines 668 and 799 must each be replaced by:
    saveenvvar LDFLAGS "-L$BUILDDIR_MINGW/host-libs/zlib/lib -Wl,/usr/x86_64-w64-mingw32/lib/CRT_glob.o"
* In the file build-common.sh, the lines 295, 383, 384, 403 must be changed as follows:
    PYTHON_WIN_PACK=$PYTHON_WIN.amd64.msi
    HOST_MINGW=x86_64-w64-mingw32
    HOST_MINGW_TOOL=x86_64-w64-mingw32
    INSTALL_PACKAGE_NAME=gcc-$TARGET-$GCC_VER_NAME-$RELEASEVER

* For the older version 6-2017-q2, this commit has to be applied manually, as it fixes a bug breaking windows 64bit build: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=49f4617bf4b86a0b057f3477d57ffbf7c998b229 The current 7-2017-q4 version already contains this fix.

Then the build can be performed as usual. You can download the 64bit Windows binaries I made here: https://my.hidrive.com/share/42lbe40l-5

The mentioned changes to the build .sh scripts (attached) seem to be quite hackish, since no 32bit compiler is built any more. However, I wasn't able to do it properly and would appreciate it if this could be fixed, added to upstream and used to provide Windows 64bit binary downloads.

Thanks!