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

Martin Morgan martin.morgan at roswellpark.org
Fri Sep 29 21:55:56 CEST 2017


On 09/27/2017 08:11 AM, sergi.picart at upc.edu wrote:
> 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()

Not really any solution or insight here, but I suggest removing devtool 
from the equation, and making sure that you are working from a clean 
source tree without artifacts (.o, .so, .dylib, etc.) from previous 
builds. On my linux I did

   R -e "BiocInstaller::biocVersion()"  # 3.6
   R -e "BiocInstaller::isDevel()"      # TRUE
   R -e "BiocInstaller::isValid()"      # yup
   cd /tmp
   git clone https://git.bioconductor.org/packages/diffuStats
   ## check in diffuStats/src directory for build artifacts -- none
   R CMD buld diffuStats
   R CMD check diffuStats_0.99.12.tar.gz

Martin

>     '/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]]
> 
> _______________________________________________
> Bioc-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel
> 


This email message may contain legally privileged and/or...{{dropped:2}}



More information about the Bioc-devel mailing list