[R] changes in behaviour of Rcmd SHLIB since 2.4.0

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Mar 28 16:46:06 CEST 2007


On Wed, 28 Mar 2007, Jan.Kleinn at partnerre.com wrote:

>
> Dear all,
>
> I have some C code using the zlib uncompress. It compiles fine under Win XP
> (with SP2) with R up to 2.3.1 and generates four files (Makedeps, *.d,
> *.dll, and *.o):

No one every said that zlib interface would be exported from R, and as 
from R 2.4.0 it is not on those platforms where exports can be controlled.
`Wrting R Extensions' has always warned you about making use of entry 
points not in the API, so this should have come as no surprise to you, and 
CHANGES for 2.4.0 said

   Entry points which are hidden in libR.so on Unix are now also hidden
   in R.dll.  (Just over half the entry points are hidden, which speeds up
   loading.)

Please use the appropriate list for programming questions (as documented 
in the R posting guide).


> C:\Data\R-packages\cmg>rcmd SHLIB cmg.c -o cmg.dll
> latex: not found
> making cmg.d from cmg.c
> gcc   -IC:/PROGRA~1/R/R-2.3.1/include -Wall -O2   -c cmg.c -o cmg.o
> cmg.c: In function `readcmg':
> cmg.c:33: warning: assignment from incompatible pointer type
> cmg.c:40: warning: assignment from incompatible pointer type
> cmg.c:50: warning: assignment from incompatible pointer type
> gcc  -shared -s  -o cmg.dll cmg.def cmg.o  -LC:/PROGRA~1/R/R-2.3.1/bin
> -lR
>
> With R 2.4.0 and later, the compilation fails at the linking, so the four
> files generated are Makedeps, *.d, *.def, and *.o:
>
> C:\Data\R-packages\cmg>rcmd SHLIB cmg.c -o cmg.dll
> latex: not found
> making cmg.d from cmg.c
> gcc   -IC:/PROGRA~1/R/R-2.4.1/include  -Wall -O2 -std=gnu99   -c cmg.c -o
> cmg.o
> cmg.c: In function `readcmg':
> cmg.c:33: warning: assignment from incompatible pointer type
> cmg.c:40: warning: assignment from incompatible pointer type
> cmg.c:50: warning: assignment from incompatible pointer type
> gcc  -shared -s  -o cmg.dll cmg.def cmg.o  -LC:/PROGRA~1/R/R-2.4.1/bin
> -lR
> cmg.o:cmg.c:(.text+0xc0): undefined reference to `uncompress'
> collect2: ld returned 1 exit status
> make: *** [cmg.dll] Error 1
>
> I have seen the page by Duncan Murdoch
> (http://www.murdoch-sutherland.com/Rtools/), that since 2.4.0 you need
> MinGW runtime 3.11 or higher, so I reinstalled the whole MinGW (runtime now
> 3.11, gcc core and C++ compiler now 3.4.5) and ActivePerl (now 5.8.8. build
> 820) but the problem persists.
>
> Any ideas or hints on how I could compile my C code with the current
> version of R are highly welcome.
>
> Many thanks in advance and best regards, Jan
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list