[R-pkg-devel] r-package-devel-owner maybe from r-project.org

Dirk Eddelbuettel edd @end|ng |rom deb|@n@org
Fri Mar 13 20:31:16 CET 2020


On 13 March 2020 at 14:17, Dirk Eddelbuettel wrote:
| 
| On 13 March 2020 at 11:53, Zack McCaw wrote:
| | Hello all,
| | 
| | I am attempting to submit a package (https://github.com/zrmacc/Temporal)
| | that uses RcppArmadillo. The package builds successfully locally (on Mac)
| | and on Windows. However, when submitting to CRAN, it fails to build on
| | Debian with the following error:
| | 
| | Error: package or namespace load failed for ‘Temporal’ in dyn.load(file,
| | DLLpath = DLLpath, ...): unable to load shared object
| | ‘/srv/hornik/tmp/CRAN/Temporal.Rcheck/00LOCK-Temporal/00new/Temporal/libs/Temporal.so’:/srv/hornik/tmp/CRAN/Temporal.Rcheck/00LOCK-Temporal/00new/Temporal/libs/Temporal.so:
| | undefined symbol: dgesvd_
| | 
| | I have ensured that the Makevars file is formatted as recommended by the
| | RcppArmadillo.package.skeleton
| | <https://cran.r-project.org/web/packages/RcppArmadillo/RcppArmadillo.pdf>()
| | function. Specifically, it contains the following:
| | 
| | CXX_STD = CXX11
| | PKG_CXXFLAGS = $(SHLIB_OPENMP_CXXFLAGS)
| | PKG_LIBS = $(SHLIB_OPENMP_CXXFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
| | 
| | Any help with understanding how to resolve the error on Debian would
| | be greatly appreciated.
| 
| Sort of the wrong forum. Please consider subscribing to the rcpp-devel list
| and posting there.

But now that we are here I took a look, and you "almost" got it right. Your
mistake was in using src/Makevars.in and not using a configure script to
create src/Makevars. So it remained unused.  You can tell: with your setting
my box did

  g++ -Wl,-S -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro \
     -o Temporal.so MatrixOps.o RcppExports.o -L/usr/lib/R/lib -lR

ie no linking the desired form!  Where once fixed we see

  g++ -std=gnu++11 -Wl,-S -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions \
     -Wl,-z,relro -o Temporal.so MatrixOps.o RcppExports.o \
     -fopenmp -llapack -lblas -lgfortran -lm -lquadmath -L/usr/lib/R/lib -lR

which has the link instruction.

I send you a pull request with the simple fix. If you just the merge button
you should be all set.

Dirk

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org



More information about the R-package-devel mailing list