Package: glib2.0 Version: 2.40.0-3 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.
[...]
libtool: link: gcc -shared -fPIC -DPIC .libs/libgobject_2_0_la-gatomicarray.o
.libs/libgobject_2_0_la-gbinding.o .libs/libgobject_2_0_la-gboxed.o
.libs/libgobject_2_0_la-gclosure.o .libs/libgobject_2_0_la-genums.o
.libs/libgobject_2_0_la-gmarshal.o .libs/libgobject_2_0_la-gobject.o
.libs/libgobject_2_0_la-gparam.o .libs/libgobject_2_0_la-gparamspecs.o
.libs/libgobject_2_0_la-gsignal.o .libs/libgobject_2_0_la-gsourceclosure.o
.libs/libgobject_2_0_la-gtype.o .libs/libgobject_2_0_la-gtypemodule.o
.libs/libgobject_2_0_la-gtypeplugin.o .libs/libgobject_2_0_la-gvalue.o
.libs/libgobject_2_0_la-gvaluearray.o .libs/libgobject_2_0_la-gvaluetransform.o
.libs/libgobject_2_0_la-gvaluetypes.o -Wl,-rpath
-Wl,/srv/jenkins-slave/workspace/sid-goto-cc-glib2.0/glib2.0-2.40.0/debian/build/deb/glib/.libs
../glib/.libs/libglib-2.0.so -lffi -O2 -Wl,-z -Wl,relro -Wl,-z -Wl,defs
-Wl,--no-as-needed -Wl,-O1 -Wl,-soname -Wl,libgobject-2.0.so.0 -o
.libs/libgobject-2.0.so.0.4000.0
error: conflicting function declarations "g_datalist_get_flags"
old definition in module gobject file
/srv/jenkins-slave/workspace/sid-goto-cc-glib2.0/glib2.0-2.40.0/./glib/gdataset.h
line 96
unsigned int (struct _GData **)
new definition in module gdataset file
/srv/jenkins-slave/workspace/sid-goto-cc-glib2.0/glib2.0-2.40.0/./glib/gdataset.c
line 1225
unsigned int (struct _GData **datalist)
Makefile:1116: recipe for target 'libgobject-2.0.la' failed
make[5]: *** [libgobject-2.0.la] Error 64
make[5]: Leaving directory
'/srv/jenkins-slave/workspace/sid-goto-cc-glib2.0/glib2.0-2.40.0/debian/build/deb/gobject'
Makefile:1621: recipe for target 'all-recursive' failed
While the above declarations appear perfectly consistent, closer inspection via
the diagnostics provided by the tool yields the following details:
reason for conflict in types listed below (struct/struct):
struct _GData {
unsigned int n_qdatas;
unsigned int <<padding>>;
struct _QData * qdatas;
}
struct _GData {
unsigned int len;
unsigned int alloc;
GDataElt data[1];
}
The former struct is defined in gobject/gtype.c, whereas the latter stems from
glib/gdataset.c. Depending on the alignment used on the platform, these
structures may or may not be compatible: on amd64 the padding will fill in for
the alloc field, which may or may not be the case on other architectures.
Best,
Michael
pgpYgTv2oll01.pgp
Description: PGP signature

