Nextomics / NextPolish

Fast and accurately polish the genome generated by long reads.
GNU General Public License v3.0
213 stars 28 forks source link

NextPolish 1.4.0 does not complile with GCC 10 (under Debian 11) #83

Closed pvstodghill closed 3 years ago

pvstodghill commented 3 years ago

Describe the bug The latest release of NextPolish does not compile with GCC 10, the default version of GCC under Debian 11 (Bullseye). It does compile using GCC 9. And, it compiled using GCC 8, the default version of GCC under Debian 10 (Buster). This bug appears to have been previous reported (#41).

Error message

/usr/bin/ld: ./libbwa.a(rope.o):/mnt/NextPolish/util/bwa/rle.h:33: multiple definition of `rle_auxtab'; ./libbwa.a(bwtindex.o):/mnt/NextPolish/util/bwa/rle.h:33: first defined here
/usr/bin/ld: ./libbwa.a(rle.o):/mnt/NextPolish/util/bwa/rle.h:33: multiple definition of `rle_auxtab'; ./libbwa.a(bwtindex.o):/mnt/NextPolish/util/bwa/rle.h:33: first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:30: bwa] Error 1
make[2]: Leaving directory '/mnt/NextPolish/util/bwa'
make[1]: *** [Makefile:19: bwa_] Error 2
make[1]: Leaving directory '/mnt/NextPolish/util'
make: *** [Makefile:18: all] Error 2

Operating system

No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 11 (bullseye)
Release:    11
Codename:   bullseye

GCC GCC 10

gcc (Debian 10.2.1-6) 10.2.1 20210110
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

GCC 9

gcc-9 (Debian 9.3.0-22) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Python

Python 3.9.2

NextPolish

nextPolish v1.4.0

To Reproduce Starting from a vanilla Debian 11 installation, e.g.,

docker run -ti debian:bullseye /bin/bash

Here are the commands to reproduce + abbreviated output,

# apt-get clean
# apt-get update
[...]
# apt-get install --yes procps git unzip build-essential python-is-python3 python3-pip python3-psutil time zlib1g-dev libncurses-dev libbz2-dev liblzma-dev gcc-9
[...]
# pip install paralleltask
[...]
# rm -rf NextPolish
# tar zxf NextPolish.tgz
# cd NextPolish
# gcc --version
gcc (Debian 10.2.1-6) 10.2.1 20210110
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# make
[...]
/usr/bin/ld: ./libbwa.a(rope.o):/mnt/NextPolish/util/bwa/rle.h:33: multiple definition of `rle_auxtab'; ./libbwa.a(bwtindex.o):/mnt/NextPolish/util/bwa/rle.h:33: first defined here
/usr/bin/ld: ./libbwa.a(rle.o):/mnt/NextPolish/util/bwa/rle.h:33: multiple definition of `rle_auxtab'; ./libbwa.a(bwtindex.o):/mnt/NextPolish/util/bwa/rle.h:33: first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:30: bwa] Error 1
make[2]: Leaving directory '/mnt/NextPolish/util/bwa'
make[1]: *** [Makefile:19: bwa_] Error 2
make[1]: Leaving directory '/mnt/NextPolish/util'
make: *** [Makefile:18: all] Error 2
# cd ..
# rm -rf NextPolish
# tar zxf NextPolish.tgz
# cd NextPolish
# gcc-9 --version
gcc-9 (Debian 9.3.0-22) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# make CC=gcc-9
[...]
make[1]: Leaving directory '/mnt/NextPolish/util'
# ./nextPolish --version
nextPolish v1.4.0
# 
moold commented 3 years ago

Hi, thank you for your report. It seems the error is caused by compiling bwa, so you can install bwa by yourself, and then copy it to NextPolish/bin.

pvstodghill commented 3 years ago

Agreed. I should have looked in the BWA issues first. This bug has already been reported there. On this issue you will also find some patches that address the issue and which you might want to consider incorporating into your tree.

Thanks for your work on NextPolish. We are very, very pleased with the results.

moold commented 3 years ago

Nice and thanks.