[Debian-med-packaging] Bug#1123553: ncbi-tools6: autopktest failure on amd6 with libc6 2.42-6 due to unspecified return value

Aurelien Jarno aurel32 at debian.org
Wed Dec 17 18:39:36 GMT 2025


Source: ncbi-tools6
Version: 6.1.20170106+dfsg2-6
Severity: serious
X-Debbugs-Cc: debian-amd64 at lists.debian.org
User: debian-amd64 at lists.debian.org
Usertags: amd64

Dear maintainer,

ncbi-tools6 autopkgtest fails on amd64 with a non 0 return code in the
debruijn test:
|  40s autopkgtest [11:03:16]: test run-unit-test: [-----------------------
|  40s ---asn2asn test---
|  41s ---asn2all test---
|  41s ---asn2fsa test---
|  42s ---asn2gb test---
|  42s ---asn2idx test---
|  43s ---asn2xml test---
|  43s ---cleanasn test---
|  43s ---gene2xml test---
|  44s ---vecscreen test---
|  47s ---asndisc test---
|  50s ---asnval test---
|  51s ---asnmacro test---
|  53s ---asntool test---
|  53s ---indexpub test---
|  53s ---getpub test---
|  53s ---getmesh test---
|  53s ---debruijn test---
|  54s autopkgtest [11:03:30]: test run-unit-test: -----------------------]
|  54s autopkgtest [11:03:30]: test run-unit-test:  - - - - - - - - - - results - - - - - - - - - -
|  54s run-unit-test        FAIL non-zero exit status 160
|  54s autopkgtest [11:03:30]: @@@@@@@@@@@@@@@@@@@@ summary
|  54s run-unit-test        FAIL non-zero exit status 160

The full autopkgtest log is available here:
https://ci.debian.net/data/autopkgtest/testing/amd64/n/ncbi-tools6/67219817/log.gz

It appears that the return value is actually undefined, and depends on
how the rax register is used before. This is actually reported as a warning
at build time:

|x86_64-linux-gnu-gcc -o debruijn -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/ncbi-tools6-6.1.20170106+dfsg2=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wall -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -Wl,-rpath-link,../shlib -I../include  -L../shlib  debruijn.c -lblast -lblastcompadj -lncbi -lm
|In file included from /usr/include/x86_64-linux-gnu/sys/types.h:25,
|                 from ../include/ncbilcl.h:150,
|                 from ../include/ncbi.h:57,
|                 from debruijn.c:38:
|/usr/include/features.h:199:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
|  199 | # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
|      |   ^~~~~~~
|debruijn.c: In function ‘Nlm_Main’:
|debruijn.c:72:12: warning: pointer targets in assignment from ‘Nlm_CharPtr’ {aka ‘char *’} to ‘Nlm_Uint1 *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
|   72 |   alphabet = myargs[1].strvalue;
|      |            ^
|debruijn.c:80:14: warning: pointer targets in passing argument 1 of ‘strlen’ differ in signedness [-Wpointer-sign]
|   80 |   k = strlen(alphabet);
|      |              ^~~~~~~~
|      |              |
|      |              Nlm_Uint1 * {aka unsigned char *}
|In file included from ../include/ncbilcl.h:156:
|/usr/include/string.h:407:35: note: expected ‘const char *’ but argument is of type ‘Nlm_Uint1 *’ {aka ‘unsigned char *’}
|  407 | extern size_t strlen (const char *__s)
|      |                       ~~~~~~~~~~~~^~~
|debruijn.c:89:10: warning: pointer targets in assignment from ‘char *’ to ‘Nlm_Uint1 *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
|   89 |   output = (char *) malloc(outputsize + 1);
|      |          ^
|debruijn.c:106:8: warning: pointer targets in passing argument 1 of ‘puts’ differ in signedness [-Wpointer-sign]
|  106 |   puts(output);
|      |        ^~~~~~
|      |        |
|      |        Nlm_Uint1 * {aka unsigned char *}
|In file included from ../include/ncbilcl.h:154:
|/usr/include/stdio.h:714:30: note: expected ‘const char *’ but argument is of type ‘Nlm_Uint1 *’ {aka ‘unsigned char *’}
|  714 | extern int puts (const char *__s);
|      |                  ~~~~~~~~~~~~^~~
|debruijn.c:109:1: warning: control reaches end of non-void function [-Wreturn-type]
|  109 | }
|      | ^

This means that the return value is undefined. Luckily it was 0 with
glibc compiled with GCC 14, but unfortunately it gets another value
when glibc is compiled with GCC 15.

|debruijn.c: At top level:
|debruijn.c:29:19: warning: ‘rcsid’ defined but not used [-Wunused-const-variable=]
|   29 | static char const rcsid[] = "$Id: debruijn.c,v 1.4 2004/02/09 21:24:59 ucko Exp $";
|      |                   ^~~~~

The following patch fixes the issue:

--- ncbi-tools6-6.1.20170106+dfsg2.orig/demo/debruijn.c
+++ ncbi-tools6-6.1.20170106+dfsg2/demo/debruijn.c
@@ -106,4 +106,6 @@ Int2 Main(void)
   puts(output);
 
   free(output);
+
+  return 0;
 }

Note however there are many other similar warning in the build log, you
probably want to fix all of them.

Regards
Aurelien


More information about the Debian-med-packaging mailing list