Package: squashfs-tools Version: 1:4.2+20130409-2 Usertags: goto-cc During a rebuild of all Debian packages in a clean sid chroot (using cowbuilder and 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.
[...] cc -Wl,-z,relro mksquashfs.o read_fs.o sort.o swap.o pseudo.o compressor.o action.o progressbar.o read_file.o info.o restore.o caches-queues-lists.o gzip_wrapper.o xz_wrapper.o lzo_wrapper.o xattr.o read_xattrs.o -lpthread -lm -lz -llzma -llzo2 -o mksquashfs file restore.c line 45: error: conflicting types for variable "restore_thread" old definition in module mksquashfs file mksquashfs.c line 280 unsigned long int * new definition in module restore file restore.c line 45 unsigned long int Makefile:204: recipe for target 'mksquashfs' failed make[2]: *** [mksquashfs] Error 64 make[2]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-squashfs-tools/squashfs-tools-4.2+20130409' dh_auto_build: make -j1 returned exit code 2 debian/rules:16: recipe for target 'override_dh_auto_build' failed make[1]: *** [override_dh_auto_build] Error 2 There is some serious inconsistency between the way mksquashfs.c uses restore_thread and restore.c's way of using that very same object. The following yields the most fun: http://sources.debian.net/src/squashfs-tools/1:4.2+20130409-2/mksquashfs.c?hl=5440#L5440 Effectively this call will write the address of restore_thread into restore_thread, killing off all data previously stored in restore_thread. Consequently the following branch is unreachable: http://sources.debian.net/src/squashfs-tools/1:4.2+20130409-2/mksquashfs.c?hl=352#L352 And there may be other errors. Best, Michael
pgphy4EQ48EzJ.pgp
Description: PGP signature

