Question: Errors when install samtools 0.1.18 from source code
0
gravatar for syrttgump
2.2 years ago by
syrttgump30
USA/Newark/New Jersey Institute of Technology
syrttgump30 wrote:

Hi, I downloaded source code of samtools-0.1.18, then compile it by the command line:

make CFLAGS=-fPIC

But this is the error:

gcc -fPIC -o samtools bam_tview.o bam_plcmd.o sam_view.o bam_rmdup.o bam_rmdupse.o bam_mate.o bam_stat.o bam_color.o bamtk.o kaln.o bam2bcf.o bam2bcf_indel.o errmod.o sample.o cut_target.o phase.o bam2depth.o -Lbcftools  libbam.a -lbcf -lcurses  -lm -lz
bam2bcf_indel.o: In function `ks_combsort_uint32_t':
bam2bcf_indel.c:(.text+0x1177): undefined reference to `__ks_insertsort_uint32_t'
bam2bcf_indel.o: In function `ks_introsort_uint32_t':
bam2bcf_indel.c:(.text+0x14f7): undefined reference to `__ks_insertsort_uint32_t'
errmod.o: In function `ks_combsort_uint16_t':
errmod.c:(.text+0x706): undefined reference to `__ks_insertsort_uint16_t'
errmod.o: In function `ks_introsort_uint16_t':
errmod.c:(.text+0xaa3): undefined reference to `__ks_insertsort_uint16_t'
phase.o: In function `ks_combsort_rseq':
phase.c:(.text+0x250f): undefined reference to `__ks_insertsort_rseq'
phase.o: In function `ks_introsort_rseq':
phase.c:(.text+0x2909): undefined reference to `__ks_insertsort_rseq'
libbam.a(bgzf.o): In function `deflate_block':
bgzf.c:(.text+0x14c0): undefined reference to `packInt16'
bgzf.c:(.text+0x1513): undefined reference to `packInt32'
bgzf.c:(.text+0x1531): undefined reference to `packInt32'
libbam.a(bgzf.o): In function `check_header':
bgzf.c:(.text+0x1741): undefined reference to `unpackInt16'
bgzf.c:(.text+0x1788): undefined reference to `unpackInt16'
libbam.a(bgzf.o): In function `bgzf_read_block':
bgzf.c:(.text+0x1c1e): undefined reference to `unpackInt16'
libbam.a(bam_index.o): In function `ks_combsort_off':
bam_index.c:(.text+0x8d9): undefined reference to `__ks_insertsort_off'
libbam.a(bam_index.o): In function `ks_introsort_off':
bam_index.c:(.text+0xcf7): undefined reference to `__ks_insertsort_off'
libbam.a(bam_lpileup.o): In function `ks_combsort_node':
bam_lpileup.c:(.text+0x989): undefined reference to `__ks_insertsort_node'
libbam.a(bam_lpileup.o): In function `ks_introsort_node':
bam_lpileup.c:(.text+0xf61): undefined reference to `__ks_insertsort_node'
libbam.a(bedidx.o): In function `ks_combsort_uint64_t':
bedidx.c:(.text+0x755): undefined reference to `__ks_insertsort_uint64_t'
libbam.a(bedidx.o): In function `ks_introsort_uint64_t':
bedidx.c:(.text+0xb07): undefined reference to `__ks_insertsort_uint64_t'
libbam.a(bam_sort.o): In function `ks_combsort_heap':
bam_sort.c:(.text+0xc58): undefined reference to `__ks_insertsort_heap'
libbam.a(bam_sort.o): In function `ks_introsort_heap':
bam_sort.c:(.text+0x1213): undefined reference to `__ks_insertsort_heap'
libbam.a(bam_sort.o): In function `ks_combsort_sort':
bam_sort.c:(.text+0x331c): undefined reference to `__ks_insertsort_sort'
libbam.a(bam_sort.o): In function `ks_introsort_sort':
bam_sort.c:(.text+0x3710): undefined reference to `__ks_insertsort_sort'
collect2: error: ld returned 1 exit status
make[1]: *** [samtools] Error 1
make[1]: Leaving directory `/wistar/herlynm/jliu/tiantian/download/samtools-0.1.18'
make: *** [all-recur] Error 1

I am using a linux server and gcc version is 6.1.0

samtools software error • 1.6k views
ADD COMMENTlink modified 2.2 years ago by Michael Dondrup46k • written 2.2 years ago by syrttgump30

Why are you trying to install such an ancient version of samtools? It looks like your compiler didn't like the macro-magic used by Heng's kstring code.

ADD REPLYlink written 2.2 years ago by Devon Ryan92k

I want to install the Perl package Bio::DB::Sam, it need this old version of samtools

ADD REPLYlink written 2.2 years ago by syrttgump30

Download the binaries then, they're on sourceforge. Though a better option would be to not use Bio::DB:Sam, since if it's using something that ancient it's not maintained.

ADD REPLYlink written 2.2 years ago by Devon Ryan92k
1

The problem is that Bio::DB::Sam is one of the few ways to display bam coverage tracks in GBrowse and in general to read Bamfiles in Perl

ADD REPLYlink written 2.2 years ago by Michael Dondrup46k

Eeek!

ADD REPLYlink written 2.2 years ago by Devon Ryan92k

If you need to compile that lib, possibly an older compiler of the 4.x family could work. That might also result in having to build perl from scratch.

ADD REPLYlink written 2.2 years ago by Michael Dondrup46k
0
gravatar for Michael Dondrup
2.2 years ago by
Bergen, Norway
Michael Dondrup46k wrote:

If you must, I was able to compile samtools-0.1.18 with the following changes under gcc (GCC) 6.2.0 Make sure you have a recent zlib, that is where my LDFLAGS need to point to. Otherwise you will get an error about missing symbol gzopen64. If your libz is already recent enough (1.2.8 or higher), You can leave the LDFLAGS out

diff -rup samtools-0.1.18/bcftools/Makefile samtools-0.1.18-a/bcftools/Makefile
--- samtools-0.1.18/bcftools/Makefile   2011-09-02 18:57:34.000000000 +0200
+++ samtools-0.1.18-a/bcftools/Makefile 2017-08-17 14:05:01.679285689 +0200
@@ -1,5 +1,5 @@
 CC=            gcc
-CFLAGS=        -g -Wall -O2 #-m64 #-arch ppc
+CFLAGS=        -g -Wall -O2 -m64 #-arch ppc
 DFLAGS=        -D_FILE_OFFSET_BITS=64 -D_USE_KNETFILE
 LOBJS=     bcf.o vcf.o bcfutils.o prob1.o em.o kfunc.o kmin.o index.o fet.o mut.o bcf2qcall.o
 OMISC=     ..
@@ -7,7 +7,7 @@ AOBJS=      call1.o main.o $(OMISC)/kstring.
 PROG=      bcftools
 INCLUDES=
 SUBDIRS=   .
-
+LDFLAGS=    -L/usr/local/lib
 .SUFFIXES:.c .o

 .c.o:
@@ -31,7 +31,7 @@ libbcf.a:$(LOBJS)
        $(AR) -csru $@ $(LOBJS)

 bcftools:lib $(AOBJS)
-       $(CC) $(CFLAGS) -o $@ $(AOBJS) -L. $(LIBPATH) -lbcf -lm -lz
+       $(CC) $(CFLAGS) -o $@ $(AOBJS) -L. $(LIBPATH) -lbcf -lm -lz $(LDFLAGS)

 bcf.o:bcf.h
 vcf.o:bcf.h
Only in samtools-0.1.18-a/: lib
diff -rup samtools-0.1.18/Makefile samtools-0.1.18-a/Makefile
--- samtools-0.1.18/Makefile    2011-09-02 18:57:34.000000000 +0200
+++ samtools-0.1.18-a/Makefile  2017-08-17 13:53:24.978198313 +0200
@@ -1,7 +1,8 @@
 CC=            gcc
-CFLAGS=        -g -Wall -O2 #-m64 #-arch ppc
+CFLAGS=        -g -Wall -O2 -m64 #-arch ppc
 DFLAGS=        -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_USE_KNETFILE -D_CURSES_LIB=1
 KNETFILE_O=    knetfile.o
+LDFLAGS=    -L/usr/local/lib
 LOBJS=     bgzf.o kstring.o bam_aux.o bam.o bam_import.o sam.o bam_index.o \
            bam_pileup.o bam_lpileup.o bam_md.o razf.o faidx.o bedidx.o \
            $(KNETFILE_O) bam_sort.o sam_header.o bam_reheader.o kprobaln.o bam_cat.o
@@ -41,7 +42,7 @@ libbam.a:$(LOBJS)
        $(AR) -csru $@ $(LOBJS)

 samtools:lib-recur $(AOBJS)
-       $(CC) $(CFLAGS) -o $@ $(AOBJS) -Lbcftools $(LIBPATH) libbam.a -lbcf $(LIBCURSES) -lm -lz
+       $(CC)  $(LDFLAGS) -o $@ $(AOBJS) -Lbcftools $(LIBPATH) libbam.a -lbcf $(LIBCURSES) -lm -lz

 razip:razip.o razf.o $(KNETFILE_O)
        $(CC) $(CFLAGS) -o $@ razf.o razip.o $(KNETFILE_O) -lz
ADD COMMENTlink written 2.2 years ago by Michael Dondrup46k
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 2127 users visited in the last hour