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
pgpuBBN9MgT9Z.pgp
Description: PGP signature

