Package: glhack Version: 1.2-2 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.
[...] cc -fPIE -pie -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o glhack monst.o objects.o allmain.o alloc.o apply.o artifact.o attrib.o ball.o bones.o botl.o cmd.o dbridge.o decl.o detect.o dig.o display.o dlb.o do.o do_name.o do_wear.o dog.o dogmove.o dokick.o dothrow.o drawing.o dungeon.o eat.o end.o engrave.o exper.o explode.o extralev.o files.o fountain.o hack.o hacklib.o invent.o light.o lock.o mail.o makemon.o mapglyph.o mcastu.o mhitm.o mhitu.o minion.o mklev.o mkmap.o mkmaze.o mkobj.o mkroom.o mon.o mondata.o monmove.o monstr.o mplayer.o mthrowu.o muse.o music.o o_init.o objnam.o options.o pager.o pickup.o pline.o polyself.o potion.o pray.o priest.o quest.o questpgr.o read.o rect.o region.o restore.o rip.o rnd.o role.o rumors.o save.o shk.o shknam.o sit.o sounds.o sp_lev.o spell.o steal.o steed.o teleport.o timeout.o topten.o track.o trap.o u_init.o uhitm.o vault.o vision.o vis_tab.o weapon.o were.o wield.o windows.o wizard.o worm.o worn.o write.o zap.o ioctl.o unixmain.o unixtty.o unixunix.o unixres.o gl_3d.o gl_conf.o gl_emul.o gl_font.o gl_hardw.o gl_image.o gl_main.o gl_map.o gl_menu.o gl_opt.o gl_rendu.o gl_role.o gl_softw.o gl_stat.o gl_text.o gl_tile.o gl_unit.o gl_win.o tile.o version.o -L/usr/lib/x86_64-linux-gnu -lSDL -L/usr/X11R6/lib -lGL -lz -lpng error: conflicting function declarations "check_leash" old definition in module allmain file ../include/extern.h line 41 void (signed int, signed int) new definition in module apply file apply.c line 542 void (signed char x, signed char y) Makefile:426: recipe for target 'Sysunix' failed make[3]: *** [Sysunix] Error 64 make[3]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-glhack/glhack-1.2/src' Makefile:100: recipe for target 'glhack' failed make[2]: *** [glhack] Error 2 Even if all values passed to check_leash actually fit into a signed char, the wrong declaration at http://sources.debian.net/src/glhack/1.2-2/include/extern.h?hl=41#L41 will cause undefined behaviour as 1) negative values will be truncated and 2) even positive signed char will be passed in the wrong byte location on big endian systems. Best, Michael
pgpmP_xC717Qw.pgp
Description: PGP signature