[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