Package: drawterm Version: 20110822-1 Severity: wishlist 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.
[...]
gcc -pthread -DPTHREAD -o drawterm main.o cpu.o readcons.o secstore.o latin1.o
posix-factotum.o kern/libkern.a exportfs/libexportfs.a libauth/libauth.a
libauthsrv/libauthsrv.a libsec/libsec.a libmp/libmp.a libmemdraw/libmemdraw.a
libmemlayer/libmemlayer.a libdraw/libdraw.a gui-x11/libgui.a libc/libc.a
kern/libkern.a exportfs/libexportfs.a libauth/libauth.a libauthsrv/libauthsrv.a
libsec/libsec.a libmp/libmp.a libmemdraw/libmemdraw.a libmemlayer/libmemlayer.a
libdraw/libdraw.a gui-x11/libgui.a libc/libc.a kern/libkern.a
exportfs/libexportfs.a libauth/libauth.a libauthsrv/libauthsrv.a
libsec/libsec.a libmp/libmp.a libmemdraw/libmemdraw.a libmemlayer/libmemlayer.a
libdraw/libdraw.a gui-x11/libgui.a libc/libc.a libmachdep.a -L/usr/X11R6/lib64
-L/usr/X11R6/lib -lX11 -ggdb
error: conflicting function declarations "convM2S"
old definition in module devmnt file ../include/fcall.h line 96
unsigned int (unsigned char *, unsigned int, struct Fcall *)
new definition in module exportfs file ../include/fcall.h line 96
unsigned int (unsigned char *, unsigned int, struct Fcall *)
reason for conflict at .stat in types listed below (struct/struct):
names of component 36 differ (stat/sysstat)
struct Fcall {
unsigned char type;
unsigned __CPROVER_bitvector[24] $pad0;
unsigned int fid;
unsigned short int tag;
unsigned short int $pad1;
unsigned int msize;
char * version;
unsigned short int oldtag;
unsigned __CPROVER_bitvector[48] $pad2;
char * ename;
struct Qid qid;
unsigned int iounit;
unsigned int $pad3;
struct Qid aqid;
unsigned int afid;
unsigned int $pad4;
char * uname;
char * aname;
unsigned int perm;
unsigned int $pad5;
char * name;
unsigned char mode;
unsigned __CPROVER_bitvector[24] $pad6;
unsigned int newfid;
unsigned short int nwname;
unsigned __CPROVER_bitvector[48] $pad7;
char *[16l] wname;
unsigned short int nwqid;
unsigned __CPROVER_bitvector[48] $pad8;
struct Qid [16l] wqid;
signed long long int offset;
unsigned int count;
unsigned int $pad9;
char * data;
unsigned short int nstat;
unsigned __CPROVER_bitvector[48] $pad10;
unsigned char * stat;
}
struct Fcall {
unsigned char type;
unsigned __CPROVER_bitvector[24] $pad0;
unsigned int fid;
unsigned short int tag;
unsigned short int $pad1;
unsigned int msize;
char * version;
unsigned short int oldtag;
unsigned __CPROVER_bitvector[48] $pad2;
char * ename;
struct Qid qid;
unsigned int iounit;
unsigned int $pad3;
struct Qid aqid;
unsigned int afid;
unsigned int $pad4;
char * uname;
char * aname;
unsigned int perm;
unsigned int $pad5;
char * name;
unsigned char mode;
unsigned __CPROVER_bitvector[24] $pad6;
unsigned int newfid;
unsigned short int nwname;
unsigned __CPROVER_bitvector[48] $pad7;
char *[16l] wname;
unsigned short int nwqid;
unsigned __CPROVER_bitvector[48] $pad8;
struct Qid [16l] wqid;
signed long long int offset;
unsigned int count;
unsigned int $pad9;
char * data;
unsigned short int nstat;
unsigned __CPROVER_bitvector[48] $pad10;
unsigned char * sysstat;
}
It seems this type conflict is caused by the #define in user.h:
http://sources.debian.net/src/drawterm/20110822-1/include/user.h?hl=15#L15
Likely the problem reported above is an undesired side effect, and the C
standard identifies the result as incompatible types. Yet the bit-level layout
won't be affected, so presently there need not be observable problems.
Best,
Michael
pgpfzA45NewHM.pgp
Description: PGP signature

