aquaskyline / SOAPdenovo2

Next generation sequencing reads de novo assembler.
GNU General Public License v3.0
220 stars 78 forks source link

compilation from source failed on debian11, gcc11.2 - patch added #86

Closed schloegl closed 3 months ago

schloegl commented 2 years ago

Compilling SOAPdenovo2 failed on Debian11/gcc10.2 for r242 as well as from git.

Attached is patch that fixes this issue

commit 56fbd4afe3134a84346353e3bb8b0d5f7415d228
Author: Alois SCHLOEGL <alois.schloegl@ist.ac.at>
Date:   Mon Oct 10 12:49:50 2022 +0200

    fix compilation for Debian11

diff --git a/Makefile b/Makefile
index f46b30d..6418443 100644
--- a/Makefile
+++ b/Makefile
@@ -10,7 +10,7 @@ SUBDIRS = sparsePregraph standardPregraph fusion
 PROG=       SOAPdenovo-63mer SOAPdenovo-127mer SOAPdenovo-fusion
 INCLUDES=   -I./sparsePregraph/inc -I./standardPregraph/inc

-LIBPATH=    -L./sparsePregraph/inc -L./standardPregraph/inc -L/lib64 -L/usr/lib64
+LIBPATH=    -L./sparsePregraph/inc -L./standardPregraph/inc -L/usr/lib
 LIBS=       -pthread -lz -lm
 EXTRA_FLAGS= 

diff --git a/fusion/inc/def.h b/fusion/inc/def.h
index 9ed70e4..813df4c 100644
--- a/fusion/inc/def.h
+++ b/fusion/inc/def.h
@@ -18,7 +18,7 @@
 #define int2compbase(seq)       "TGAC"[seq]
 #define int_comp(seq)   (char)(seq^0x02) //(char)((0x4E>>((seq)<<1))&0x03)

-int b_ban;
+extern int b_ban;

 typedef unsigned long long Kmer;

diff --git a/sparsePregraph/inc/libbam.a b/sparsePregraph/inc/libbam.a
deleted file mode 100644
index d86ebe0..0000000
Binary files a/sparsePregraph/inc/libbam.a and /dev/null differ
diff --git a/standardPregraph/contig.c b/standardPregraph/contig.c
index 7fd39d5..32f005b 100644
--- a/standardPregraph/contig.c
+++ b/standardPregraph/contig.c
@@ -27,7 +27,7 @@
 #include "extvab.h"
 static void initenv ( int argc, char **argv );
 static void display_contig_usage ();
-char shortrdsfile[256], graphfile[256];
+extern char shortrdsfile[256], graphfile[256];
 static boolean repeatSolve;     //whether solve repeat or not
 //static boolean keepReadFile = 0;  //whether keep tmp selected reads file or not
 static boolean iter = 0;                //whether use multikmer or not
diff --git a/standardPregraph/inc/def.h b/standardPregraph/inc/def.h
index f5819f0..c714ddc 100644
--- a/standardPregraph/inc/def.h
+++ b/standardPregraph/inc/def.h
@@ -41,7 +41,7 @@
 #define int2compbase(seq)       "TGAC"[seq]         //int 0123 => base TGAC complement of ACTG
 #define int_comp(seq)   (char)(seq^0x02)         //(char)((0x4E>>((seq)<<1))&0x03)

-int b_ban;
+extern int b_ban;

 #ifdef MER127
 typedef struct kmer
diff --git a/standardPregraph/inc/libbam.a b/standardPregraph/inc/libbam.a
deleted file mode 100644
index d86ebe0..0000000
Binary files a/standardPregraph/inc/libbam.a and /dev/null differ
diff --git a/standardPregraph/read2edge.c b/standardPregraph/read2edge.c
index 373eeb4..b93fc76 100644
--- a/standardPregraph/read2edge.c
+++ b/standardPregraph/read2edge.c
@@ -110,7 +110,7 @@ struct preArc_array_t
 //arc array

 struct preArc_array_t arc_arr;
-pthread_mutex_t *locks;
+extern pthread_mutex_t *locks;

 /*************************************************
 Function:

You can also pull the changes from here https://git.ist.ac.at/alois.schloegl/SOAPdenovo2

alex391 commented 3 months ago

What error message do you get without this patch? I'm trying to figure out if we have the same problem...

schloegl commented 3 months ago
/usr/bin/ld: standardPregraph/attachPEinfo.o:(.bss+0x0): multiple definition of `b_ban'; standardPregraph/arc.o:(.bss+0x0): first defined here