Package: openslp-dfsg Version: 1.2.1-9 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.
[...] /bin/bash ../libtool --tag=CC --mode=link x86_64-linux-gnu-gcc -DNDEBUG -D_REENTRANT=1 -DLINUX -Wall -O3 -o testslpd_predicate_test slpd_predicate_test.o ../libslp/libslp.la ../libslpattr/libslpattr.la ../common/libcommonlibslp.la ../common/libcommonslpd.la ../slpd/slpd_predicate.o ../common/libcommonslpd.la -lnsl -lresolv libtool: link: x86_64-linux-gnu-gcc -DNDEBUG -D_REENTRANT=1 -DLINUX -Wall -O3 -o .libs/testslpd_predicate_test slpd_predicate_test.o ../slpd/slpd_predicate.o ../libslp/.libs/libslp.so ../libslpattr/.libs/libslpattr.a ../common/.libs/libcommonlibslp.a ../common/.libs/libcommonslpd.a -lnsl -lresolv error: conflicting function declarations "SLPDPredicateTest" old definition in module slpd_predicate_test file SLPD_predicate_test/slpd_predicate_test.c line 9 signed int (void *, void *) new definition in module slpd_predicate file slpd_predicate.c line 1455 signed int (signed int version, signed int attrlistlen, const char *attrlist, signed int predicatelen, const char *predicate) Makefile:637: recipe for target 'testslpd_predicate_test' failed make[3]: *** [testslpd_predicate_test] Error 64 make[3]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-openslp-dfsg/openslp-dfsg-1.2.1/test' Makefile:396: recipe for target 'all-recursive' failed make[2]: *** [all-recursive] Error 1 It seems that the following declaration should simply gain a "static" to make sure it is only visible within slpd_predicate_test.c, which is the only file using the function with such a signature: http://sources.debian.net/src/openslp-dfsg/1.2.1-9/test/SLPD_predicate_test/slpd_predicate_test.c?hl=9#L9 The proper global one indeed has a completely different signature: http://sources.debian.net/src/openslp-dfsg/1.2.1-9/slpd/slpd_predicate.h?hl=60#L60 Having the linker mix them has completely undefined behaviour. Best, Michael
pgpCTh0MojVLt.pgp
Description: PGP signature