[R-pkg-devel] Another DLL requires the use of native symbols thread

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Sat Mar 25 14:11:49 CET 2023


On 25/03/2023 9:09 a.m., Duncan Murdoch wrote:
> The message says you shouldn't be using the string 'BT' in the .Fortran
> call, you should be using the object that was produced by
> R_registerRoutines.  That's probably named BT (without any quotes),
> though you can add a prefix in useDynLib() in your NAMESPACE file.
> 
> So your call should look like this:
> 
>     res <- .Fortran(BT, as.double(Temp), as.double(y), as.integer(icode))

Sorry, that should be

       res <- .Fortran(bt, as.double(Temp), as.double(y), as.integer(icode))

because of the mapping to lowercase.

Duncan Murdoch

> 
> Duncan Murdoch
> 
> On 25/03/2023 9:01 a.m., Shawn Way wrote:
>> Sorry to kind of repeat this but I really didn't understand the issues with the prior thread and how it relates to my issue.
>>
>> I'm getting the error message in
>>
>>       B_T <- BT(Temp)
>>       Error in BT(Temp) : DLL requires the use of native symbols
>>       Execution halted
>>
>> And frankly, I have no idea what this means.  The function call is pretty simple and meets the requirement of .Fortran
>>
>> res <- .Fortran('BT', as.double(Temp), as.double(y), as.integer(icode))
>>
>> and the following matches the R-ext's method for using registration:
>>
>> extern void F77_NAME(bt)(double *T, double *B, int *icode);
>>
>> void R_init_IAPWS95(DllInfo *dll)
>> {
>>     R_registerRoutines(dll, NULL, NULL, FortranEntries, NULL);
>>     R_useDynamicSymbols(dll, FALSE);
>>     R_forceSymbols(dll, TRUE);
>> }
>>
>> With
>>
>> static const R_FortranMethodDef FortranEntries[] = {
>>     {"bt",        (DL_FUNC) &F77_NAME(bt),        3},
>>     {NULL, NULL, 0}
>> };
>>
>> Furthermore the NAMESPACE includes:
>>
>> useDynLib(splines, .registration = TRUE, .fixes = "C_")
>>
>>
>> which matches R-ext.
>>
>> Since this is only occurring on the Linux versions for the software and I use windows, can someone point me in the right direction to fix this error?
> 
>



More information about the R-package-devel mailing list