[R-pkg-devel] Package submission rejected as it fails checks on Debian

Dirk Eddelbuettel edd @end|ng |rom deb|@n@org
Mon Feb 20 21:06:05 CET 2023


On 20 February 2023 at 21:41, Vasileios Nikolaidis wrote:
| Oh yes thank you. I just realized I did not mention the repo on my 
| previous reply. It is
| https://github.com/VNNikolaidis/nnlib2Rcpp

Thanks for that -- I can confirm the error.

The packages compiles all source files without issue or warnings (under my
default flags), links and then fails to load with the error you reported:

  ** testing if installed package can be loaded from temporary location
  Error: package or namespace load failed for ‘nnlib2Rcpp’ in dyn.load(file, DLLpath = DLLpath, ...):
   unable to load shared object '/tmp/rcpp/lib/00LOCK-nnlib2Rcpp/00new/nnlib2Rcpp/libs/nnlib2Rcpp.so':
    /tmp/rcpp/lib/00LOCK-nnlib2Rcpp/00new/nnlib2Rcpp/libs/nnlib2Rcpp.so: undefined symbol: _ZTIN6nnlib25layerE
  Error: loading failed
  Execution halted
  ERROR: loading failed

Now, `c++filt` on that symbol reveals

  $ c++filt _ZTIN6nnlib25layerE
  typeinfo for nnlib2::layer
  $

and a glance at your header nnlib2::layer reveals that the class is virtual.
I don't have time right to do more digging but if I had to guess you may have
a slip up somewhere in your classes: something that worked beforehand with
your virtual (abstract) classes and derived (concrete) classes now seems to
want an concrete instance of 'layer'.  And if I had to guess some more the
reason this works in Windows is that the linker there is more lenient.

Maybe you can try an earlier version of nnlib2Rcpp and then bisect the
changes.  rhub gives you (fairly) easy access to Linux machines for builds
outside of your main Windows machine.

Sorry I cannot be of more help right now.

Dirk

-- 
dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org



More information about the R-package-devel mailing list