Package: mtools Version: 4.0.18-1 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 -D_FORTIFY_SOURCE=2 -DHAVE_CONFIG_H -DSYSCONFDIR=\"/etc\" -DCPU_x86_64 -DVENDOR_pc -DOS_linux_gnu -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -fno-strict-aliasing -I. -I. -c mainloop.c file mainloop.c line 89: syntax error before `;' PARSING ERROR Makefile:155: recipe for target 'mainloop.o' failed make[1]: *** [mainloop.o] Error 64 make[1]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-mtools/mtools-4.0.18' dh_auto_build: make -j1 returned exit code 2 debian/rules:11: recipe for target 'build' failed make: *** [build] Error 2 It seems that GCC accepts the following, but also Clang refuses this mildly weird bit of C: int unix_loop(Stream_t *Stream __attribute__ ((unused));Stream_t *Stream, MainParam_t *mp, char *arg, int follow_dir_link); syntax.c:49:56: error: expected ')' int unix_loop(Stream_t *Stream __attribute__ ((unused));Stream_t *Stream, MainParam_t *mp, char *arg, ^ syntax.c:49:14: note: to match this '(' int unix_loop(Stream_t *Stream __attribute__ ((unused));Stream_t *Stream, MainParam_t *mp, char *arg, ^ The code results from http://sources.debian.net/src/mtools/4.0.18-1/sysincludes.h?hl=106#L106 applied here: http://sources.debian.net/src/mtools/4.0.18-1/mainloop.c?hl=98#L98 Maybe this should have been UNUSEDP? Else it would be nice to declare a variant, say UNUSED_ARG, which does not introduce a semicolon. Best, Michael
pgpWz_fK4jFhn.pgp
Description: PGP signature