Package: pilot-link
Version: 0.12.5-7
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.

[...]
libtool: link: gcc -Wall -g -pthread -O2 -o .libs/pilot-read-veo 
pilot-read-veo.o  ./.libs/libpiuserland.a /usr/lib/x86_64-linux-gnu/libpopt.so 
-lpng ../libpisock/.libs/libpisock.so -pthread

error: conflicting function declarations "ColourCorrect"
old definition in module pilot-read-veo file pilot-read-veo.c line 460
signed int (struct Veo *v, unsigned char *red, unsigned char *green, unsigned 
char *blue, signed long int flags)
new definition in module palmpix file palmpix.c line 1140
signed int (const struct PalmPixHeader *picHdr, unsigned char *r, unsigned char 
*gr, unsigned char *gb, unsigned char *b)

reason for conflict at *#this[0] in types listed below (struct/struct):
composite type component counts differ (16/14)
struct Veo {
  unsigned char [1l] res1;
  unsigned char quality;
  unsigned char resolution;
  unsigned char [12l] res2;
  unsigned char $pad0;
  unsigned long int picnum;
  unsigned short int day;
  unsigned short int month;
  unsigned short int year;
  unsigned short int width;
  unsigned short int height;
  unsigned short int $pad1;
  signed int sd;
  signed int db;
  char [32l] name;
  unsigned int $pad2;
}
struct PalmPixHeader {
  signed int w;
  signed int h;
  signed int resolution;
  signed int zoom;
  signed int num;
  signed int year;
  signed int month;
  signed int day;
  signed int hour;
  signed int min;
  signed int sec;
  signed int numRec;
  signed int thumbLen;
  signed int [4l] chansize;
}
Makefile:1349: recipe for target 'pilot-read-veo' failed
make[4]: *** [pilot-read-veo] Error 64
make[4]: Leaving directory 
'/srv/jenkins-slave/workspace/sid-goto-cc-pilot-link/pilot-link-0.12.5/src'
Makefile:1485: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1

It seems both of the following function definitions should be marked static:

http://sources.debian.net/src/pilot-link/0.12.5-7/libpisock/palmpix.c?hl=1140#L1140
http://sources.debian.net/src/pilot-link/0.12.5-7/src/pilot-read-veo.c?hl=460#L460

Leaving the linker to pick one of the two will inevitably result in disaster, as
each will break the use from the other file.

Best,
Michael

Attachment: pgpJ_DnMWm6xp.pgp
Description: PGP signature

Reply via email to