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