[R-pkg-devel] registering native routines

Marcelino de la Cruz Rot marcelino.delacruz at urjc.es
Wed Apr 11 14:24:01 CEST 2018


Thank you  for the hint, Henric.
I was also having the same NOTE.
Changing the path from \Rtools\mingw_32\bin to \Rtools\mingw_64\bin 
solved it completely. Cheers, Marcelino

El 11/04/2018 a las 11:56, Henric Winell escribió:
> Den 2018-04-10 kl. 23:30, skrev Rampal Etienne:
>
>> Dear Thomas,
>>
>> Yes, I followed all those suggestions but it did not fix the x64 
>> notes. Indeed I am using Windows. I am going to try this on a Linux 
>> system.
>
> On a 64-bit system you need to have 64-bit versions of the necessary 
> tools on the path, but the Rtools installer defaults to 32-bit 
> versions.  The issue was brought up on the R-devel list about a year ago:
>
> https://stat.ethz.ch/pipermail/r-devel/2017-February/073785.html
>
>
> Henric Winell
>
>
>
>>
>> Cheers, Rampal
>>
>>
>> On 10-Apr-18 14:17, Thomas Petzoldt wrote:
>>> Hi,
>>>
>>> I assume you followed "Writing R Extension" and the examples given 
>>> in package deSolve (and maybe some other packages).
>>>
>>> Am I right that this fixed the i386 notes, but not for x64?
>>>
>>> Here I conclude that you tested it on Windows. This is relevant, 
>>> because I remember a recent discussion (maybe on this mailing list), 
>>> that the "register native routines" check can sometimes produce 
>>> false positives on Windows.
>>>
>>> Would it be possible for you, to check your package on a recent 
>>> Linux system?
>>>
>>>
>>> Thomas Petzoldt
>>>
>>>
>>> Am 10.04.2018 um 13:19 schrieb Rampal S. Etienne:
>>>> Dear all,
>>>>
>>>> I am using Fortran code with the deSolve package in my package called
>>>> "DDD". When checking my package I get the message:
>>>>
>>>> checking compiled code ... NOTE
>>>> File 'DDD/libs/x64/DDD.dll':
>>>>    Found no calls to: 'R_registerRoutines', 'R_useDynamicSymbols'
>>>>
>>>> It is good practice to register native routines and to disable 
>>>> symbol search.
>>>>
>>>>
>>>> Although it is "just" a note, I would like to solve this, but after
>>>> quite some googling, I cannot find a solution.
>>>>
>>>> I have tried
>>>>
>>>> tools::package_native_routine_registration_skeleton('.')
>>>> but this produces nothing, or only an empty file when I specify the
>>>> argument con. I put the following R-init_DDD.c in the src folder and
>>>> useDynLib("DDD",.registration = TRUE) in the namespace file. #include
>>>> <R.h> #include <Rinternals.h> #include <stdlib.h> // for NULL #include
>>>> <R_ext/Rdynload.h> /* .Fortran calls */ extern void
>>>> F77_NAME(fill1d)(double *vec, int *DIMP, double *parms, int *II); 
>>>> extern
>>>> void F77_NAME(initmod)(void (*steadyparms)(int *, double *)); extern
>>>> void F77_NAME(runmod)(int *neq, double *t, double *Conc, double 
>>>> *dConc,
>>>> double *yout, int *ip); static const R_FortranMethodDef 
>>>> FortranEntries[]
>>>> = { {"fill1d", (DL_FUNC) &F77_NAME(fill1d), 4}, {"initmod", (DL_FUNC)
>>>> &F77_NAME(initmod), 1}, {"runmod", (DL_FUNC) &F77_NAME(runmod), 6},
>>>> {NULL, NULL, 0} }; void R_init_DDD(DllInfo *dll) {
>>>> R_registerRoutines(dll, NULL, NULL, FortranEntries, NULL);
>>>> R_useDynamicSymbols(dll, FALSE); }
>>>>
>>>> Note that I only get the message for x64, but I don't get it for i386,
>>>> which I did before. So somehow, this is only an issue on 64-bit? 
>>>> How do
>>>> I fix this?
>>>>
>>>> Regards,
>>>>
>>>> Rampal
>>>
>>
>> ______________________________________________
>> R-package-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>>
>
> ______________________________________________
> R-package-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
> .
>

-- 
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España



More information about the R-package-devel mailing list