On Wed, Jan 7, 2015 at 8:00 AM, Duncan Murdoch <murdoch.dun...@gmail.com> wrote: > > This version includes only minor updates to the tools. I indicated last > summer that I was hoping to update GCC from the current version 4.6.3 before > the R 3.2.0 release, but this now looks unlikely, unless someone else with > experience building it can help.
I have been looking into this a bit over the past few months, also with mixed success. Nevertheless, below some experiences that might be worth sharing. The guys from mingw-w64 recommended (quite strongly) to move away from multilib. They explained that the standard approach is to create two separate toolchains; one that targets win32 and the other one that targets win64 (both tool chains can compiled for win32). Hence the only difference for R would be that instead of passing "-m64" and "-m32", it would need to set the path to the proper compiler. There are several initiatives that provide very complete suites of precompiled mingw-w64 tools. I think the ideal scenario would be if we could take advantage of an existing tool chain as we do on other platforms, although perhaps I do not fully understand the R-specific requirements on the windows compiler. One project that looks very promising is msys2 [1,2]. It has a package manager (port of pacman from arch linux) and comes with a pretty complete set of msys [3] and other [4] packages that seems quite well maintained. The only issue I ran into with msys2 is that it uses a different c++ exception model (seh/dwarf) than the current Rtools (which uses sjlj). See also [5]. Therefore, if a library uses exceptions, we cannot use the current Rtools to link a static library that was created with msys2 [6]. I am not sure if it also be a problem the other way around, and if this is still the case for recent versions of gcc/mingw. Finally, Ruby has build very similar to Rtools called DevKit-mingw64 [7] that we might be able to borrow from. [1] https://msys2.github.io/ [2] http://stackoverflow.com/questions/25019057/how-are-msys-msys2-and-msysgit-related-to-each-other [3] https://github.com/Alexpux/MSYS2-packages [4] https://github.com/Alexpux/MINGW-packages [5] http://stackoverflow.com/questions/15670169/what-is-difference-between-sjlj-vs-dwarf-vs-seh [6] http://stackoverflow.com/questions/7751640/undefined-reference-to-gxx-personality-sj0 [7] http://rubyinstaller.org/downloads/ ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel