Package: jupp Version: 3.1.26-1 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 -Wall -Wformat -fno-omit-frame-pointer -fwrapv -fno-strict-aliasing -Wextra -Wno-pointer-sign -Wno-unused-parameter -Wno-missing-field-initializers -Wno-old-style-definition -Wno-strict-prototypes -Wno-cast-qual -Wno-missing-prototypes -Wno-missing-declarations -fPIE -pie -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o joe b.o blocks.o bw.o cmd.o hash.o help.o kbd.o macro.o main.o menu.o path.o poshist.o pw.o queue.o qw.o rc.o regex.o scrn.o tab.o termcap.o tty.o tw.o ublock.o uedit.o uerror.o ufile.o uformat.o uisrch.o umath.o undo.o usearch.o ushell.o utag.o va.o vfile.o vs.o w.o utils.o syntax.o utf8.o selinux.o i18n.o charmap.o builtin.o builtins.o compat.o -lselinux -ltinfo -lutil error: conflicting function declarations "utxt" old definition in module cmd file ../uedit.h line 69 signed int (struct base *) new definition in module uedit file ../uedit.c line 1625 signed int (struct bw *bw) Makefile:423: recipe for target 'joe' failed make[2]: *** [joe] Error 64 make[2]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-jupp/jupp-3.1.26/builddir' Makefile:291: recipe for target 'all' failed Even though struct base is a prefix of struct bw, the implementation of utxt does make use of the second field (b, which is not in struct base) of struct bw. Hence passing in an object of type struct base would cause undefined behaviour in utxt. Review the declaration and definition here: http://sources.debian.net/src/jupp/3.1.26-1/uedit.h?hl=69#L69 http://sources.debian.net/src/jupp/3.1.26-1/uedit.c?hl=1625#L1625 Best, Michael
pgpIg2MOfe5ir.pgp
Description: PGP signature