[GenABEL-dev] clang

Maksim Struchalin m.v.struchalin at mail.ru
Tue Dec 10 12:00:34 CET 2013


Hi Maarten & Lennart,

Following Maarten suggestion to add support of clang in Jenkins, I tried 
to intsall clang on my UBUNTU and here I want to share what I got.
We duscused something separatly already but I thik it is better to move 
in the list so we can trace the dialog back in the future.


I installed 'clang' and 'llvm' (both precompiled). And I run in a 
command line:

clang++ -std=c++11 -stdlib=libc++ -fsanitize=undefined 
-fno-omit-frame-pointer -I/usr/share/R/include/  -DNDEBUG 
-I/home/maksim/distrib/libcxx/include   -DCOMPILE_WITH_R -fpic  -g -O2 
-Wall -pedantic -mtune=native  -c convert_snp_illumina.cpp -o 
convert_snp_illumina.o

it spit out:


  convert_snp_illumina.cpp:70:14: warning: comparison between NULL and
  non-pointer ('ifstream' (aka 'basic_ifstream<char>') and NULL)
  [-Wnull-arithmetic]
           if (illfile == NULL) {
               ~~~~~~~ ^  ~~~~
  convert_snp_illumina.cpp:70:14: error: invalid operands to binary
  expression ('ifstream' (aka 'basic_ifstream<char>') and 'long')
           if (illfile == NULL) {
               ~~~~~~~ ^  ~~~~
  convert_snp_illumina.cpp:270:14: warning: comparison between NULL and
  non-pointer ('ofstream' (aka 'basic_ofstream<char>') and NULL)
  [-Wnull-arithmetic]
           if (outfile == NULL) {
               ~~~~~~~ ^  ~~~~
  convert_snp_illumina.cpp:270:14: error: invalid operands to binary
  expression ('ofstream' (aka 'basic_ofstream<char>') and 'long')
           if (outfile == NULL) {
               ~~~~~~~ ^  ~~~~

Here -I/home/maksim/distrib/libcxx/include is a standard library for 
clang ('libcxx' was downloaded from http://libcxx.llvm.org/).


This is exactly the warinings/errors which CRAN people sent us. To run 
it as R CMD INSTALL, we need to change /etc/R/Makeconf (as Maarten 
mentioned already) appropraitelly and compile the library 'libcxx' (now, 
I just downloaded it and used headers files only). I tried 'sudo apt-get 
install libc++-dev' as Maarten suggested but got many conflicts with 
other packages and could not install it.

That's what I got by now.

p.s. It seems we always should use 'clang' for compiling R packages 
because as I understand it makes more extensive diagnostic of C++ code 
before compiling. What do you think?

best,
Maksim



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/genabel-devel/attachments/20131210/6d440ca2/attachment.html>


More information about the genabel-devel mailing list