[Rcpp-devel] problems using libc++ on ubuntu

Mark Lilback mlilback at stat.wvu.edu
Wed Dec 10 21:28:06 CET 2014


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 at 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 at 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.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20141210/462b7ba8/attachment.html>


More information about the Rcpp-devel mailing list