Package: john
Version: 1.8.0-2
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 DES_fmt.o DES_std.o DES_bs.o DES_bs_b.o BSDI_fmt.o MD5_fmt.o MD5_std.o 
BF_fmt.o BF_std.o AFS_fmt.o LM_fmt.o trip_fmt.o dummy.o batch.o bench.o 
charset.o common.o compiler.o config.o cracker.o crc32.o external.o formats.o 
getopt.o idle.o inc.o john.o list.o loader.o logger.o math.o memory.o misc.o 
options.o params.o path.o recovery.o rpp.o rules.o signals.o single.o status.o 
tty.o wordlist.o unshadow.o unafs.o unique.o c3_fmt.o x86-64.o -Wl,-z,relro -s  
-lcrypt -o ../run/john

error: conflicting function declarations "__fxstat"
old definition in module john file /usr/include/x86_64-linux-gnu/sys/stat.h 
line 399
signed int (signed int, signed int, struct stat *)
new definition in module logger file /usr/include/x86_64-linux-gnu/sys/stat.h 
line 399
signed int (signed int, signed int, struct stat *)

reason for conflict 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:834: recipe for target '../run/john' failed
make[3]: *** [../run/john] Error 64
make[3]: Leaving directory 
'/srv/jenkins-slave/workspace/sid-goto-cc-john/john-1.8.0/src'
Makefile:182: recipe for target 'linux-x86-64' failed
make[2]: *** [linux-x86-64] Error 2

This type conflict is caused by #define _XOPEN_SOURCE being present in logger.c,
while it is missing from john.c. Indeed this should be set across the project,
either in a project-wide header file or on the compiler command line.

Best,
Michael


Attachment: pgpeeU0wuvyg_.pgp
Description: PGP signature

Reply via email to