Package: cdw
Version: 0.7.1-1
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 -std=gnu99 -O2 -g -O3   -o cdw cdw-cddb.o cdw-main.o 
../src/external_tools/libcdwexternaltools.a 
../src/user_interface/widgets/libcdwwidgets.a 
../src/disc_and_drive/libcdwdiscanddrive.a ../src/tasks/libcdwtasks.a 
../src/external_tools/libcdwexternaltools.a 
../src/user_interface/libcdwuserinterface.a ../src/utilities/libcdwutilities.a 
../src/native_file_system/libcdwnativefilesystem.a 
../src/optical_file_systems/libcdwopticalfilesystems.a 
../src/configuration/libcdwconfiguration.a 
../src/user_interface/libcdwuserinterface.a ../gnulib/lib/libgnulib.a 
../src/external_tools/libcdwexternaltools.a 
../src/user_interface/widgets/libcdwwidgets.a ../src/tasks/libcdwtasks.a 
-lmenuw -lformw -lpanelw -lncursesw -lpthread -lcdio -liso9660 -lm -lburn 

error: conflicting function declarations "cdw_dropdown_new"
old definition in module cdw_ext_tools file 
/srv/jenkins-slave/workspace/sid-goto-cc-cdw/cdw-0.7.1/src/user_interface/widgets/cdw_dropdown.h
 line 46
CDW_DROPDOWN *cdw_dropdown_new(WINDOW *parent, int begin_y, int begin_x, int 
width, int n_items_max, cdw_colors_t colors)
new definition in module cdw_dropdown file 
/srv/jenkins-slave/workspace/sid-goto-cc-cdw/cdw-0.7.1/src/user_interface/widgets/cdw_dropdown.c
 line 74
CDW_DROPDOWN *cdw_dropdown_new(WINDOW *parent, int begin_y, int begin_x, int 
width, int n_items_max, cdw_colors_t colors)

composite type component counts differ (32/31)
struct _win_st {
  signed short int _cury;
  signed short int _curx;
  signed short int _maxy;
  signed short int _maxx;
  signed short int _begy;
  signed short int _begx;
  signed short int _flags;
  unsigned short int $pad0;
  unsigned long int _attrs;
  unsigned long int _bkgd;
  _Bool _notimeout;
  _Bool _clear;
  _Bool _leaveok;
  _Bool _scroll;
  _Bool _idlok;
  _Bool _idcok;
  _Bool _immed;
  _Bool _sync;
  _Bool _use_keypad;
  unsigned __CPROVER_bitvector[24] $pad1;
  signed int _delay;
  struct ldat * _line;
  signed short int _regtop;
  signed short int _regbottom;
  signed int _parx;
  signed int _pary;
  unsigned int $pad2;
  struct _win_st * _parent;
  struct pdat _pad;
  signed short int _yoffset;
  unsigned short int $pad3;
  cchar_t _bkgrnd;
}
struct _win_st {
  signed short int _cury;
  signed short int _curx;
  signed short int _maxy;
  signed short int _maxx;
  signed short int _begy;
  signed short int _begx;
  signed short int _flags;
  unsigned short int $pad0;
  unsigned long int _attrs;
  unsigned long int _bkgd;
  _Bool _notimeout;
  _Bool _clear;
  _Bool _leaveok;
  _Bool _scroll;
  _Bool _idlok;
  _Bool _idcok;
  _Bool _immed;
  _Bool _sync;
  _Bool _use_keypad;
  unsigned __CPROVER_bitvector[24] $pad1;
  signed int _delay;
  struct ldat * _line;
  signed short int _regtop;
  signed short int _regbottom;
  signed int _parx;
  signed int _pary;
  unsigned int $pad2;
  struct _win_st * _parent;
  struct pdat _pad;
  signed short int _yoffset;
  unsigned short int $pad3;
}

As can be seen at

http://sources.debian.net/src/ncurses/5.9+20140118-1/include/curses.h.in?hl=455#L455

the _bkgrnd field is only included in struct _win_st if NCURSES_WIDECHAR is set
- which in turn is conditional as seen here:

http://sources.debian.net/src/ncurses/5.9+20140118-1/include/curses.h.in?hl=161#L161

Thus the use of #define _GNU_SOURCE in src/external_tools/cdw_ext_tools.c
implies inconsistent types. If _GNU_SOURCE is required, it should be set on the
compiler command line or in a project-wide include file to ensure consistency.

Best,
Michael

Attachment: pgpuBBN9MgT9Z.pgp
Description: PGP signature

Reply via email to