Package: fakechroot Version: 2.17.2-1 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.
[...] libtool: link: gcc -shared -fPIC -DPIC .libs/__fxstatat.o .libs/__fxstatat64.o .libs/__getcwd_chk.o .libs/__getwd_chk.o .libs/__lxstat.o .libs/__lxstat64.o .libs/__open.o .libs/__open64.o .libs/__open64_2.o .libs/__open_2.o .libs/__openat64_2.o .libs/__openat_2.o .libs/__opendir2.o .libs/__readlink_chk.o .libs/__readlinkat_chk.o .libs/__realpath_chk.o .libs/__statfs.o .libs/__xmknod.o .libs/__xmknodat.o .libs/__xstat.o .libs/__xstat64.o .libs/_xftw.o .libs/_xftw64.o .libs/access.o .libs/acct.o .libs/bind.o .libs/bindtextdomain.o .libs/canonicalize_file_name.o .libs/chdir.o .libs/chmod.o .libs/chown.o .libs/chroot.o .libs/clearenv.o .libs/connect.o .libs/creat.o .libs/creat64.o .libs/dedotdot.o .libs/dlmopen.o .libs/dlopen.o .libs/eaccess.o .libs/euidaccess.o .libs/execl.o .libs/execle.o .libs/execlp.o .libs/execv.o .libs/execve.o .libs/execvp.o .libs/faccessat.o .libs/fchmodat.o .libs/fchownat.o .libs/fopen.o .libs/fopen64.o .libs/freopen.o .libs/freopen64.o .libs/fts.o .libs/ftw.o .libs/ftw64.o .libs/futimesat.o .libs/get_current_dir_name.o .libs/getcwd.o .libs/getcwd_real.o .libs/getpeername.o .libs/getsockname.o .libs/getwd.o .libs/getxattr.o .libs/glob.o .libs/glob64.o .libs/glob_pattern_p.o .libs/inotify_add_watch.o .libs/lchmod.o .libs/lchown.o .libs/lckpwdf.o .libs/lgetxattr.o .libs/libfakechroot.o .libs/link.o .libs/linkat.o .libs/listxattr.o .libs/llistxattr.o .libs/lremovexattr.o .libs/lsetxattr.o .libs/lstat.o .libs/lstat64.o .libs/lutimes.o .libs/mkdir.o .libs/mkdirat.o .libs/mkdtemp.o .libs/mkfifo.o .libs/mkfifoat.o .libs/mknod.o .libs/mknodat.o .libs/mkostemp.o .libs/mkostemp64.o .libs/mkostemps.o .libs/mkostemps64.o .libs/mkstemp.o .libs/mkstemp64.o .libs/mkstemps.o .libs/mkstemps64.o .libs/mktemp.o .libs/open.o .libs/open64.o .libs/openat.o .libs/openat64.o .libs/opendir.o .libs/pathconf.o .libs/popen.o .libs/rawmemchr.o .libs/readlink.o .libs/readlinkat.o .libs/realpath.o .libs/rel2abs.o .libs/rel2absat.o .libs/remove.o .libs/removexattr.o .libs/rename.o .libs/renameat.o .libs/revoke.o .libs/rmdir.o .libs/rpl_lstat.o .libs/scandir.o .libs/scandir64.o .libs/setenv.o .libs/setxattr.o .libs/stat.o .libs/stat64.o .libs/statfs.o .libs/statfs64.o .libs/statvfs.o .libs/statvfs64.o .libs/stpcpy.o .libs/strchrnul.o .libs/strlcpy.o .libs/symlink.o .libs/symlinkat.o .libs/system.o .libs/tempnam.o .libs/tmpnam.o .libs/truncate.o .libs/truncate64.o .libs/ulckpwdf.o .libs/unlink.o .libs/unlinkat.o .libs/utime.o .libs/utimensat.o .libs/utimes.o -ldl -O2 -Wl,-z -Wl,relro -Wl,-soname -Wl,libfakechroot.so -o .libs/libfakechroot.so error: conflicting function declarations "__lxstat" old definition in module __lxstat file __lxstat.c line 35 signed int (signed int ver, const char *filename, struct stat *buf) new definition in module fts file /usr/include/x86_64-linux-gnu/sys/stat.h line 403 signed int (signed int, const char *, struct stat *) reason for conflict in types listed below (struct/struct): composite type component counts differ (18/15) 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; } 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; } Makefile:608: recipe for target 'libfakechroot.la' failed make[3]: *** [libfakechroot.la] Error 64 make[3]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-fakechroot/fakechroot-2.17.2/src' Makefile:420: recipe for target 'all-recursive' failed make[2]: *** [all-recursive] Error 1 The above inconsistency of types is caused by a mix of macros being in place: http://sources.debian.net/src/fakechroot/2.17.2-1/src/fts.c?hl=34#L34 http://sources.debian.net/src/fakechroot/2.17.2-1/src/__lxstat.c?hl=26#L26 Likely these should all be sorted out via the common config.h rather than risking those inconsistencies. Best, Michael
pgpOBczMmDs73.pgp
Description: PGP signature