Package: faumachine
Version: 20120707-3
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 -Wchar-subscripts -Wcomment -Wformat -Wnonnull -Wimplicit-int 
-Wimplicit-function-declaration -Wimplicit -Wmain -Wmissing-braces 
-Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs 
-Wunused-function -Wunused-label -Wunused-variable -Wunused-value 
-Wuninitialized -Wunknown-pragmas -Wundef -Wendif-labels -Wpointer-arith 
-Wcast-qual -Wcast-align -Wwrite-strings -Waggregate-return -Wmissing-noreturn 
-Wnested-externs -Wredundant-decls -Wno-pointer-sign -I../lib -I/usr/include/  
-pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include 
-I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 
-I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 
-I/usr/include/libdrm -I/usr/include/libpng12 -I/usr/include/gdk-pixbuf-2.0 
-I/usr/include/libpng12 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz 
-I/usr/include/pango-1.0 -I/usr/include/glib-2.0 
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/freetype2  
-I/usr/include/libpng12  -g -O2 --no-stack-protector -fno-inline-atomics 
-fno-optimize-strlen -fno-shrink-wrap -fno-tree-tail-merge  -L/usr/lib 
-L/usr/local/lib -o faum-node-pc faum_node_pc-system.o faum_node_pc-log.o 
faum_node_pc-simsetup.o ../lib/libglue.a simulator/libhw.a 
simulator/qemu/libqemu-gen-286.a simulator/qemu/libqemu-gen-386.a 
simulator/qemu/libqemu-gen-686_klamath.a 
simulator/qemu/libqemu-gen-686_coppermine.a simulator/qemu/libqemu-gen-x86_64.a 
../lib/libpattern.a ../lib/libcim.a ../lib/libsig.a ../lib/libsimsetup.a 
/usr/lib/libfauhdli.a ../lib/libglue.a -lX11  -lgtk-x11-2.0 -lgdk-x11-2.0 
-lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 
-lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype  -lpng12  -ldl 
-ldl -ldl -lm 

error: conflicting function declarations "setitimer"
old definition in module glue-audio file 
/usr/include/x86_64-linux-gnu/sys/time.h line 131
signed int (signed int, const struct itimerval *, struct itimerval *)
new definition in module glue-main file 
/usr/include/x86_64-linux-gnu/sys/time.h line 131
signed int (enum __itimer_which, const struct itimerval *, struct itimerval *)
Makefile:499: recipe for target 'faum-node-pc' failed
make[4]: *** [faum-node-pc] Error 64
make[4]: Leaving directory 
'/srv/jenkins-slave/workspace/sid-goto-cc-faumachine/faumachine-20120707/node-pc'
Makefile:575: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1

This inconsistency of int vs. enum __itimer_which results from a mixed order of
#include, in particular that of config.h - compare

http://sources.debian.net/src/faumachine/20120707-3/lib/glue-main.c?hl=14#L14

and

http://sources.debian.net/src/faumachine/20120707-3/lib/glue-audio.c?hl=20#L9

The position of config.h should be uniform to ensure all header files expand
consistently across various compilation units.

Best,
Michael

Attachment: pgp8r4gTGVcit.pgp
Description: PGP signature

Reply via email to