Package: otf Version: 1.12.4+dfsg-3 Severity: minor 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.
[...]
CCLD otf_generic_streams
error: conflicting function declarations "OTF_WStream_open"
old definition in module generic_streams file ../../otflib/OTF_WStream.h line
166
struct struct_OTF_WStream * (const char *, unsigned int, struct
struct_OTF_FileManager *)
new definition in module OTF_Writer file OTF_WStream.h line 166
struct struct_OTF_WStream * (const char *namestub, unsigned int id, struct
struct_OTF_FileManager *manager)
reason for conflict in types listed below (struct/struct):
composite type component counts differ (11/13)
struct struct_OTF_WStream {
char * namestub;
unsigned int id;
unsigned int format;
struct struct_OTF_WBuffer * defBuffer;
struct struct_OTF_WBuffer * eventBuffer;
struct struct_OTF_WBuffer * snapsBuffer;
struct struct_OTF_WBuffer * statsBuffer;
struct struct_OTF_WBuffer * markerBuffer;
unsigned int compression;
unsigned int buffersizes;
struct struct_OTF_FileManager * manager;
}
struct struct_OTF_WStream {
char * namestub;
unsigned int id;
unsigned int format;
struct struct_OTF_WBuffer * defBuffer;
struct struct_OTF_WBuffer * eventBuffer;
struct struct_OTF_WBuffer * snapsBuffer;
struct struct_OTF_WBuffer * statsBuffer;
struct struct_OTF_WBuffer * markerBuffer;
unsigned int compression;
unsigned int buffersizes;
unsigned int zbuffersizes;
unsigned int <padding>;
struct struct_OTF_FileManager * manager;
}
Makefile:408: recipe for target 'otf_generic_streams' failed
make[4]: *** [otf_generic_streams] Error 64
make[4]: Leaving directory
'/srv/jenkins-slave/workspace/sid-goto-cc-otf/otf-1.12.4+dfsg/tests/generic_streams'
Makefile:543: recipe for target 'check-am' failed
make[3]: *** [check-am] Error 2
Observe the additional zbuffersizes field in the second declaration, which will
also cause the offset of the member manager to be shifted. This is due to a
missing HAVE_ZLIB:
http://sources.debian.net/src/otf/1.12.4+dfsg-3/otflib/OTF_WStream.h?hl=140#L140
when including OTF_WStream.h from tests/generic_streams/generic_streams.c.
Consequently the function declarations conflict when invoked from here:
http://sources.debian.net/src/otf/1.12.4+dfsg-3/tests/generic_streams/generic_streams.c?hl=36#L36
Yet this may be safe at present as the member of struct_OTF_WStream are not
being accessed from the test directly. If that is the intended way of using it,
it may be worth considering making the struct private, i.e., not exposing the
full type in the header file.
Best,
Michael
pgpXfjfvVfSQq.pgp
Description: PGP signature

