[Bioc-devel] Problem building package with devtools+Rcpp

sergi.picart at upc.edu sergi.picart at upc.edu
Wed Sep 27 14:11:42 CEST 2017


Dear developers, 
Sorry if the e-mail is duplicated, I had an issue sending it. 
   
  I have been struggling with problems building my package DIFFUSTATS a
  The problem is related to the usage of Rcpp. 
  In my current machine, I am unable to build the DIFFUSTATS in the  
devel bioconductor:
   
    ##############

   
  > build() 
   '/usr/lib/R/bin/R' --no-site-file --no-environ --no-save  
--no-restore --quiet  \ 
 CMD build '/home/sergi/eraseme3/diffuStats' --no-resave-data --no-manual  

* checking for file ‘/home/sergi/eraseme3/diffuStats/DESCRIPTION’ ... OK 
* preparing ‘diffuStats’: 
* checking DESCRIPTION meta-information ... OK 
* cleaning src 
* installing the package to build vignettes 
     ----------------------------------- 
* installing *source* package ‘diffuStats’ ... 
** libs 
g++ -std=gnu++11 -I/usr/share/R/include -DNDEBUG  
 -I"/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/Rcpp/include"  
-I"/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/RcppArmadillo/inc
lude"  
-I"/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/RcppParallel/include"  
   -fpic  -g -O2 -fstack-protector-strong -Wformat  
-Werror=format-security -Wdate-time -D_FORTIFY_SOUR
CE=2 -g -c RcppExports.cpp -o RcppExports.o 
In file included from  
/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/RcppArmadillo/include/armadillo:52:0, 
                from  
/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/RcppArmadillo/include/RcppArmadilloForward.h:46, 
                from  
/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/RcppArmadillo/include/RcppArmadillo.h:31, 
                from RcppExports.cpp:4: 
/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/RcppArmadillo/include/armadillo_bits/compiler_setup.hpp:474:96: note: #pragma message: WARNING: use of OpenMP disabled; this  
compiler
doesn't support OpenMP 3.0+ 
  #pragma message ("WARNING: use of OpenMP disabled; this compiler  
doesn't support OpenMP 3.0+") 
                                                                                               ^ 
g++ -std=gnu++11 -I/usr/share/R/include -DNDEBUG  
 -I"/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/Rcpp/include"  
-I"/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/RcppArmadillo/inc
lude"  
-I"/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/RcppParallel/include"  
   -fpic  -g -O2 -fstack-protector-strong -Wformat  
-Werror=format-security -Wdate-time -D_FORTIFY_SOUR
CE=2 -g -c diffuse_parallel.cpp -o diffuse_parallel.o 
In file included from  
/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/RcppArmadillo/include/armadillo:52:0, 
                from  
/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/RcppArmadillo/include/RcppArmadilloForward.h:46, 
                from  
/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/RcppArmadillo/include/RcppArmadillo.h:31, 
                from diffuse_parallel.cpp:1: 
/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/RcppArmadillo/include/armadillo_bits/compiler_setup.hpp:474:96: note: #pragma message: WARNING: use of OpenMP disabled; this  
compiler
doesn't support OpenMP 3.0+ 
  #pragma message ("WARNING: use of OpenMP disabled; this compiler  
doesn't support OpenMP 3.0+") 
                                                                                               ^ 
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG  
 -I"/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/Rcpp/include"  
-I"/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/RcppArmadillo/inclu
de"  
-I"/home/sergi/R/x86_64-pc-linux-gnu-library/3.4/RcppParallel/include"  
   -fpic  -g -O2 -fstack-protector-strong -Wformat  
-Werror=format-security -Wdate-time -D_FORTIFY_SOURCE
=2 -g  -c init.c -o init.o 
g++ -std=gnu++11 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions  
-Wl,-z,relro -o diffuStats.so RcppExports.o diffuse_parallel.o init.o  
-L/usr/lib/R/lib -lR 
installing to /tmp/RtmpRLy9NN/Rinst4d19c0dca4b/diffuStats/libs 
** R 
** data 
*** moving datasets to lazyload DB 
** preparing package for lazy loading 
** help 
*** installing help indices 
** building package indices 
** installing vignettes 
** testing if installed package can be loaded 
Error: package or namespace load failed for ‘diffuStats’ in  
dyn.load(file, DLLpath = DLLpath, ...): 
unable to load shared object  
'/tmp/RtmpRLy9NN/Rinst4d19c0dca4b/diffuStats/libs/diffuStats.so': 
 /tmp/RtmpRLy9NN/Rinst4d19c0dca4b/diffuStats/libs/diffuStats.so:  
undefined symbol: diffuStats_convertSparse 
Error: loading failed 
Execution halted 
ERROR: loading failed 
* removing ‘/tmp/RtmpRLy9NN/Rinst4d19c0dca4b/diffuStats’ 
     ----------------------------------- 
ERROR: package installation failed 
Error: Command failed (1)
 

  However, this is successful when build(vignettes=FALSE)
   
  ##############
   
  > sessionInfo() 
R version 3.4.1 (2017-06-30) 
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.3 LTS

Matrix products: default
BLAS: /usr/lib/atlas-base/atlas/libblas.so.3.0
LAPACK: /usr/lib/atlas-base/atlas/liblapack.so.3.0

locale:
[1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               
[3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8     
[5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    
[7] LC_PAPER=en_US.UTF-8       LC_NAME=C                  
[9] LC_ADDRESS=C               LC_TELEPHONE=C             
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C        

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base      

loaded via a namespace (and not attached):
[1] compiler_3.4.1            tools_3.4.1               
[3] RcppArmadillo_0.7.960.1.2 withr_2.0.0               
[5] Rcpp_0.12.12              memoise_1.1.0             
[7] digest_0.6.12             RcppParallel_4.3.20       
[9] devtools_1.13.3 

##############
    
   The local installation of Rcpp, RcppParallel, RcppArmadillo or  
devtools seems to have something to do with it, because a machine with  
the following configuration (which I cannot use for developing in a  
regular basis) works just fine:
    
   > sessionInfo() 
R version 3.4.1 (2017-06-30)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.5 LTS

Matrix products: default
BLAS: /usr/lib/openblas-base/libblas.so.3
LAPACK: /usr/lib/lapack/liblapack.so.3.0

locale:
[1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               
[3] LC_TIME=es_ES.UTF-8        LC_COLLATE=en_US.UTF-8     
[5] LC_MONETARY=es_ES.UTF-8    LC_MESSAGES=en_US.UTF-8    
[7] LC_PAPER=es_ES.UTF-8       LC_NAME=C                  
[9] LC_ADDRESS=C               LC_TELEPHONE=C             
[11] LC_MEASUREMENT=es_ES.UTF-8 LC_IDENTIFICATION=C        

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base      

other attached packages:
[1] devtools_1.13.2

loaded via a namespace (and not attached):
[1] compiler_3.4.1            tools_3.4.1               
[3] RcppArmadillo_0.7.900.2.0 withr_1.0.2               
[5] Rcpp_0.12.11              memoise_1.1.0             
[7] digest_0.6.12             RcppParallel_4.3.20  
  

   
    ##############
    
   If I try other actions, such as devtools::document or load_all:
    
   Error in dyn.load(dllfile) :  
 unable to load shared object  
'/home/sergi/all/devel/rpackages/diffuStats/src/diffuStats.so': 
 /home/sergi/all/devel/rpackages/diffuStats/src/diffuStats.so:  
undefined symbol: diffuStats_convertSparse
    
       
    Where convertSparse is the first function in the exported c++ functions
     
    ##############

    

  I have tried addressing the OpenMP 3.0 warning without success. 
  However, I think the problem lies in the compilation.
  I have updated the R version, also re-run 
   
  Rcpp::compileAttributes()
   
  And the problem persists whatever I do. I might be missing something  
obvious...
   
  Any help will be appreciated,

Sergio

	[[alternative HTML version deleted]]



More information about the Bioc-devel mailing list