Package: gegl Version: 0.2.0-5 Severity: wishlist 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 -shared -fPIC -DPIC .libs/gegl-c.o .libs/gegl-apply.o
.libs/gegl-config.o .libs/gegl-cpuaccel.o .libs/gegl-dot.o
.libs/gegl-dot-visitor.o .libs/gegl-enums.o .libs/gegl-init.o
.libs/gegl-instrument.o .libs/gegl-utils.o .libs/gegl-lookup.o .libs/gegl-xml.o
.libs/gegl-matrix.o -Wl,--whole-archive ../gegl/buffer/.libs/libbuffer.a
../gegl/module/.libs/libmodule.a ../gegl/operation/.libs/liboperation.a
../gegl/graph/.libs/libgraph.a ../gegl/process/.libs/libprocess.a
../gegl/property-types/.libs/libpropertytypes.a ../gegl/opencl/.libs/libcl.a
-Wl,--no-whole-archive -lgmodule-2.0 -lgio-2.0 -lgobject-2.0 -lgthread-2.0
-lglib-2.0 -lbabl-0.1 -lm -pthread -O2 -Wl,-z -Wl,relro -Wl,--as-needed
-Wl,--export-dynamic -pthread -pthread -pthread -Wl,-soname
-Wl,libgegl-0.2.so.0 -o .libs/libgegl-0.2.so.0.199.1
error: conflicting function declarations "gegl_buffer_backend"
old definition in module gegl-buffer file gegl-buffer.c line 448
struct _GeglTileBackend * (struct _GeglBuffer *buffer)
new definition in module gegl-tile-storage file gegl-tile-storage.c line 65
struct _GeglTileBackend * (struct _GObject *)
reason for conflict in types listed below (struct/struct):
composite type component counts differ (17/4)
struct _GeglBuffer {
struct _GeglTileHandler parent_instance;
struct _GeglRectangle extent;
const union _Babl * format;
const union _Babl * soft_format;
signed int shift_x;
signed int shift_y;
struct _GeglRectangle abyss;
struct _GeglSampler * sampler;
const union _Babl * sampler_format;
struct _GeglTileStorage * tile_storage;
signed int tile_width;
signed int tile_height;
char * path;
signed int lock_count;
unsigned int $pad0;
char * alloc_stack_trace;
void * backend;
}
struct _GObject {
struct _GTypeInstance g_type_instance;
volatile unsigned int ref_count;
unsigned int $pad0;
struct _GData * qdata;
}
Makefile:703: recipe for target 'libgegl-0.2.la' failed
make[4]: *** [libgegl-0.2.la] Error 64
make[4]: Leaving directory
'/srv/jenkins-slave/workspace/sid-goto-cc-gegl/gegl-0.2.0/gegl'
Makefile:843: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
I've included the detailed conflict report provided by the tool to clarify that
a _GeglBuffer isn't a _GObject at all - hence the forward declaration in
gegl-tile-storage.c really is just wrong. This is not expected to introduce any
undefined behaviour, but should be fixed in order to avoid spurious warnings by
the compiler.
Best,
Michael
pgpdUFmi4HYlt.pgp
Description: PGP signature

