Package: cuba Version: 3.0+20111124-2 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.
[...] gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -DHAVE_CONFIG_H -I./src/common -I. -I. -fPIC -o demo-c ./demo/demo-c.c libcuba.a -lm error: conflicting function declarations "Vegas" old definition in module demo-c file ./cuba.h line 24 void (const signed int, const signed int, signed int (*)(const signed int *ndim, const double *x, const signed int *ncomp, double *f, void *userdata), void *, const double, const double, const signed int, const signed int, const signed int, const signed int, const signed int, const signed int, const signed int, const signed int, const char *, signed int *, signed int *, double *, double *, double *) new definition in module Vegas file ./src/vegas/Vegas.c line 22 void (const signed int ndim, const signed int ncomp, signed int (*integrand)(const signed int *, const double *, const signed int *, double *, void *, const double *, const signed int *), void *userdata, const double epsrel, const double epsabs, const signed int flags, const signed int seed, const signed int mineval, const signed int maxeval, const signed int nstart, const signed int nincrease, const signed int nbatch, const signed int gridno, const char *statefile, signed int *pneval, signed int *pfail, double *integral, double *error, double *prob) makefile:225: recipe for target 'demo-c' failed make[2]: *** [demo-c] Error 64 make[2]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-cuba/cuba-3.0+20111124' dh_auto_build: make -j1 returned exit code 2 debian/rules:20: recipe for target 'override_dh_auto_build' failed make[1]: *** [override_dh_auto_build] Error 2 So the issue here is the number of parameters of the function pointer integrand (the third parameter of Vegas). cuba.h exports this declaration towards demo-c: http://sources.debian.net/src/cuba/3.0+20111124-2/cuba.h?hl=18#L18 But Vegas.c uses http://sources.debian.net/src/cuba/3.0+20111124-2/src/vegas/decl.h?hl=31#L31 Hence demo-c appears to pass in a function of wrong type. Best, Michael
pgpzk9lyQBQ2m.pgp
Description: PGP signature