Package: kstart
Version: 4.1-3
Severity: minor
Usertags: goto-cc

During a rebuild of all packages in a clean sid chroot (and cowbuilder+pbuilder)
the build failed with the following error. Please note that we use our research
compiler tool-chain (using tools from the cbmc package), which permits extended
reporting on type inconsistencies at link time.

[...]
gcc  -g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat 
-Werror=format-security  -fPIE -pie -Wl,-z,relro -Wl,-z,now -o 
tests/kafs/haspag-t tests/kafs/tests_kafs_haspag_t-haspag-t.o kafs/libkafs.a 
tests/tap/libtap.a portable/libportable.a  

error: conflicting function declarations "fstat"
old definition in module kafs file /usr/include/x86_64-linux-gnu/sys/stat.h 
line 467
signed int (signed int __fd, struct stat *__statbuf)
new definition in module basic file /usr/include/x86_64-linux-gnu/sys/stat.h 
line 467
signed int (signed int __fd, struct stat *__statbuf)

reason for conflict at __statbuf in types listed below (struct/struct):
composite type component counts differ (15/18)
struct stat {
  unsigned long int st_dev;
  unsigned long int st_ino;
  unsigned long int st_nlink;
  unsigned int st_mode;
  unsigned int st_uid;
  unsigned int st_gid;
  signed int __pad0;
  unsigned long int st_rdev;
  signed long int st_size;
  signed long int st_blksize;
  signed long int st_blocks;
  struct timespec st_atim;
  struct timespec st_mtim;
  struct timespec st_ctim;
  signed long int [3l] __unused;
}
struct stat {
  unsigned long int st_dev;
  unsigned long int st_ino;
  unsigned long int st_nlink;
  unsigned int st_mode;
  unsigned int st_uid;
  unsigned int st_gid;
  signed int __pad0;
  unsigned long int st_rdev;
  signed long int st_size;
  signed long int st_blksize;
  signed long int st_blocks;
  signed long int st_atime;
  unsigned long int st_atimensec;
  signed long int st_mtime;
  unsigned long int st_mtimensec;
  signed long int st_ctime;
  unsigned long int st_ctimensec;
  signed long int [3l] __unused;
}
Makefile:891: recipe for target 'tests/kafs/haspag-t' failed
make[2]: *** [tests/kafs/haspag-t] Error 64
make[2]: Leaving directory 
'/srv/jenkins-slave/workspace/sid-goto-cc-kstart/kstart-4.1'
Makefile:1529: recipe for target 'check-am' failed
make[1]: *** [check-am] Error 2

This type conflict is caused by the use of _XOPEN_SOURCE rather than using
#include <config.h>, which would define _GNU_SOURCE, in tests/tap/basic.c:

http://sources.debian.net/src/kstart/4.1-3/tests/tap/basic.c?hl=39#L39

Compare to tests/kafs/basic.c:

http://sources.debian.net/src/kstart/4.1-3/tests/kafs/basic.c

Using #include <config.h> consistently as first include will ensure this kind of
inconsistency.

Best,
Michael


Attachment: pgpenOUwE3vud.pgp
Description: PGP signature

Reply via email to