Thank you all for the suggestions. I was finally able to get everything to work using msys + Rtools-gcc-4.6.3. I could be wrong, but it seems that a complete 32+64 bit R-must be installed to get a 64bit static library compiled.
MSYS while not as complete as MSYS2 does provide a shell that is identical to linux. The structure of Rtools-gcc with 'multilib' is somewhat confusing as compared to other current "mingw64" downloads, including MSYS2. It must be a Herculean task to ensure that 'things-just-work' for all 4000+ packages - with every new version! I understand that Rtools must control the entire process. I am grateful for all the work that goes into it. That said, it would be nice, if Rtools could be packaged more like MSYS2 - which after-all has very similar goals that apply to any linux package. Thanks again, SM On Sat, May 30, 2015 at 2:06 PM, Prof Brian Ripley <rip...@stats.ox.ac.uk> wrote: > On 30/05/2015 13:14, Duncan Murdoch wrote: > >> On 29/05/2015 4:16 PM, Sue McDonald wrote: >> >>> My apologies for cross-posting. I found this site, after I had posted on >>> stack-overflow. >>> >>> I need to compile several static libraries (C & Fortran) which will later >>> be linked with an R package. Rtools33 directory includes >>> /i686-w64-mingw32 >>> directory which I understand creates 32 bit binaries. Yet, there are >>> other >>> 64 bit directories as well. >>> >> >> The current Rtools is set up for multilib operation. You only need to >> use the binaries in Rtools/gcc-4.6.3/bin. The executables there will >> choose files from the other directories depending on the -m32 or -m64 >> flag, for 32 bit or 64 bit operation. >> >> >>> I have three related questions: >>> >>> 1. >>> >>> Can Rtools33 be used to compile static libraries as a separate step >>> using -m64 flag? >>> >> >> Yes, I believe so. They would be 64 bit static libraries. >> >> 2. >>> >>> MSYS2 is very convenient for compiling many of these libraries. Can a >>> static library compiled with x86_64-w64-mingw32 (gcc 4.9.2) be used >>> with >>> Rtools33 (v 4.6.2)? >>> >> >> Rtools uses 4.6.3, not 4.6.2. I would assume the runtime libraries are >> different between 4.6.3 and 4.9.2, so you won't be able to mix versions >> like that. >> >> However, you should be able to use your MSYS2 system for all >> compilation, if you create a MkRules.local file with the right settings. >> You will need to compile R and all packages and libraries using that >> system, don't expect to be able to mix binaries from different versions >> of gcc. >> >> >> 3. >>> >>> Can a static library compiled using x86_64-w64-mingw32-gcc >>> cross-compiler (v 4.6.2) on linux be used with Rtools33? >>> >> >> Some libraries used by packages are compiled by Brian Ripley using a >> cross-compiler on linux. I'd assume he's using 4.6.3 as with the Rtools >> build, but I'm not sure about that. >> > > Correct, I used the cross-compiler that was used to compile the native > compilers in Rtools. > > My experience (this had to work for thousands of packages for CRAN) is > that only an exact match for the cross-compiler to the compiler used to > compile R works reliably. Even very slightly different builds can cause > segfaults. > > -- > Brian D. Ripley, rip...@stats.ox.ac.uk > Emeritus Professor of Applied Statistics, University of Oxford > 1 South Parks Road, Oxford OX1 3TG, UK > [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel