Re: [Rd] Cross-compilation

From: Hin-Tak Leung <hin-tak.leung_at_cimr.cam.ac.uk>
Date: Thu 02 Nov 2006 - 15:38:01 GMT

You might be better off using the same g++ as distributed and found on Prof Ripley's web site, rather than the newer 4.x:

$ /home/hin-tak/mingw-cross/bin/i586-mingw32-c++ --version i586-mingw32-c++ (GCC) 3.4.5 (mingw special) ...

Name-mangling and C++ ABI had changed between gcc 3.x and 4.x, so compiling c++ programs might be different.

It had worked out-of-the-box for me when I was using fedora 5 x86_64 (I just upgraded to fedora 6 yesterday, and I haven't tried doing any cross-compiling yet). So fc4 probably should work.

HTH,
Hin-Tak Leung

Tom McCallum wrote:
> Thanks for your reply, as an example it appears to have difficulty linking
> to even ostream library of the standard C++, as shown below:
>
> /home/tmccallum/ritzel/RItzel/src/Classifier.cpp:209: undefined reference
> to `_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc'
> Classifier.o: In function `operator<<':
> /usr/lib/gcc/i386-redhat-linux/4.0.2/../../../../include/c++/4.0.2/ostream:218:
> undefined reference to `_ZNSolsEd'
> /usr/lib/gcc/i386-redhat-linux/4.0.2/../../../../include/c++/4.0.2/ostream:196:
> undefined reference to `_ZNSolsEl'
>
> I am currently working R-2.4.0 as downloaded today.
>
> I know the g++ has gone through some alterations and wondered if you knew
> the version of g++ you cross-compiled your package with for comparison -
> mine is g++ (GCC) 4.0.2 20051125 (Red Hat 4.0.2-8).
>
> Many thanks
>
> Tom
>
>
> On Wed, 25 Oct 2006 18:10:40 +0100, Ramon Diaz-Uriarte <rdiaz@cnio.es>
> wrote:
>

>> Dear Tom,
>>
>> It has worked for me out-of-the box in at least two times, one a while  
>> ago
>> with R-2.2-something and recently with R-2.4.0. In both cases, I was  
>> running
>> Debian (with a mix of testing and unstable) on x86. I never had to do
>> anything, just run the script and at least in one case I did  
>> crosscompile a
>> package with C++.
>>
>>
>> R.
>>
>> On Wednesday 25 October 2006 18:03, Tom McCallum wrote:
>>> Hi everyone,
>>>
>>> I am trying to cross-compile a package I wrote using the Yan and Rossini
>>> tutorial "Building Microsoft Windows versions of R and R packages using
>>> Intel Linux".  I have got reasonably far with this but when doing the
>>> linking using the line:
>>>
>>> i586-mingw32-g++  -shared -s  -o mylibrary.dll mylibrary.def mylibrary.o
>>> mylibrary_res.o  -L/my/path/RCrossBuild/WinR/R-2.4.0/bin -lR
>>>
>>> I get lots of these type of messages:
>>> /my/path/to/mylibrary.cpp:43: undefined reference to
>>> `_GLOBAL_OFFSET_TABLE_'
>>>
>>> and other similar linker errors for virtually every object and command  
>>> in
>>> the program.  After some googling I have found that there may be  
>>> problems
>>> with the libgcc.a library and its default -fPIC argument during
>>> compilation.
>>>
>>> Has anyone got this tutorial to work and if so how did they overcome  
>>> this?
>>>
>>> I am attempting to do this on Fedora Core 4 on a 32-bit machine, having
>>> completed all the previous sections of the tutorial for building a
>>> cross-platform version of R.
>>>
>>> Many thanks
>>>
>>> Tom

>
>

>

R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Fri Nov 03 08:25:59 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Thu 02 Nov 2006 - 23:30:36 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.