Open psammarco opened 2 years ago
Ouch, compilation errors.
It seems related to link time optimizations. Multiple suggestions to try in order:
Let me know how it goes,
Best,
Olivier,
Hello @odelaneau, thanks for getting back to me.
So I removed -mavx2 from CXFLAG, replaced -O3 with -O2 and added -fno-lto to LDFLAG. However I am getting a new error now.
pietro@cookbox:~/tmp/shapeit4$ grep -E 'CXXFLAG|LDFLAG' makefile |grep -v '#' |head -2
CXXFLAG=-O2 -mfma
LDFLAG=-O2 -fno-lto
pietro@cookbox:~/tmp/shapeit4$
New build error:
pietro@cookbox:~/tmp/shapeit4$ make
g++ -std=c++11 -O2 -mfma -c src/io/genotype_reader1.cpp -o obj/genotype_reader1.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/io/haplotype_writer.cpp -o obj/haplotype_writer.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/io/gmap_reader.cpp -o obj/gmap_reader.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/io/genotype_reader2.cpp -o obj/genotype_reader2.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/io/graph_writer.cpp -o obj/graph_writer.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/phaser/phaser_initialise.cpp -o obj/phaser_initialise.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/phaser/phaser_parameters.cpp -o obj/phaser_parameters.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/phaser/phaser_finalise.cpp -o obj/phaser_finalise.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/phaser/phaser_management.cpp -o obj/phaser_management.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/phaser/phaser_algorithm.cpp -o obj/phaser_algorithm.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/models/haplotype_segment_double.cpp -o obj/haplotype_segment_double.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/models/haplotype_segment_single.cpp -o obj/haplotype_segment_single.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/modules/builder.cpp -o obj/builder.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/modules/pbwt_solver.cpp -o obj/pbwt_solver.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/containers/haplotype_set.cpp -o obj/haplotype_set.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/containers/variant_map.cpp -o obj/variant_map.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/containers/bitmatrix.cpp -o obj/bitmatrix.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/containers/genotype_set.cpp -o obj/genotype_set.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/objects/variant.cpp -o obj/variant.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/objects/compute_job.cpp -o obj/compute_job.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/objects/genotype/genotype_prune.cpp -o obj/genotype_prune.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/objects/genotype/genotype_build.cpp -o obj/genotype_build.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/objects/genotype/genotype_sweep.cpp -o obj/genotype_sweep.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/objects/genotype/genotype_mask.cpp -o obj/genotype_mask.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/objects/genotype/genotype_managment.cpp -o obj/genotype_managment.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/objects/hmm_parameters.cpp -o obj/hmm_parameters.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -mfma -c src/main.cpp -o obj/main.o -Isrc -I/usr/lib/x86_64-linux-gnu -I/usr/include
g++ -std=c++11 -O2 -fno-lto obj/genotype_reader1.o obj/haplotype_writer.o obj/gmap_reader.o obj/genotype_reader2.o obj/graph_writer.o obj/phaser_initialise.o obj/phaser_parameters.o obj/phaser_finalise.o obj/phaser_management.o obj/phaser_algorithm.o obj/haplotype_segment_double.o obj/haplotype_segment_single.o obj/builder.o obj/pbwt_solver.o obj/haplotype_set.o obj/variant_map.o obj/bitmatrix.o obj/genotype_set.o obj/variant.o obj/compute_job.o obj/genotype_prune.o obj/genotype_build.o obj/genotype_sweep.o obj/genotype_mask.o obj/genotype_managment.o obj/hmm_parameters.o obj/main.o /usr/lib/x86_64-linux-gnu/libhts.a /usr/lib/x86_64-linux-gnu/libboost_iostreams.a /usr/lib/x86_64-linux-gnu/libboost_program_options.a -o bin/shapeit4.2 -lz -lbz2 -lm -lpthread -llzma -lcurl -lssl -lcrypto
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libhts.a(hts.o): plugin needed to handle lto object
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libhts.a(hts.o): plugin needed to handle lto object
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libhts.a(synced_bcf_reader.o): plugin needed to handle lto object
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libhts.a(synced_bcf_reader.o): plugin needed to handle lto object
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libhts.a(vcf.o): plugin needed to handle lto object
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libhts.a(vcf.o): plugin needed to handle lto object
/usr/bin/ld: obj/genotype_reader1.o: in function `genotype_reader::scanGenotypes(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
genotype_reader1.cpp:(.text+0x840): undefined reference to `bcf_sr_init'
/usr/bin/ld: genotype_reader1.cpp:(.text+0x85f): undefined reference to `bcf_sr_set_threads'
/usr/bin/ld: genotype_reader1.cpp:(.text+0x86d): undefined reference to `bcf_sr_set_regions'
/usr/bin/ld: genotype_reader1.cpp:(.text+0x882): undefined reference to `bcf_sr_add_reader'
/usr/bin/ld: genotype_reader1.cpp:(.text+0x896): undefined reference to `bcf_sr_add_reader'
/usr/bin/ld: genotype_reader1.cpp:(.text+0x8d4): undefined reference to `bcf_sr_next_line'
/usr/bin/ld: genotype_reader1.cpp:(.text+0x926): undefined reference to `bcf_sr_next_line'
/usr/bin/ld: genotype_reader1.cpp:(.text+0x934): undefined reference to `bcf_sr_destroy'
/usr/bin/ld: obj/genotype_reader1.o: in function `genotype_reader::scanGenotypes(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
genotype_reader1.cpp:(.text+0x1a95): undefined reference to `bcf_sr_init'
/usr/bin/ld: genotype_reader1.cpp:(.text+0x1aa8): undefined reference to `bcf_sr_set_threads'
/usr/bin/ld: genotype_reader1.cpp:(.text+0x1ab6): undefined reference to `bcf_sr_set_regions'
/usr/bin/ld: genotype_reader1.cpp:(.text+0x1acf): undefined reference to `bcf_sr_add_reader'
/usr/bin/ld: genotype_reader1.cpp:(.text+0x1b14): undefined reference to `bcf_sr_next_line'
/usr/bin/ld: genotype_reader1.cpp:(.text+0x1b47): undefined reference to `bcf_sr_next_line'
/usr/bin/ld: genotype_reader1.cpp:(.text+0x1b54): undefined reference to `bcf_sr_destroy'
/usr/bin/ld: obj/haplotype_writer.o: in function `haplotype_writer::writeHaplotypes(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
haplotype_writer.cpp:(.text+0x785): undefined reference to `hts_open'
/usr/bin/ld: haplotype_writer.cpp:(.text+0x79b): undefined reference to `hts_set_threads'
/usr/bin/ld: haplotype_writer.cpp:(.text+0x7a7): undefined reference to `bcf_hdr_init'
/usr/bin/ld: haplotype_writer.cpp:(.text+0x7af): undefined reference to `bcf_init'
/usr/bin/ld: haplotype_writer.cpp:(.text+0xc8a): undefined reference to `bcf_hdr_append'
/usr/bin/ld: haplotype_writer.cpp:(.text+0xcc3): undefined reference to `bcf_hdr_append'
/usr/bin/ld: haplotype_writer.cpp:(.text+0xdd9): undefined reference to `bcf_hdr_append'
/usr/bin/ld: haplotype_writer.cpp:(.text+0xe12): undefined reference to `bcf_hdr_append'
/usr/bin/ld: haplotype_writer.cpp:(.text+0xe21): undefined reference to `bcf_hdr_append'
/usr/bin/ld: obj/haplotype_writer.o:haplotype_writer.cpp:(.text+0xe30): more undefined references to `bcf_hdr_append' follow
/usr/bin/ld: obj/haplotype_writer.o: in function `haplotype_writer::writeHaplotypes(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
haplotype_writer.cpp:(.text+0xe62): undefined reference to `bcf_hdr_add_sample'
/usr/bin/ld: haplotype_writer.cpp:(.text+0xe7d): undefined reference to `bcf_hdr_add_sample'
/usr/bin/ld: haplotype_writer.cpp:(.text+0xe8c): undefined reference to `bcf_hdr_write'
/usr/bin/ld: haplotype_writer.cpp:(.text+0xed6): undefined reference to `bcf_clear'
/usr/bin/ld: haplotype_writer.cpp:(.text+0xf00): undefined reference to `bcf_hdr_id2int'
/usr/bin/ld: haplotype_writer.cpp:(.text+0xf29): undefined reference to `bcf_update_id'
/usr/bin/ld: haplotype_writer.cpp:(.text+0x1062): undefined reference to `bcf_update_alleles_str'
/usr/bin/ld: haplotype_writer.cpp:(.text+0x1131): undefined reference to `bcf_update_info'
/usr/bin/ld: haplotype_writer.cpp:(.text+0x117f): undefined reference to `bcf_update_info'
/usr/bin/ld: haplotype_writer.cpp:(.text+0x11d4): undefined reference to `bcf_update_info'
/usr/bin/ld: haplotype_writer.cpp:(.text+0x11fb): undefined reference to `bcf_update_format'
/usr/bin/ld: haplotype_writer.cpp:(.text+0x120d): undefined reference to `bcf_write'
/usr/bin/ld: haplotype_writer.cpp:(.text+0x149b): undefined reference to `bcf_destroy'
/usr/bin/ld: haplotype_writer.cpp:(.text+0x14a3): undefined reference to `bcf_hdr_destroy'
/usr/bin/ld: haplotype_writer.cpp:(.text+0x14af): undefined reference to `hts_close'
/usr/bin/ld: obj/genotype_reader2.o: in function `genotype_reader::readGenotypes1(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
genotype_reader2.cpp:(.text+0x8aa): undefined reference to `bcf_sr_init'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x8c0): undefined reference to `bcf_sr_set_threads'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x8e7): undefined reference to `bcf_sr_set_regions'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x8f3): undefined reference to `bcf_sr_add_reader'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x907): undefined reference to `bcf_sr_add_reader'
/usr/bin/ld: genotype_reader2.cpp:(.text+0xb40): undefined reference to `bcf_sr_next_line'
/usr/bin/ld: genotype_reader2.cpp:(.text+0xbad): undefined reference to `bcf_unpack'
/usr/bin/ld: genotype_reader2.cpp:(.text+0xd55): undefined reference to `bcf_sr_destroy'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x19e6): undefined reference to `bcf_get_format_values'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x1a2b): undefined reference to `bcf_get_format_values'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x2706): undefined reference to `bcf_get_format_values'
/usr/bin/ld: obj/genotype_reader2.o: in function `genotype_reader::readGenotypes0(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
genotype_reader2.cpp:(.text+0x2a47): undefined reference to `bcf_sr_init'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x2a5d): undefined reference to `bcf_sr_set_threads'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x2a72): undefined reference to `bcf_sr_set_regions'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x2a85): undefined reference to `bcf_sr_add_reader'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x2cab): undefined reference to `bcf_sr_next_line'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x2ce2): undefined reference to `bcf_unpack'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x2e69): undefined reference to `bcf_sr_destroy'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x3aea): undefined reference to `bcf_get_format_values'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x42c6): undefined reference to `bcf_get_format_values'
/usr/bin/ld: obj/genotype_reader2.o: in function `genotype_reader::readGenotypes2(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
genotype_reader2.cpp:(.text+0x47ca): undefined reference to `bcf_sr_init'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x47de): undefined reference to `bcf_sr_set_threads'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x47fc): undefined reference to `bcf_sr_set_regions'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x4807): undefined reference to `bcf_sr_add_reader'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x4812): undefined reference to `bcf_sr_add_reader'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x4d14): undefined reference to `bcf_sr_next_line'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x4d56): undefined reference to `bcf_unpack'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x500b): undefined reference to `bcf_get_format_values'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x5675): undefined reference to `bcf_sr_destroy'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x655b): undefined reference to `bcf_get_format_values'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x6860): undefined reference to `bcf_get_format_values'
/usr/bin/ld: obj/genotype_reader2.o: in function `genotype_reader::readGenotypes3(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
genotype_reader2.cpp:(.text+0x700d): undefined reference to `bcf_sr_init'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x7021): undefined reference to `bcf_sr_set_threads'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x703e): undefined reference to `bcf_sr_set_regions'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x7049): undefined reference to `bcf_sr_add_reader'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x7054): undefined reference to `bcf_sr_add_reader'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x7060): undefined reference to `bcf_sr_add_reader'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x7584): undefined reference to `bcf_sr_next_line'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x75d7): undefined reference to `bcf_unpack'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x7789): undefined reference to `bcf_sr_destroy'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x875a): undefined reference to `bcf_get_format_values'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x8798): undefined reference to `bcf_get_format_values'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x94ce): undefined reference to `bcf_get_format_values'
/usr/bin/ld: genotype_reader2.cpp:(.text+0x95d7): undefined reference to `bcf_get_format_values'
collect2: error: ld returned 1 exit status
make: *** [makefile:50: bin/shapeit4.2] Error 1
pietro@cookbox:~/tmp/shapeit4$
Hello @odelaneau. Do you have any idea of how to break this build errors cycle? If not, is there a way I can get the binaries? Thanks
Did you compile HTSlib by yourself. Did it go well?
I have installed the HTSlib package for debian as far as I can remember. Do I need to compile it manually?
Hello guys,
I tried compiling shapeit4.2 on Debian 11 using both g++ 10.2.1 20210110 and g++ 9.3.0 though I am getting a similar error.
g++ 10.2.1 20210110
g++ 9.3.0
As far as I am aware of all dependencies have been satisfied:
Any idea? Thanks