Hi all, it seems that from R 4.0.1 EXTPTR_PTR can be either a macro or a function, depending on whether USE_RINTERNALS is requested.
Jeroen helped me find that this was in 78592: https://github.com/wch/r-source/commit/c634fec5214e73747b44d7c0e6f047fefe44667d This is a problem, because binary packages that are built on R 4.0.1 or R 4.0.2 will potentially not load on R 4.0.0, if they use the EXTPTR_PTR function. E.g. this is R 4.0.0 on Linux: > library(Rcpp) Error: package or namespace load failed for ‘Rcpp’ in dyn.load(file, DLLpath = DLLpath, ...): unable to load shared object '/usr/local/lib/R/library/Rcpp/libs/Rcpp.so': Error relocating /usr/local/lib/R/library/Rcpp/libs/Rcpp.so: EXTPTR_PTR: symbol not found In addition: Warning message: package ‘Rcpp’ was built under R version 4.0.1 It is easiest to reproduce this on Windows, because the CRAN binaries are now built on R 4.0.2, so if you install Rcpp on R 4.0.0 from CRAN, and try to load it you'll get: > library(Rcpp) Error: package or namespace load failed for 'Rcpp' in inDL(x, as.logical(local), as.logical(now), ...): unable to load shared object 'C:/Users/csard/R/win-library/4.0/Rcpp/libs/x64/Rcpp.dll': LoadLibrary failure: The specified procedure could not be found. In addition: Warning message: package 'Rcpp' was built under R version 4.0.2 I suppose this change was not intended? Best, Gabor ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel