RcppParallel icon indicating copy to clipboard operation
RcppParallel copied to clipboard

Cannot load: undefined symbol tbb::task::note_affinity

Open Enchufa2 opened this issue 3 years ago • 4 comments

Are we sure that nothing is required on Linux?

https://github.com/RcppCore/RcppParallel/blob/0da9610af0fcfe3154bff8c0e38c9ad22fc9fb62/R/tbb.R#L92-L93

I cannot load the markovchain package (cc @spedygiorgio), which links against RcppParallel, with the following error:

Error: package or namespace load failed for ‘markovchain’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/usr/local/lib/R/library/markovchain/libs/markovchain.so':
  /usr/local/lib/R/library/markovchain/libs/markovchain.so: undefined symbol: _ZN3tbb4task13note_affinityEt

So somehow this TBB symbol ends up in the markovchain library. Manually adding -ltbb to the linking phase solves the issue for me, but currently RcppParallel::RcppParallelLibs() returns nothing for Linux.

Enchufa2 avatar Sep 05 '22 16:09 Enchufa2

We can compare notes, I can on the courtesy Linux VM I use for Rcpp testing which has a ton of packages in ~/tmp/lib:

R> .libPaths()
[1] "/home/dirk/tmp/lib"            "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"       "/usr/lib/R/library"           
R> library("markovchain")
Package:  markovchain
Version:  0.9.0
Date:     2022-07-01
BugReport: https://github.com/spedygiorgio/markovchain/issues

R> 

All CRAN, all current, on Debian testing (also current).

eddelbuettel avatar Sep 05 '22 16:09 eddelbuettel

With system or bundled tbb? I'm using the system tbb here via TBB_LIB and TBB_INC.

Enchufa2 avatar Sep 05 '22 16:09 Enchufa2

Ah yes, I am likely using the bundled one.

eddelbuettel avatar Sep 05 '22 17:09 eddelbuettel

Then that's most probably the issue. It should be easy to fix the behavior of LdFlags() depending on whether the package was built using a user-provided TBB_LIB, or an auto-detected one as proposed in #178. I'll look into this when I find time.

Enchufa2 avatar Sep 05 '22 19:09 Enchufa2

Cannot reproduce this anymore.

Enchufa2 avatar Jan 24 '23 15:01 Enchufa2