[BioC] RCurl loading problem with 64 bit linux distribution

Martin Morgan mtmorgan at fhcrc.org
Wed May 7 15:38:49 CEST 2008


Hi Joern et al.,

This thread seems to have migrated to the R-devel mailing list, where
the currently definitive answer seems to be, from Prof. Ripley,

> If you can, I'd wait until that is resolved.  I have installed
> RCurl_0.8-3 for production' use. (It is still up at
> http://www.omegahat.org/RCurl/RCurl_0.8-3.tar.gz,

Martin

Joern Toedling <toedling at ebi.ac.uk> writes:

> Hello,
> unfortunately I cannot provide a solution, but maybe I can give some more details that may help to
> pinpoint the source of the problem.
> I get exactly the same error message as Mark on R-2.8.0, when trying to install R-Curl_0.9-1 and then attach it:
> Indeed, upon using nm to look at RCurl.so, the output
> ...
> 000000000209420 D CurlOptionNames
>                  U Curl_base64_decode
>                  U Curl_base64_encode
> ...
> indicates that Curl_base64_encode is not defined.
> Removing the execute bit before installation, as Martin suggested,
> unfortunately did not solve the problem. Strangely enough, with
> R-Curl_0.8-3, it was defined as 0000000000003978 T Curl_base64_encode
> but then when trying to attach RCurl I got 
>
>> library("RCurl")
>
> Error in dyn.load(file, DLLpath = DLLpath, ...) :
>
>   unable to load shared library '/home/toedling/rpackages/RCurl/libs/RCurl.so':
>
>   /home/toedling/rpackages/RCurl/libs/RCurl.so: undefined symbol: allocString
>
> Looking at the RCurl web page of changes
>
> http://www.omegahat.org/RCurl/Changes.html
>
> it seemed that they were aware of the allocString issue and fixed it
> in R-0.9-0, but maybe then introduced the Curl_base64_encode issue.
>
> Any more suggestions on how to fix this would be very welcome.
> Below are my sessionInfo and the output upon installing RCurl-0.9-1.
>
> Cheers,
> Joern
>
>> library("RCurl")
> Error in dyn.load(file, DLLpath = DLLpath, ...) :
>   unable to load shared library '/home/toedling/rpackages/RCurl/libs/RCurl.so':
>   /home/toedling/rpackages/RCurl/libs/RCurl.so: undefined symbol: Curl_base64_encode
> Error: package/namespace load failed for 'RCurl'
>> sessionInfo()
> R version 2.8.0 Under development (unstable) (2008-04-21 r45421)
> x86_64-unknown-linux-gnu
>
> locale:
> LC_CTYPE=en_US.ISO-8859-1;LC_NUMERIC=C;LC_TIME=en_US.ISO-8859-1;LC_COLLATE=en_US.ISO-8859-1;LC_MONETARY=C;LC_MESSAGES=en_US.ISO-8859-1;LC_PAPER=en_US.ISO-8859-1;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.ISO-8859-1;LC_IDENTIFICATION=C
>
> attached base packages:
> [1] stats     graphics  grDevices datasets  utils     methods   base
>
> other attached packages:
> [1] fortunes_1.3-3
>
> ### R CMD INSTALL RCurl
>
> * Installing *source* package 'RCurl' ...
> checking for curl-config... /usr/bin/curl-config
> checking for gcc... gcc
> checking for C compiler default output file name... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables...
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ANSI C... none needed
> checking how to run the C preprocessor... gcc -E
> Version has a libidn field
> Using Curl_base64_encode with SessionHandle parameter.
> configure: creating ./config.status
> config.status: creating src/Makevars
> ** libs
> gcc -std=gnu99 -I/home/toedling/local/R/R-devel/include  -DHAVE_LIBIDN_FIELD=1 -DBASE64_NEEDS_SESSION_DATA=1 -I/home/toedling/local/include/graphviz -I/local/include    -fpic  -I/home/toedling/local/include/graphviz -I/local/include -c base64.c -o base64.o
> base64.c: In function 'R_base64_decode':
> base64.c:27: warning: implicit declaration of function 'Curl_base64_decode'
> base64.c: In function 'R_base64_encode':
> base64.c:64: warning: implicit declaration of function 'Curl_base64_encode'
> gcc -std=gnu99 -I/home/toedling/local/R/R-devel/include  -DHAVE_LIBIDN_FIELD=1 -DBASE64_NEEDS_SESSION_DATA=1 -I/home/toedling/local/include/graphviz -I/local/include    -fpic  -I/home/toedling/local/include/graphviz -I/local/include -c curl_base64.c -o curl_base64.o
> gcc -std=gnu99 -I/home/toedling/local/R/R-devel/include  -DHAVE_LIBIDN_FIELD=1 -DBASE64_NEEDS_SESSION_DATA=1 -I/home/toedling/local/include/graphviz -I/local/include    -fpic  -I/home/toedling/local/include/graphviz -I/local/include -c curl.c -o curl.o
> curl.c: In function 'getRStringsFromNullArray':
> curl.c:1104: warning: assignment discards qualifiers from pointer target type
> curl.c:1107: warning: assignment discards qualifiers from pointer target type
> gcc -std=gnu99 -I/home/toedling/local/R/R-devel/include  -DHAVE_LIBIDN_FIELD=1 -DBASE64_NEEDS_SESSION_DATA=1 -I/home/toedling/local/include/graphviz -I/local/include    -fpic  -I/home/toedling/local/include/graphviz -I/local/include -c curlInit.c -o curlInit.o
> gcc -std=gnu99 -I/home/toedling/local/R/R-devel/include  -DHAVE_LIBIDN_FIELD=1 -DBASE64_NEEDS_SESSION_DATA=1 -I/home/toedling/local/include/graphviz -I/local/include    -fpic  -I/home/toedling/local/include/graphviz -I/local/include -c enums.c -o enums.o
> gcc -std=gnu99 -I/home/toedling/local/R/R-devel/include  -DHAVE_LIBIDN_FIELD=1 -DBASE64_NEEDS_SESSION_DATA=1 -I/home/toedling/local/include/graphviz -I/local/include    -fpic  -I/home/toedling/local/include/graphviz -I/local/include -c memoryManagement.c -o memoryManagement.o
> memoryManagement.c: In function 'RCurl_releaseManagerMemoryTickets':
> memoryManagement.c:143: warning: passing argument 1 of 'free' discards qualifiers from pointer target type
> gcc -std=gnu99 -shared -L/home/toedling/local/lib/graphviz -L/home/toedling/local/lib -o RCurl.so base64.o curl_base64.o curl.o curlInit.o enums.o memoryManagement.o -L/usr/lib64 -lcurl -lidn -lssl -lcrypto -ldl -lz
> ** R
> ** inst
> ** preparing package for lazy loading
> ** help
>  >>> Building/Updating help pages for package 'RCurl'
>      Formats: text html latex example
> Note: removing empty section \examples
> Note: removing empty section \references
> Note: removing empty section \seealso
> Note: removing empty section \examples
> Note: unmatched right brace in 'MultiCURLHandle-class' on or after line 28
> Note: removing empty section \examples
> Note: removing empty section \examples
> Note: removing empty section \examples
> Note: removing empty section \examples
> ** building package indices ...
> * DONE (RCurl)
>
>
>
> Martin Morgan wrote:
>> Hi Mark...
>>
>> A couple of shots in the dark, as no one else seems to be leaping in...
>>
>> The symbol Curl_base64_encode should be defined in
>> /home/mkimpel/R_HOME/site-library-2.7.0/RCurl/libs/RCurl.so.  What
>> does
>>
>> nm /home/mkimpel/R_HOME/site-library-2.7.0/RCurl/libs/RCurl.so
>>
>> say? Mine says
>>
>> 0000000000003980 T Curl_base64_encode
>>
>> with the 'T' indicating that the symbol is defined (make sure nm spits
>> out a bunch of lines before concluding that Curl_base64_encode is not
>> defined). 
>>
>> I retrieved the RCurl source, and one thing I notice is that
>> RCurl/src/curl_base64.c has the 'execute' bit set, and perhaps a sane
>> system would not compile it. Try
>>
>> % chmod -x RCurl/src/curl_base64.c
>>
>> and then
>>
>> % R CMD INSTALL RCurl
>>
>> Martin
>>
>> "Mark Kimpel" <mwkimpel at gmail.com> writes:
>>
>>   
>>> I'm having same problem on Ubuntu 64-bit Hardy Heron. A bunch of security
>>> patches from Ubuntu came out and I installed them today. After that was when
>>> I first noted the problem (affycoretools, which I use all the time, won't
>>> load). Below is my initial output, what follows is my reinstallation output
>>> followed by the same error messages as obtained intially. I wonder if a
>>> security patch has changed Curl? Or did RCurl just change? I have been using
>>> R-2.7.0 since half-way through its develoment cycle and this is a new
>>> problem for me.
>>>
>>> Mark
>>>
>>>     
>>>> require(RCurl)
>>>>       
>>> Loading required package: RCurl
>>> Error in dyn.load(file, DLLpath = DLLpath, ...) :
>>>   unable to load shared library
>>> '/home/mkimpel/R_HOME/site-library-2.7.0/RCurl/libs/RCurl.so':
>>>   /home/mkimpel/R_HOME/site-library-2.7.0/RCurl/libs/RCurl.so: undefined
>>> symbol: Curl_base64_encode
>>>     
>>>> install.packages("RCurl")
>>>>
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor

-- 
Martin Morgan
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M2 B169
Phone: (206) 667-2793



More information about the Bioconductor mailing list