And remove the cast on the return value of R_GETCCallable. And check that your function is found before using it.
#include <R.h> #include <Rinternals.h> #include <R_ext/Rdynload.h> void bdsmatrix_prod4(int nrow, int nblock, int *bsize, double *bmat, double *rmat, int nfrail, double *y) { DL_FUNC fun = NULL; if (fun==NULL) { fun = R_GetCCallable("bdsmatrix", "bdsmatrix_prod4"); } if (fun==NULL) { Rf_error("Cannot find C function 'bdsmatrix_prod4' in library 'bdsmatrix.{so,dll}'"); } fun(nrow, nblock, bsize, bmat, rmat, nfrail, y); } Bill Dunlap TIBCO Software wdunlap tibco.com On Fri, Dec 29, 2017 at 8:48 AM, William Dunlap <wdun...@tibco.com> wrote: > Try changing > static void (*fun)() = NULL; > to > DL_FUNC fun = NULL; > > Bill Dunlap > TIBCO Software > wdunlap tibco.com > > On Fri, Dec 29, 2017 at 5:14 AM, Therneau, Terry M., Ph.D. < > thern...@mayo.edu> wrote: > >> I've recently updated the coxme package, which calls internal routines >> from the bdsmatrix package. (It is in fact mentioned as an example of this >> in the Extensions manual.) >> The call connections are a blocks like this, one for each of the 9 called >> C routines. >> >> void bdsmatrix_prod4(int nrow, int nblock, int *bsize, >> double *bmat, double *rmat, >> int nfrail, double *y) { >> static void (*fun)() = NULL; >> if (fun==NULL) >> fun = (void (*)) R_GetCCallable("bdsmatrix", "bdsmatrix_prod4"); >> fun(nrow, nblock, bsize, bmat, rmat, nfrail, y); >> } >> >> .. >> >> The winbuilder run is flagging all of these with >> >> bdsmatrix_stub.h:22:6: warning: ISO C forbids assignment between function >> pointer and 'void *' [-Wpedantic] >> fun = (void (*)) R_GetCCallable("bdsmatrix", "bdsmatrix_prod4"); >> >> Ignore? Or should these lines have been written in a different way? >> >> Terry T. >> >> ______________________________________________ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel > > > [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel