[Rcpp-devel] compiling Rcpp with 3.0.1 on Solaris 10
MAYER Hans
mayer at iiasa.ac.at
Tue Jun 25 14:41:23 CEST 2013
Hi Dirk !
Many thanks for your answer. Now it compiled fine.
As you wrote I changed line 1536 to the following content:
#if defined(WIN32) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__CYGWIN__) || defined(__sun)
But I didn't reach my goal completely. To install "shiny" I also need "httpuv". This also failed to compile. I am not sure, if this is the right mailing list for my question.
The error message is here.
Kind regards
Hans
# R CMD INSTALL httpuv
* installing to library '/usr/local/lib/R/library'
* installing *source* package 'httpuv' ...
file 'src/libuv/src/unix/sunos.c' has the wrong MD5 checksum
** libs
gmake --directory=libuv \
CC="gcc -std=gnu99" CFLAGS="-g -O2 -fPIC" AR="ar" RANLIB="ranlib" \
libuv.a
gmake[1]: Entering directory `/h/u036sumida/mayer/10/httpuv/src/libuv'
gmake[1]: `libuv.a' is up to date.
gmake[1]: Leaving directory `/h/u036sumida/mayer/10/httpuv/src/libuv'
gmake --directory=http-parser \
CC="gcc -std=gnu99" CFLAGS="-g -O2 -fPIC" AR="ar" RANLIB="ranlib" \
http_parser.o
gmake[1]: Entering directory `/h/u036sumida/mayer/10/httpuv/src/http-parser'
gmake[1]: `http_parser.o' is up to date.
gmake[1]: Leaving directory `/h/u036sumida/mayer/10/httpuv/src/http-parser'
(cd sha1 && gcc -std=gnu99 -g -O2 -fPIC -c sha1.c -o sha1.o)
(cd base64 && g++ -g -O2 -fPIC -c base64.cpp -o base64.o)
g++ -shared -L/usr/local/lib -L/usr/sfw/lib -L/opt/sfw/lib -L/opt/solarisstudio12.3/lib -L/opt/solarisstudio12.3/prod/lib -o httpuv.so RcppExports.o filedatasource-unix.o filedatasource-win.o http.o httpuv.o set_invalid_parameter.o uvutil.o websockets.o /usr/local/lib/R/library/Rcpp/lib/libRcpp.a ./libuv/libuv.a ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o
installing to /usr/local/lib/R/library/httpuv/libs
** R
** demo
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/usr/local/lib/R/library/httpuv/libs/httpuv.so':
ld.so.1: R: fatal: relocation error: file /usr/local/lib/R/library/httpuv/libs/httpuv.so: symbol sendfile64: referenced symbol not found
Error: loading failed
Execution halted
ERROR: loading failed
* removing '/usr/local/lib/R/library/httpuv'
-----Original Message-----
From: Dirk Eddelbuettel [mailto:edd at debian.org]
Sent: Monday, June 24, 2013 9:07 PM
To: MAYER Hans
Cc: 'rcpp-devel at lists.r-forge.r-project.org'
Subject: Re: [Rcpp-devel] compiling Rcpp with 3.0.1 on Solaris 10
Hans,
Ie in these two lines of src/api.cpp you may just add a suitable defined(__sun)
and the end:
#if defined(__GNUC__)
#if defined(WIN32) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__CYGWIN__) // Simpler version for Windows and *BSD SEXP stack_trace( const char* file, int line ){
Rcpp::List trace = Rcpp::List::create(
Rcpp::Named( "file" ) = file,
Rcpp::Named( "line" ) = line,
Rcpp::Named( "stack" ) = "C++ stack not available on this system" ) ;
trace.attr("class") = "Rcpp_stack_trace" ;
return trace ;
}
#else // ! (defined(WIN32) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__CYGWIN__)
so that you get the fallback rather than the default which assumes gcc.
Could you please test that, and report back?
Dirk
PS: That define comes with the excellent wiki at
http://sourceforge.net/p/predef/wiki/Home/
which colletcts these things.
--
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
More information about the Rcpp-devel
mailing list