From mayer at iiasa.ac.at  Mon Jul 15 17:05:54 2013
From: mayer at iiasa.ac.at (MAYER Hans)
Date: Mon, 15 Jul 2013 17:05:54 +0200
Subject: [Rd] linking modules - add needed libraries
Message-ID: <AEB6E9807EE5E04BA2F4A6CD4CE9DB198EA0FAD97B@rhine.iiasa.ac.at>


Hi

Hopefully this is the correct mailing list. Sorry if not.

I am still fighting to install "shiny" on Solaris OS. For this I need the package 'httpuv' which makes troubles during linking.
R version 3.0.1 (2013-05-16) -- "Good Sport" is working well.

The compile steps result is below. I have more a general question. The problem is clear: 
The symbol "sendfile64" is not found as the necessary library is not linked. 
The file which should be linked is /lib/libsendfile.so 
Therefore an additional string  "-lsendfile" should be added anywhere in a "Makefile" or another file. 
But where ? 
This should be done for the test routine and then for the final linking step of the package.
Any help would be nice.

Kind regards
Hans


# R CMD INSTALL  .
* installing to library '/usr/local/lib/R/library'
* installing *source* package 'httpuv' ...
** 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)
In file included from sha1.c:89:
sha1.h:27:22: warning: no newline at end of file
sha1.c:375:18: warning: no newline at end of file
(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'


[Rd] linking modules - add needed libraries
MAYER Hans