Skip to content

cross compiling R for Windows under Linux

2 messages · Lars Schouw, Brian Ripley

#
Hi

I tried to cross compile R under Linux but get an
error.

i586-mingw32-gcc -isystem
/home/schouwl/unpack/mingw/include -O2 -Wall -pedantic
-I../include -I. -DHAVE_CONFIG_H -DR_DLL_BUILD  -c
dynload.c -o dynload.o
dynload.c: In function `R_loadLibrary':
dynload.c:94: warning: implicit declaration of
function `_controlfp'
dynload.c:94: error: `_MCW_IC' undeclared (first use
in this function)
dynload.c:94: error: (Each undeclared identifier is
reported only once
dynload.c:94: error: for each function it appears in.)
dynload.c:95: warning: implicit declaration of
function `_clearfp'
dynload.c:99: error: `_MCW_EM' undeclared (first use
in this function)
dynload.c:99: error: `_MCW_RC' undeclared (first use
in this function)
dynload.c:99: error: `_MCW_PC' undeclared (first use
in this function)
make[3]: *** [dynload.o] Error 1
make[2]: *** [../../bin/R.dll] Error 2
make[1]: *** [rbuild] Error 2
make: *** [all] Error 2


This is the that was reported in the mailing list
before. 
http://tolstoy.newcastle.edu.au/R/devel/04/12/1571.html

I have set the HEADER correct in MkRules
HEADER=/home/schouwl/unpack/mingw/include
The file float.h is located in the 
../i586-mingw32/include/float.h 
from there.

I am cross compiling R 2.0.1 source code.

Help would be appreciated..

Lars Schouw
#
*If* you really have the header paths set correctly it does work, and has 
been tested by several people.

Do read MkRules more carefully and think about how your setting differs 
from the example given.  You have *not* as you claim

# Set this to where the mingw32 include files are. It must be accurate.
HEADER=/users/ripley/R/cross-tools4/i586-mingw32/include

if you used my cross-compiler build (and gave no credit).  Hint: float.h 
is a `mingw32 include file'.

As the comment says, user error here is disastrous, so please take the 
hint.
On Thu, 14 Apr 2005, Lars Schouw wrote:

            
No, you did not.