Package: pmacct Version: 0.14.0-1.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 -O2 -Wall -g -O2 -I/usr/include/postgresql -Wl,--export-dynamic -o pmmyplay pmmyplay.o strlcpy.o sql_handlers.o log_templates.o addr.o -lsqlite3 -lmysqlclient -lpcap -lpq -ldl -lm -lz -lpthread -lnfprobe_plugin -Lnfprobe_plugin/ -lsfprobe_plugin -Lsfprobe_plugin/ -lbgp -Lbgp/ -ltee_plugin -Ltee_plugin/ -lisis -Lisis/ error: conflicting function declarations "bgp_rd2str" old definition in module pmmyplay file pmmyplay.c line 791 signed int (unsigned char *str, struct rd_as *rd) new definition in module bgp file bgp.c line 1333 signed int (char *str, struct rd_as *rd) Makefile:237: recipe for target 'pmmyplay' failed make[3]: *** [pmmyplay] Error 64 make[3]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-pmacct/pmacct-0.14.0/src' Makefile:276: recipe for target 'all-recursive' failed make[2]: *** [all-recursive] Error 1 It seems multiple definitions of bgp_rd2str exist, yet they don't even match the desired prototype: http://sources.debian.net/src/pmacct/0.14.0-1.1/src/bgp/bgp.h?hl=162#L162 It's not clear why the following would actually fix a problem in the right way: http://sources.debian.net/src/pmacct/0.14.0-1.1/src/pmmyplay.c?hl=791#L791 http://sources.debian.net/src/pmacct/0.14.0-1.1/src/pmpgplay.c?hl=897#L897 The actually desired implementation seems to be this one: http://sources.debian.net/src/pmacct/0.14.0-1.1/src/bgp/bgp.c?hl=1333#L1333 Leaving it to the linker to pick the correct one is a risky game. Best, Michael
pgpSf25T2TMpg.pgp
Description: PGP signature