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

Attachment: pgpfzA45NewHM.pgp
Description: PGP signature

Reply via email to