Package: playmidi Version: 2.4debian-10 Severity: wishlist 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 -o playmidi playmidi.o readmidi.o playevents.o patchload.o emumidi.o io_ncurses.o -L/usr/lib -L/usr/lib64 -lncurses error: conflicting function declarations "gus_load" old definition in module playmidi file playmidi.c line 70 signed int (signed int) new definition in module patchload file patchload.c line 85 void (signed int pgm) Makefile:83: recipe for target 'playmidi' failed make[1]: *** [playmidi] Error 64 make[1]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-playmidi/playmidi-2.4debian' debian/rules:21: recipe for target 'build-stamp' failed make: *** [build-stamp] Error 2 This conflict is really just an error in the declaration here: http://sources.debian.net/src/playmidi/2.4debian-10/playmidi.c?hl=70#L70 This promises a return value, which doesn't exist: http://sources.debian.net/src/playmidi/2.4debian-10/patchload.c?hl=85#L85 Fixing the above declaration will ensure that no one inadvertently uses the return value, which would result in undefined behaviour. Best, Michael
pgpYVrzoYWhlZ.pgp
Description: PGP signature