Skip to content

Installation error linux: template with C linkage #16

@hexylena

Description

@hexylena

Hi developers, apologies if I've missed any discussion of this in my searches but I'm struggling to install it cleanly from the conda environment.

I'm installing it in a container just for maximum reproducibility for myself. I'm building it from the 1.0.0 tag of this git repository.

Dockerfile (Conda)

This is based on the way seqera wave does its docker containers for conda packages, if you have suggestions for changing it I'm very open to it!!

FROM mambaorg/micromamba:2.3.0-debian11

WORKDIR /methylasso

USER root
RUN apt -y update && apt install -y git
RUN git clone -b v1.0.0 https://github.com/bardetlab/methylasso .

RUN micromamba install -y -n base -f conda_env.yml \
    && micromamba install -y -n base gcc gxx conda-forge::procps-ng \
    && micromamba env export --name base --explicit > environment.lock \
    && echo ">> CONDA_LOCK_START" \
    && cat environment.lock \
    && echo "<< CONDA_LOCK_END" \
    && micromamba clean -a -y
# USER root
ENV PATH="$MAMBA_ROOT_PREFIX/bin:$PATH"

RUN R CMD INSTALL --preclean .

ENTRYPOINT ["Rscript", "/methylasso/MethyLasso.R"]

The conda version fails to build completely for me, when it gets to the compilation stage, that's when I encounter the following:

(base) root@0774d45c02b7:/methylasso# R CMD INSTALL .                                                    
* installing to library ‘/opt/conda/lib/R/library’                                                      
* installing *source* package ‘MethyLasso’ ...
** using staged installation                                                                            
** libs                                                                                                 
using C++ compiler: ‘x86_64-conda-linux-gnu-c++ (conda-forge gcc 15.1.0-3) 15.1.0’
using C++11                                                                                             
x86_64-conda-linux-gnu-c++ -std=gnu++11 -I"/opt/conda/lib/R/include" -DNDEBUG -I"core" -I"core/gfl" -I'/opt/conda/lib/R/library/Rcpp/include' -I'/opt/conda/lib/R/library/RcppEigen/include' -I'/opt/conda/lib/R
/library/BH/include' -I'/opt/conda/lib/R/library/RcppGSL/include' -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -I/opt/conda/include -Wl,-rpath-link,/opt/conda/lib    -fpic  -fvisibility-inline
s-hidden  -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/include -fdebug-prefix-map=/home/conda/feed
stock_root/build_artifacts/r-base-split_1747311161993/work=/usr/local/src/conda/r-base-4.3.3 -fdebug-prefix-map=/opt/conda=/usr/local/src/conda-prefix  -c core/GFLLibrary1DAdamtsImpl.cpp -o core/GFLLibrary1DA
damtsImpl.o                   
In file included from core/gfl/gfl_graph_fl.h:16,                                                       
                 from core/GFLLibrary1DAdamtsImpl.cpp:7:                                                
/opt/conda/lib/gcc/x86_64-conda-linux-gnu/15.1.0/include/omp.h:448:1: error: template with C linkage
  448 | template<typename __T, omp_allocator_handle_t __Handle>                                     
      | ^~~~~~~~                                                                                        
core/gfl/gfl_graph_fl.h:10:1: note: 'extern "C"' linkage started here
   10 | extern "C" {                                                                                    
      | ^~~~~~~~~~                                                                                      
/opt/conda/lib/gcc/x86_64-conda-linux-gnu/15.1.0/include/omp.h:475:1: error: template with C linkage
  475 | template<typename __T, typename __U, omp_allocator_handle_t __Handle>                       
      | ^~~~~~~~                                                                                        
core/gfl/gfl_graph_fl.h:10:1: note: 'extern "C"' linkage started here
   10 | extern "C" {                                                                                    
      | ^~~~~~~~~~                
/opt/conda/lib/gcc/x86_64-conda-linux-gnu/15.1.0/include/omp.h:483:1: error: template with C linkage
  483 | template<typename __T, omp_allocator_handle_t __Handle,                                     
      | ^~~~~~~~                                                                                        
core/gfl/gfl_graph_fl.h:10:1: note: 'extern "C"' linkage started here
   10 | extern "C" {                                                                                    
      | ^~~~~~~~~~                                                                                      
/opt/conda/lib/gcc/x86_64-conda-linux-gnu/15.1.0/include/omp.h:492:1: error: template with C linkage
  492 | template<typename __T, typename __U, omp_allocator_handle_t __Handle>                           
      | ^~~~~~~~                                   
core/gfl/gfl_graph_fl.h:10:1: note: 'extern "C"' linkage started here
   10 | extern "C" {                                                                                    
      | ^~~~~~~~~~                                                                                      
/opt/conda/lib/gcc/x86_64-conda-linux-gnu/15.1.0/include/omp.h:500:1: error: template with C linkage    
  500 | template<typename __T, omp_allocator_handle_t __Handle,                                         
      | ^~~~~~~~                                                                                        
core/gfl/gfl_graph_fl.h:10:1: note: 'extern "C"' linkage started here                                                                                                                                           
   10 | extern "C" {                                                                                    
      | ^~~~~~~~~~                            
/opt/conda/lib/gcc/x86_64-conda-linux-gnu/15.1.0/include/omp.h:511:1: error: template with C linkage    
  511 | template<typename __T>                                                                          
      | ^~~~~~~~                                                                                        
core/gfl/gfl_graph_fl.h:10:1: note: 'extern "C"' linkage started here                                   
   10 | extern "C" {                                                                                                                                                                                            
      | ^~~~~~~~~~                                                                                                                                                                                              
/opt/conda/lib/gcc/x86_64-conda-linux-gnu/15.1.0/include/omp.h:515:1: error: template with C linkage                                                                                                            
  515 | template<typename __T>                                                                                                                                                                                  
      | ^~~~~~~~              
core/gfl/gfl_graph_fl.h:10:1: note: 'extern "C"' linkage started here                                   
   10 | extern "C" {                                                                                    
      | ^~~~~~~~~~                                                                                      
/opt/conda/lib/gcc/x86_64-conda-linux-gnu/15.1.0/include/omp.h:519:1: error: template with C linkage
  519 | template<typename __T>                                                                          
      | ^~~~~~~~                                                                                        
core/gfl/gfl_graph_fl.h:10:1: note: 'extern "C"' linkage started here                                   
   10 | extern "C" {                                                                                    
      | ^~~~~~~~~~                                                                                      
/opt/conda/lib/gcc/x86_64-conda-linux-gnu/15.1.0/include/omp.h:523:1: error: template with C linkage
  523 | template<typename __T>                                                                          
      | ^~~~~~~~                                                                                            

I'm really not sure how to resolve that. I've added gcc gxx to the installed packages based on googling but I haven't had any success there.

Is there perhaps a dependency that I'm missing?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions