Package: graphicsmagick
Version: 1.3.18-2
Severity: wishlist
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.

[...]
LD_RUN_PATH="" gcc -std=gnu99  -L/usr/lib -shared -L/usr/local/lib 
-fstack-protector Magick.o  -o blib/arch/auto/Graphics/Magick/Magick.so  \
   
-L/srv/jenkins-slave/workspace/sid-goto-cc-graphicsmagick/graphicsmagick-1.3.18/magick/.libs
 -lGraphicsMagick -L/usr/lib/X11 -L/usr/lib -L/usr/lib -ljbig -llcms2 -ltiff 
-lfreetype -ljasper -ljpeg -lpng12 -lwmflite -lXext -lSM -lICE -lX11 -llzma 
-lbz2 -lxml2 -lz -lm -lgomp -lpthread   \

error: conflicting function declarations "AcquireImagePixels"
old definition in module Magick file ../magick/pixel_cache.h line 48
const struct _PixelPacket * (const struct _Image *, const signed long int, 
const signed long int, const unsigned long int, const unsigned long int, struct 
_ExceptionInfo *)
new definition in module analyze file ./magick/pixel_cache.h line 48
const struct _PixelPacket * (struct _Image *, const signed long int, const 
signed long int, const unsigned long int, const unsigned long int, struct 
_ExceptionInfo *)

reason for conflict at .gamma in types listed below (struct/struct):
names of component 15 differ (gamma/gamma_magick)
struct _Image {
  int storage_class;
  int colorspace;
  int compression;
  unsigned int dither;
  unsigned int matte;
  unsigned int $pad0;
  unsigned long int columns;
  unsigned long int rows;
  unsigned int colors;
  unsigned int depth;
  struct _PixelPacket * colormap;
  struct _PixelPacket background_color;
  struct _PixelPacket border_color;
  struct _PixelPacket matte_color;
  unsigned int $pad1;
  double gamma;
  struct _ChromaticityInfo chromaticity;
  int orientation;
  int rendering_intent;
  int units;
  unsigned int $pad2;
  char * montage;
  char * directory;
  char * geometry;
  signed long int offset;
  double x_resolution;
  double y_resolution;
  struct _RectangleInfo page;
  struct _RectangleInfo tile_info;
  double blur;
  double fuzz;
  int filter;
  int interlace;
  int endian;
  int gravity;
  int compose;
  int dispose;
  unsigned long int scene;
  unsigned long int delay;
  unsigned long int iterations;
  unsigned long int total_colors;
  signed long int start_loop;
  struct _ErrorInfo error;
  struct _TimerInfo timer;
  void * client_data;
  char [2053l] filename;
  char [2053l] magick_filename;
  char [2053l] magick;
  unsigned char $pad3;
  unsigned long int magick_columns;
  unsigned long int magick_rows;
  struct _ExceptionInfo exception;
  struct _Image * previous;
  struct _Image * next;
  void * profiles;
  unsigned int is_monochrome;
  unsigned int is_grayscale;
  unsigned int taint;
  unsigned int $pad4;
  struct _Image * clip_mask;
  unsigned int ping;
  unsigned int $pad5;
  struct _CacheInfo * cache;
  struct _ThreadViewSet * default_views;
  struct _ImageAttribute * attributes;
  struct _Ascii85Info * ascii85;
  struct _BlobInfo * blob;
  signed long int reference_count;
  struct _SemaphoreInfo * semaphore;
  unsigned int logging;
  unsigned int $pad6;
  struct _Image * list;
  unsigned long int signature;
}
struct _Image {
  int storage_class;
  int colorspace;
  int compression;
  unsigned int dither;
  unsigned int matte;
  unsigned int $pad0;
  unsigned long int columns;
  unsigned long int rows;
  unsigned int colors;
  unsigned int depth;
  struct _PixelPacket * colormap;
  struct _PixelPacket background_color;
  struct _PixelPacket border_color;
  struct _PixelPacket matte_color;
  unsigned int $pad1;
  double gamma_magick;
  struct _ChromaticityInfo chromaticity;
  int orientation;
  int rendering_intent;
  int units;
  unsigned int $pad2;
  char * montage;
  char * directory;
  char * geometry;
  signed long int offset;
  double x_resolution;
  double y_resolution;
  struct _RectangleInfo page;
  struct _RectangleInfo tile_info;
  double blur;
  double fuzz;
  int filter;
  int interlace;
  int endian;
  int gravity;
  int compose;
  int dispose;
  unsigned long int scene;
  unsigned long int delay;
  unsigned long int iterations;
  unsigned long int total_colors;
  signed long int start_loop;
  struct _ErrorInfo error;
  struct _TimerInfo timer;
  void * client_data;
  char [2053l] filename;
  char [2053l] magick_filename;
  char [2053l] magick;
  unsigned char $pad3;
  unsigned long int magick_columns;
  unsigned long int magick_rows;
  struct _ExceptionInfo exception;
  struct _Image * previous;
  struct _Image * next;
  void * profiles;
  unsigned int is_monochrome;
  unsigned int is_grayscale;
  unsigned int taint;
  unsigned int $pad4;
  struct _Image * clip_mask;
  unsigned int ping;
  unsigned int $pad5;
  struct _CacheInfo * cache;
  struct _ThreadViewSet * default_views;
  struct _ImageAttribute * attributes;
  struct _Ascii85Info * ascii85;
  struct _BlobInfo * blob;
  signed long int reference_count;
  struct _SemaphoreInfo * semaphore;
  unsigned int logging;
  unsigned int $pad6;
  struct _Image * list;
  unsigned long int signature;
}
Makefile:488: recipe for target 'blib/arch/auto/Graphics/Magick/Magick.so' 
failed
make[2]: *** [blib/arch/auto/Graphics/Magick/Magick.so] Error 64

It seems this type conflict is caused by the #define in studio.h:

http://sources.debian.net/src/graphicsmagick/1.3.18-2/magick/studio.h?hl=180#L180

Likely the problem reported above is an undesired side effect (of this #define
not being present consistently), and the C standard identifies the result as
incompatible types. Yet the bit-level layout won't be affected, so presently
there need not be observable problems.

Best,
Michael

Attachment: pgpP195Ee9oVJ.pgp
Description: PGP signature

Reply via email to