[Debian-med-packaging] Bug#902820: gmap: FTBFS on stretch/amd64 if CPU has SSE2 and nothing more
Santiago Vila
sanvila at debian.org
Sun Jul 1 16:41:07 BST 2018
Package: src:gmap
Version: 2017-01-14-1
Severity: serious
Tags: ftbfs
Dear maintainer:
I tried to build this package in stretch but it failed:
--------------------------------------------------------------------------------
[...]
debian/rules build-arch
dh build-arch --parallel --with autotools_dev
dh_testdir -a -O--parallel
dh_update_autotools_config -a -O--parallel
dh_autotools-dev_updateconfig -a -O--parallel
debian/rules override_dh_auto_configure
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_auto_configure -- --enable-shared --with-gmapdb=/var/cache/gmap \
--bindir=/usr/lib/gmap
./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --libexecdir=\${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-shared --with-gmapdb=/var/cache/gmap --bindir=/usr/lib/gmap
checking package version... 2017-01-14
loading default site script ./config.site
checking CFLAGS... -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security
checking MPI_CFLAGS...
[... snipped ...]
gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -pthread -DTARGET=\"x86_64-pc-linux-gnu\" -DGMAPDB=\"/var/cache/gmap\" -mpopcnt -DHAVE_SSE2=1 -msse2 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c -o gmap_sse2-inbuffer.o `test -f 'inbuffer.c' || echo './'`inbuffer.c
gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -pthread -DTARGET=\"x86_64-pc-linux-gnu\" -DGMAPDB=\"/var/cache/gmap\" -mpopcnt -DHAVE_SSE2=1 -msse2 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c -o gmap_sse2-samheader.o `test -f 'samheader.c' || echo './'`samheader.c
samheader.c: In function 'SAM_header_change_HD_tosorted':
samheader.c:201:5: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result]
fread(buffer,sizeof(char),CHUNK,input);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
samheader.c:206:5: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result]
fread(buffer,sizeof(char),headerlen,input);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -pthread -DTARGET=\"x86_64-pc-linux-gnu\" -DGMAPDB=\"/var/cache/gmap\" -mpopcnt -DHAVE_SSE2=1 -msse2 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c -o gmap_sse2-outbuffer.o `test -f 'outbuffer.c' || echo './'`outbuffer.c
gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -pthread -DTARGET=\"x86_64-pc-linux-gnu\" -DGMAPDB=\"/var/cache/gmap\" -mpopcnt -DHAVE_SSE2=1 -msse2 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c -o gmap_sse2-chimera.o `test -f 'chimera.c' || echo './'`chimera.c
gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -pthread -DTARGET=\"x86_64-pc-linux-gnu\" -DGMAPDB=\"/var/cache/gmap\" -mpopcnt -DHAVE_SSE2=1 -msse2 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c -o gmap_sse2-datadir.o `test -f 'datadir.c' || echo './'`datadir.c
gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -pthread -DTARGET=\"x86_64-pc-linux-gnu\" -DGMAPDB=\"/var/cache/gmap\" -mpopcnt -DHAVE_SSE2=1 -msse2 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c -o gmap_sse2-parserange.o `test -f 'parserange.c' || echo './'`parserange.c
gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -pthread -DTARGET=\"x86_64-pc-linux-gnu\" -DGMAPDB=\"/var/cache/gmap\" -mpopcnt -DHAVE_SSE2=1 -msse2 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c -o gmap_sse2-getopt.o `test -f 'getopt.c' || echo './'`getopt.c
gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -pthread -DTARGET=\"x86_64-pc-linux-gnu\" -DGMAPDB=\"/var/cache/gmap\" -mpopcnt -DHAVE_SSE2=1 -msse2 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c -o gmap_sse2-getopt1.o `test -f 'getopt1.c' || echo './'`getopt1.c
gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -pthread -DTARGET=\"x86_64-pc-linux-gnu\" -DGMAPDB=\"/var/cache/gmap\" -mpopcnt -DHAVE_SSE2=1 -msse2 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c -o gmap_sse2-gmap.o `test -f 'gmap.c' || echo './'`gmap.c
/bin/bash ../libtool --tag=CC --mode=link gcc -pthread -DTARGET=\"x86_64-pc-linux-gnu\" -DGMAPDB=\"/var/cache/gmap\" -mpopcnt -DHAVE_SSE2=1 -msse2 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wl,-z,now -o gmap.sse2 gmap_sse2-except.o gmap_sse2-assert.o gmap_sse2-mem.o gmap_sse2-intlist.o gmap_sse2-list.o gmap_sse2-littleendian.o gmap_sse2-bigendian.o gmap_sse2-univinterval.o gmap_sse2-interval.o gmap_sse2-uintlist.o gmap_sse2-stopwatch.o gmap_sse2-semaphore.o gmap_sse2-access.o gmap_sse2-filestring.o gmap_sse2-iit-read-univ.o gmap_sse2-iit-read.o gmap_sse2-md5.o gmap_sse2-bzip2.o gmap_sse2-sequence.o gmap_sse2-reader.o gmap_sse2-genomicpos.o gmap_sse2-compress.o gmap_sse2-compress-write.o gmap_sse2-gbuffer.o gmap_sse2-genome.o gmap_sse2-popcount.o gmap_sse2-genome128_hr.o gmap_sse2-genome_sites.o gmap_sse2-genome-write.o gmap_sse2-bitpack64-read.o gmap_sse2-bitpack64-readtwo.o gmap_sse2-merge.o gmap_sse2-indexdb.o gmap_sse2-indexdb_hr.o gmap_sse2-oligo.o gmap_sse2-block.o gmap_sse2-chrom.o gmap_sse2-segmentpos.o gmap_sse2-chrnum.o gmap_sse2-uinttable.o gmap_sse2-gregion.o gmap_sse2-match.o gmap_sse2-matchpool.o gmap_sse2-diagnostic.o gmap_sse2-stage1.o gmap_sse2-diag.o gmap_sse2-diagpool.o gmap_sse2-cmet.o gmap_sse2-atoi.o gmap_sse2-orderstat.o gmap_sse2-oligoindex_hr.o gmap_sse2-intron.o gmap_sse2-maxent.o gmap_sse2-maxent_hr.o gmap_sse2-pair.o gmap_sse2-pairpool.o gmap_sse2-cellpool.o gmap_sse2-stage2.o gmap_sse2-doublelist.o gmap_sse2-smooth.o gmap_sse2-splicestringpool.o gmap_sse2-splicetrie_build.o gmap_sse2-splicetrie.o gmap_sse2-boyer-moore.o gmap_sse2-dynprog.o gmap_sse2-dynprog_simd.o gmap_sse2-dynprog_single.o gmap_sse2-dynprog_genome.o gmap_sse2-dynprog_cdna.o gmap_sse2-dynprog_end.o gmap_sse2-translation.o gmap_sse2-pbinom.o gmap_sse2-changepoint.o gmap_sse2-stage3.o gmap_sse2-request.o gmap_sse2-result.o gmap_sse2-output.o gmap_sse2-inbuffer.o gmap_sse2-samheader.o gmap_sse2-outbuffer.o gmap_sse2-chimera.o gmap_sse2-datadir.o gmap_sse2-parserange.o gmap_sse2-getopt.o gmap_sse2-getopt1.o gmap_sse2-gmap.o -lz -lbz2 -lm
libtool: link: gcc -pthread -DTARGET=\"x86_64-pc-linux-gnu\" -DGMAPDB=\"/var/cache/gmap\" -mpopcnt -DHAVE_SSE2=1 -msse2 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z -Wl,relro -Wl,-z -Wl,now -o gmap.sse2 gmap_sse2-except.o gmap_sse2-assert.o gmap_sse2-mem.o gmap_sse2-intlist.o gmap_sse2-list.o gmap_sse2-littleendian.o gmap_sse2-bigendian.o gmap_sse2-univinterval.o gmap_sse2-interval.o gmap_sse2-uintlist.o gmap_sse2-stopwatch.o gmap_sse2-semaphore.o gmap_sse2-access.o gmap_sse2-filestring.o gmap_sse2-iit-read-univ.o gmap_sse2-iit-read.o gmap_sse2-md5.o gmap_sse2-bzip2.o gmap_sse2-sequence.o gmap_sse2-reader.o gmap_sse2-genomicpos.o gmap_sse2-compress.o gmap_sse2-compress-write.o gmap_sse2-gbuffer.o gmap_sse2-genome.o gmap_sse2-popcount.o gmap_sse2-genome128_hr.o gmap_sse2-genome_sites.o gmap_sse2-genome-write.o gmap_sse2-bitpack64-read.o gmap_sse2-bitpack64-readtwo.o gmap_sse2-merge.o gmap_sse2-indexdb.o gmap_sse2-indexdb_hr.o gmap_sse2-oligo.o gmap_sse2-block.o gmap_sse2-chrom.o gmap_sse2-segmentpos.o gmap_sse2-chrnum.o gmap_sse2-uinttable.o gmap_sse2-gregion.o gmap_sse2-match.o gmap_sse2-matchpool.o gmap_sse2-diagnostic.o gmap_sse2-stage1.o gmap_sse2-diag.o gmap_sse2-diagpool.o gmap_sse2-cmet.o gmap_sse2-atoi.o gmap_sse2-orderstat.o gmap_sse2-oligoindex_hr.o gmap_sse2-intron.o gmap_sse2-maxent.o gmap_sse2-maxent_hr.o gmap_sse2-pair.o gmap_sse2-pairpool.o gmap_sse2-cellpool.o gmap_sse2-stage2.o gmap_sse2-doublelist.o gmap_sse2-smooth.o gmap_sse2-splicestringpool.o gmap_sse2-splicetrie_build.o gmap_sse2-splicetrie.o gmap_sse2-boyer-moore.o gmap_sse2-dynprog.o gmap_sse2-dynprog_simd.o gmap_sse2-dynprog_single.o gmap_sse2-dynprog_genome.o gmap_sse2-dynprog_cdna.o gmap_sse2-dynprog_end.o gmap_sse2-translation.o gmap_sse2-pbinom.o gmap_sse2-changepoint.o gmap_sse2-stage3.o gmap_sse2-request.o gmap_sse2-result.o gmap_sse2-output.o gmap_sse2-inbuffer.o gmap_sse2-samheader.o gmap_sse2-outbuffer.o gmap_sse2-chimera.o gmap_sse2-datadir.o gmap_sse2-parserange.o gmap_sse2-getopt.o gmap_sse2-getopt1.o gmap_sse2-gmap.o -lz -lbz2 -lm -pthread
gmap_sse2-oligoindex_hr.o: In function `store_positions_fwd_simd':
./src/oligoindex_hr.c:21180: undefined reference to `Atoi_reduce_ct'
./src/oligoindex_hr.c:21180: undefined reference to `Atoi_reduce_ct'
./src/oligoindex_hr.c:21181: undefined reference to `Atoi_reduce_ct'
./src/oligoindex_hr.c:21181: undefined reference to `Atoi_reduce_ct'
./src/oligoindex_hr.c:21182: undefined reference to `Atoi_reduce_ct'
./src/oligoindex_hr.c:21184: undefined reference to `Atoi_reduce_ga'
./src/oligoindex_hr.c:21184: undefined reference to `Atoi_reduce_ga'
./src/oligoindex_hr.c:21185: undefined reference to `Atoi_reduce_ga'
./src/oligoindex_hr.c:21185: undefined reference to `Atoi_reduce_ga'
./src/oligoindex_hr.c:21186: undefined reference to `Atoi_reduce_ga'
collect2: error: ld returned 1 exit status
Makefile:3423: recipe for target 'gmap.sse2' failed
make[3]: *** [gmap.sse2] Error 1
make[3]: Leaving directory '/<<PKGBUILDDIR>>/src'
Makefile:3292: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/<<PKGBUILDDIR>>/src'
Makefile:432: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_build: make -j1 returned exit code 2
debian/rules:19: recipe for target 'build-arch' failed
make: *** [build-arch] Error 2
dpkg-buildpackage: error: debian/rules build-arch gave error exit status 2
--------------------------------------------------------------------------------
A diff between a failed build and a successful build (in a machine
having the extra features) yields this result:
@@ -448,16 +448,25 @@
checking compiler is defective and requires an immediate in sse2 shift commands... no
checking for whether simd is enabled... not specified so enabled by default
checking for sse2 support... yes
-checking for ssse3 support... no
-checking for sse4.1 support... no
-checking for sse4.2 support... no
-checking for popcnt support... no
+checking for ssse3 support... yes
+checking for sse4.1 support... yes
+checking for sse4.2 support... yes
+checking for popcnt support... yes
checking for bmi1 support... no
-checking for avx2 support... no
+checking for avx2 support... yes
checking for bmi2 support... no
checking for avx512 support... no
checking whether C compiler accepts -msse2... yes
checking for emmintrin.h header file... yes
+checking whether C compiler accepts -msse2 -mssse3... yes
+checking for tmmintrin.h header file... yes
+checking whether C compiler accepts -msse2 -mssse3 -msse4.1... yes
+checking for smmintrin.h header file... yes
+checking whether C compiler accepts -msse2 -mssse3 -msse4.1 -msse4.2... yes
+checking for nmmintrin.h header file... yes
+checking for mm_popcnt support... yes
+checking whether C compiler accepts -msse2 -mssse3 -msse4.1 -msse4.2 -mavx2 -mbmi2... yes
+checking for immintrin.h header file... yes
checking gmapdb... /var/cache/gmap
checking MAX_STACK_READLENGTH... 300
checking for zlib support... enabled
@@ -516,8 +525,8 @@
checking standard linker flags to be used...
checking pthread compiler flags to be used... -pthread
checking popcnt flags to be used... -mpopcnt
-checking compile level... sse2
-checking SSE2 compiler flags to be used... -msse2
+checking compile level... avx2
+checking AVX2 compiler flags to be used... -msse2 -mssse3 -msse4.1 -msse4.2 -mavx2 -mbmi2
AFAIK on Debian/amd64 only SSE2 is allowed to be assumed by default.
I tried to compare my build logs with official ones, but there is none:
https://buildd.debian.org/status/package.php?p=gmap
(( Could you please consider source-only uploads? i.e. "dpkg-buildpackage -S" )).
In either case, I'm putting my failed build logs here in case you need
them, they were made with sbuild on different virtual machines running
Debian stretch:
https://people.debian.org/~sanvila/build-logs/gmap/
(Note: All the failures seem to be related to detection of CPU features,
but since the machines are diverse, the failures are not always the same).
Thanks.
More information about the Debian-med-packaging
mailing list