compilation failed for package ‘RcppArmadillo’ library not found for -lemutls_w
marioem opened this issue · comments
Hi,
trying to update RcppArmadillo from 0.10.8.1.0 to 0.11.0.0.0, compiling from source on macOS 12.3.1, R 4.1.3, RStudio 2022.02.1 Build 461, but running into this error
installing the source package ‘RcppArmadillo’
trying URL 'https://cran.rstudio.com/src/contrib/RcppArmadillo_0.11.0.0.0.tar.gz'
Content type 'application/x-gzip' length 1376953 bytes (1.3 MB)
==================================================
downloaded 1.3 MB
* installing *source* package ‘RcppArmadillo’ ...
** package ‘RcppArmadillo’ successfully unpacked and MD5 sums checked
** using staged installation
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether clang++ -arch arm64 -std=gnu++14 accepts -g... yes
checking how to run the C++ preprocessor... clang++ -arch arm64 -std=gnu++14 -E
checking whether we are using the GNU C++ compiler... (cached) yes
checking whether clang++ -arch arm64 -std=gnu++14 accepts -g... (cached) yes
checking whether we have a suitable tempdir... /var/folders/pj/2mlkhsg15vqc5h_5t5km__1h0000gp/T
checking whether R CMD SHLIB can already compile programs using OpenMP... no
checking whether g++ version is sufficient... almost
configure: WARNING: Compiler self-identifies as being compliant with GNUC extensions but is not g++.
checking for macOS... found
checking for macOS Apple compiler... not found
checking for clang compiler... found
checking for OpenMP compatible version of clang... not found
configure: WARNING: OpenMP unavailable and turned off.
checking LAPACK_LIBS... R-supplied partial LAPACK found
configure: WARNING: Some complex-valued LAPACK functions may not be available
configure: creating ./config.status
config.status: creating inst/include/RcppArmadilloConfigGenerated.h
config.status: creating src/Makevars
** libs
clang++ -arch arm64 -std=gnu++11 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I'/Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/library/Rcpp/include' -I/opt/R/arm64/include -I../inst/include -fPIC -falign-functions=64 -Wall -g -O2 -c RcppArmadillo.cpp -o RcppArmadillo.o
clang++ -arch arm64 -std=gnu++11 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I'/Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/library/Rcpp/include' -I/opt/R/arm64/include -I../inst/include -fPIC -falign-functions=64 -Wall -g -O2 -c RcppExports.cpp -o RcppExports.o
clang++ -arch arm64 -std=gnu++11 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I'/Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/library/Rcpp/include' -I/opt/R/arm64/include -I../inst/include -fPIC -falign-functions=64 -Wall -g -O2 -c fastLm.cpp -o fastLm.o
clang++ -arch arm64 -std=gnu++11 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/opt/R/arm64/lib -o RcppArmadillo.so RcppArmadillo.o RcppExports.o fastLm.o -L/Library/Frameworks/R.framework/Resources/lib -lRlapack -L/Library/Frameworks/R.framework/Resources/lib -lRblas -L/opt/R/arm64/gfortran/lib/gcc/aarch64-apple-darwin20.2.0/11.0.0 -L/opt/R/arm64/gfortran/lib -lgfortran -lemutls_w -lm -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
ld: warning: directory not found for option '-L/opt/R/arm64/gfortran/lib/gcc/aarch64-apple-darwin20.2.0/11.0.0'
ld: library not found for -lemutls_w
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [RcppArmadillo.so] Error 1
ERROR: compilation failed for package ‘RcppArmadillo’
* removing ‘/Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/library/RcppArmadillo’
* restoring previous ‘/Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/library/RcppArmadillo’
Warning in install.packages :
installation of package ‘RcppArmadillo’ had non-zero exit status
Internet seems to know nothing about emutls_w. Am I missing something on my side?
BRs,
Mariusz
Look at the end of your linker command (copying):
-L/opt/R/arm64/gfortran/lib -lgfortran -lemutls_w -lm \ ## NB Note emutils_w here
-F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
The livemutls_w
library is something your operating system, or tools, or R, or ... should provide. Check with the relevant docs and HOWTOs. something seems to once again have changed on how one build on macOS. It is not a symbol inside a library (typical linker error) but a more systematic issue. R apparently expects this to be present. We do not influence that line (as RcppArmadillo is famously header-only).
And, as always, note that RcppArmadillo is in good standing at CRAN include macOS:
(This still lacks 0.11.0 on some of the macOS builds but it has some too...)