RcppCore / RcppCore/RcppParallel

Error installing RcppParallel 5.1.7 RcppParallel.so: undefined symbol:

Open
#202 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
173
Forks
60
Avg merge
1h 55m
Merged PRs (30d)
2

Description

Good Day!

Redhat Linux 7.9
R version 4.2.3
RcppParallel 5.1.7
gcc version 4.8

When installing RcppParallel using the command R CMD INSTALL RcppParallel_5.1.7.tar.gz it fails with below error:

  • installing to library ‘/opt/opensource/R/R-4.2.3/lib64/R/library’
  • installing source package ‘RcppParallel’ ...
    ** package ‘RcppParallel’ successfully unpacked and MD5 sums checked
    ** using staged installation
    ** preparing to configure package 'RcppParallel' ...
    *** configured file: 'R/tbb-autodetected.R.in' => 'R/tbb-autodetected.R'
    *** configured file: 'src/Makevars.in' => 'src/Makevars'
    *** configured file: 'src/install.libs.R.in' => 'src/install.libs.R'
    ** finished configure for package 'RcppParallel'
    ** libs
    (tbb) Building TBB using bundled sources ...
    make[1]: Entering directory /tmp/RtmpLGkjWv/R.INSTALL711a1df2519e/RcppParallel/src/tbb/src' OS: linux arch=intel64 compiler=gcc runtime=cc4.8.5_libc2.17_kernel3.10.0 tbb_build_prefix=linux_intel64_gcc_cc4.8.5_libc2.17_kernel3.10.0 work_dir=/tmp/RtmpLGkjWv/R.INSTALL711a1df2519e/RcppParallel/src/build/linux_intel64_gcc_cc4.8.5_libc2.17_kernel3.10.0_release make[1]: Leaving directory /tmp/RtmpLGkjWv/R.INSTALL711a1df2519e/RcppParallel/src/tbb/src'
    make[1]: Entering directory /tmp/RtmpLGkjWv/R.INSTALL711a1df2519e/RcppParallel/src/tbb/src' Created ../build/lib_release directory make -C "../build/lib_release" -r -f ../../build/Makefile.tbb cfg=release make[2]: Entering directory /tmp/RtmpLGkjWv/R.INSTALL711a1df2519e/RcppParallel/src/tbb/build/lib_release'
    ../../build/Makefile.tbb:28: CONFIG: cfg=release arch=intel64 compiler=gcc target=linux runtime=cc4.8.5_libc2.17_kernel3.10.0
    g++ -I../inst/include -o concurrent_hash_map.o -c -MMD -DDO_ITT_NOTIFY -O2 -DUSE_PTHREAD -m64 -mrtm -fpic -D__TBB_BUILD=1 -Wall -Wextra -g -O2 -DTBB_NO_LEGACY=1 -I../../src -I../../src/rml/include -I../../include ../../src/tbb/concurrent_hash_map.cpp
    In file included from ../../include/tbb/concurrent_hash_map.h:26:0,
    from ../../src/tbb/concurrent_hash_map.cpp:17:
    ../../include/tbb/compat/iterator.h:19:11: error: expected nested-name-specifier before ‘iterator_category’
    using iterator_category = Category;
    ^
    ../../include/tbb/compat/iterator.h:19:11: error: using-declaration for non-member at class scope
    ../../include/tbb/compat/iterator.h:19:29: error: expected ‘;’ before ‘=’ token
    using iterator_category = Category;
    ^
    ../../include/tbb/compat/iterator.h:19:29: error: expected unqualified-id before ‘=’ token
    ../../include/tbb/compat/iterator.h:20:11: error: expected nested-name-specifier before ‘value_type’
    using value_type = T;
    ^
    ../../include/tbb/compat/iterator.h:20:11: error: using-declaration for non-member at class scope
    ../../include/tbb/compat/iterator.h:20:22: error: expected ‘;’ before ‘=’ token
    using value_type = T;
    ^
    ../../include/tbb/compat/iterator.h:20:22: error: expected unqualified-id before ‘=’ token
    ../../include/tbb/compat/iterator.h:21:11: error: expected nested-name-specifier before ‘difference_type’
    using difference_type = Distance;
    ^
    ../../include/tbb/compat/iterator.h:21:11: error: using-declaration for non-member at class scope
    ../../include/tbb/compat/iterator.h:21:27: error: expected ‘;’ before ‘=’ token
    using difference_type = Distance;
    ^
    ../../include/tbb/compat/iterator.h:21:27: error: expected unqualified-id before ‘=’ token
    ../../include/tbb/compat/iterator.h:22:11: error: expected nested-name-specifier before ‘pointer’
    using pointer = Pointer;
    ^
    ../../include/tbb/compat/iterator.h:22:11: error: using-declaration for non-member at class scope
    ../../include/tbb/compat/iterator.h:22:19: error: expected ‘;’ before ‘=’ token
    using pointer = Pointer;
    ^
    ../../include/tbb/compat/iterator.h:22:19: error: expected unqualified-id before ‘=’ token
    ../../include/tbb/compat/iterator.h:23:11: error: expected nested-name-specifier before ‘reference’
    using reference = Reference;
    ^
    ../../include/tbb/compat/iterator.h:23:11: error: using-declaration for non-member at class scope
    ../../include/tbb/compat/iterator.h:23:21: error: expected ‘;’ before ‘=’ token
    using reference = Reference;
    ^
    ../../include/tbb/compat/iterator.h:23:21: error: expected unqualified-id before ‘=’ token
    make[2]: *** [concurrent_hash_map.o] Error 1
    make[2]: Leaving directory /tmp/RtmpLGkjWv/R.INSTALL711a1df2519e/RcppParallel/src/tbb/build/lib_release' make[1]: *** [tbb_release] Error 2 make[1]: Leaving directory /tmp/RtmpLGkjWv/R.INSTALL711a1df2519e/RcppParallel/src/tbb/src'
    g++ -std=gnu++11 -I"/opt/opensource/R/R-4.2.3/lib64/R/include" -DNDEBUG -I../inst/include -I/usr/local/include -std=gnu++11 -DRCPP_PARALLEL_USE_TBB=1 -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 -fpic -g -O2 -c init.cpp -o init.o
    g++ -std=gnu++11 -I"/opt/opensource/R/R-4.2.3/lib64/R/include" -DNDEBUG -I../inst/include -I/usr/local/include -std=gnu++11 -DRCPP_PARALLEL_USE_TBB=1 -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 -fpic -g -O2 -c options.cpp -o options.o
    g++ -std=gnu++11 -shared -L/opt/opensource/R/R-4.2.3/lib64/R/lib -L/usr/local/lib64 -o RcppParallel.so init.o options.o -L/opt/opensource/R/R-4.2.3/lib64/R/lib -lR
    installing via 'install.libs.R' to /opt/opensource/R/R-4.2.3/lib64/R/library/00LOCK-RcppParallel/00new/RcppParallel
    ** R
    ** inst
    ** byte-compile and prepare package for lazy loading
    ** help
    *** installing help indices
    ** building package indices
    ** testing if installed package can be loaded from temporary location
    Error: package or namespace load failed for ‘RcppParallel’:
    .onLoad failed in loadNamespace() for 'RcppParallel', details:
    call: dyn.load(file, DLLpath = DLLpath, ...)
    error: unable to load shared object '/opt/opensource/R/R-4.2.3/lib64/R/library/00LOCK-RcppParallel/00new/RcppParallel/libs/RcppParallel.so':
    /opt/opensource/R/R-4.2.3/lib64/R/library/00LOCK-RcppParallel/00new/RcppParallel/libs/RcppParallel.so: undefined symbol: _ZN3tbb10interface58internal9task_base7destroyERNS_4taskE
    Error: loading failed
    Execution halted
    ERROR: loading failed
  • removing ‘/opt/opensource/R/R-4.2.3/lib64/R/library/RcppParallel’

As noticed as well, the folder path and file 00LOCK-RcppParallel/00new/RcppParallel/libs/RcppParallel.so was not created
Appreciate any suggestions.

Thanks

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with R CMD INSTALL RcppParallel_5.1.7.tar.gz on the reported Red Hat Linux, R, and GCC versions. Start with src/tbb/include/tbb/compat/iterator.h and the bundled TBB build output, then inspect the RcppParallel.so load failure. Done means the package installs and loads without the undefined-symbol error.

Written by the indexing model from the issue text.

Assessment

Tech stack
r
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.