Package: dpkg
Version: 1.17.9
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.

error: conflicting function declarations "trig_file_activate"
old definition in module archives file ../../lib/dpkg/triglib.h line 88
void (struct filenamenode *, struct pkginfo *)
new definition in module triglib file ../../../lib/dpkg/triglib.c line 546
void (struct filenamenode *trig, struct pkginfo *aw)

While this appears to be consistent, "struct filenamenode" actually refers to
different structs:

struct filenamenode {
  struct filenamenode * next;
  const char * name;
  struct pkg_list * packages;
  struct diversion * divert;
  struct file_stat * statoverride;
  int flags;
  const char * oldhash;
  const char * newhash;
  struct stat * filestat;
  struct trigfileint * trig_interested;
}

vs.

struct filenamenode {
  struct filenamenode * next;
  const char * name;
  struct trigfileint * trig_interested;
}

Using one in place of the other appears to be dangerous at best, but may also be
entirely broken.

Best,
Michael

Attachment: pgpkICVsa8OvY.pgp
Description: PGP signature

Reply via email to