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

Attachment: pgpSf25T2TMpg.pgp
Description: PGP signature

Reply via email to