I’m trying to intall Rcpp using clang and libc++ instead of gcc and libstdc++. However, something is adding =lstdc++ to the call to ld and I can’t figure out what it is.
Here is the link command that is happening: vagrant@vagrant-ubuntu-trusty-64:/vagrant/Rcpp$ R CMD INSTALL --no-test-load -d --with-keep-source . Warning: unknown option ‘--with-keep-source’ processing ‘.’ a directory * installing to library ‘/usr/local/lib/R/library’ * build_help_types= * DBG: 'R CMD INSTALL' now doing do_install() * created lock directory ‘/usr/local/lib/R/library/00LOCK-Rcpp’ * installing *source* package ‘Rcpp’ ... ** backing up earlier installation ** libs about to run R CMD SHLIB -o Rcpp.so Date.cpp Module.cpp Rcpp_init.cpp api.cpp attributes.cpp barrier.cpp clang++ -std=c++11 -shared -L/usr/local/lib/R/lib -L/usr/local/lib -o Rcpp.so Date.o Module.o Rcpp_init.o api.o attributes.o barrier.o -lc++ -v -L/usr/local/lib/R/lib -lR Ubuntu clang version 3.5-1ubuntu1 (trunk) (based on LLVM 3.5) Target: x86_64-pc-linux-gnu Thread model: posix Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8 Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8.2 Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9 Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9.1 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.2 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.1 Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8 Selected multilib: .; "/usr/bin/ld" -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -shared -o Rcpp.so /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/crtbeginS.o -L/usr/local/lib/R/lib -L/usr/local/lib -L/usr/local/lib/R/lib -L/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8 -L/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/bin/../lib/x86_64-linux-gnu -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../.. -L/usr/bin/../lib -L/lib -L/usr/lib Date.o Module.o Rcpp_init.o api.o attributes.o barrier.o -lc++ -lR -lstdc++ -lm -lgcc_s -lc -lgcc_s /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/crtendS.o /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o installing to /usr/local/lib/R/library/Rcpp/libs When I run objdump -v on the generated .so file, it shows: Dynamic Section: NEEDED libc++.so.1 NEEDED libR.so NEEDED libstdc++.so.6 NEEDED libm.so.6 NEEDED libgcc_s.so.1 NEEDED libc.so.6 I’ve looked at every environment variable in R, along with every variable visible via “R CMD config”. None mention stdc++. Here is my Makevars: vagrant@vagrant-ubuntu-trusty-64:/vagrant/Rcpp$ cat ~/.R/Makevars CXX=clang++ CC=clang PKG_CXXFLAGS = -std=c++11 -stdlib=libc++ CXXFLAGS= -g -O3 -Wall -pipe -pedantic -Wno-variadic-macros CXX_STD=CXX11 PKG_LIBS=-lc++ -v Any suggestions where to look? For now I’m just manually linking Rcpp and excluding the -lstdc++ but that isn’t very easy for someone trying to reproduce my work. Thanks.
_______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel