[Debian-med-packaging] Bug#748548: Conflicting declarations of jpeg_memory_mgr may lead to invalid function calls

Michael Tautschnig mt at debian.org
Sun May 18 10:36:21 UTC 2014


Package: insighttoolkit
Version: 3.20.1+git20120521-5
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.

[...]
/usr/bin/cc  -fPIC -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2    -Wall -Wno-uninitialized -Wno-unused-parameter  -Wl,-z,relro -Wl,--as-needed   -shared -Wl,-soname,libitkjpeg8.so.3.20 -o ../../../bin/libitkjpeg8.so.3.20.1 CMakeFiles/itkjpeg8.dir/__/jmemnobs.o CMakeFiles/itkjpeg8.dir/__/jcomapi.o CMakeFiles/itkjpeg8.dir/__/jutils.o CMakeFiles/itkjpeg8.dir/__/jerror.o CMakeFiles/itkjpeg8.dir/__/jmemmgr.o CMakeFiles/itkjpeg8.dir/__/jcapimin.o CMakeFiles/itkjpeg8.dir/__/jcapistd.o CMakeFiles/itkjpeg8.dir/__/jctrans.o CMakeFiles/itkjpeg8.dir/__/jcparam.o CMakeFiles/itkjpeg8.dir/__/jcinit.o CMakeFiles/itkjpeg8.dir/__/jcmaster.o CMakeFiles/itkjpeg8.dir/__/jcmarker.o CMakeFiles/itkjpeg8.dir/__/jcmainct.o CMakeFiles/itkjpeg8.dir/__/jcprepct.o CMakeFiles/itkjpeg8.dir/__/jccoefct.o CMakeFiles/itkjpeg8.dir/__/jccolor.o CMakeFiles/itkjpeg8.dir/__/jcsample.o CMakeFiles/itkjpeg8.dir/__/jchuff.o CMakeFiles/itkjpeg8.dir/__/jcphuff.o CMakeFiles/itkjpeg8.dir/__/jcdctmgr.o CMakeFiles/itkjpeg8.dir/__/jfdctfst.o CMakeFiles/itkjpeg8.dir/__/jfdctflt.o CMakeFiles/itkjpeg8.dir/__/jdatadst.o CMakeFiles/itkjpeg8.dir/__/jdapimin.o CMakeFiles/itkjpeg8.dir/__/jdapistd.o CMakeFiles/itkjpeg8.dir/__/jdtrans.o CMakeFiles/itkjpeg8.dir/__/jdmaster.o CMakeFiles/itkjpeg8.dir/__/jdinput.o CMakeFiles/itkjpeg8.dir/__/jdmarker.o CMakeFiles/itkjpeg8.dir/__/jdhuff.o CMakeFiles/itkjpeg8.dir/__/jdphuff.o CMakeFiles/itkjpeg8.dir/__/jdmainct.o CMakeFiles/itkjpeg8.dir/__/jdcoefct.o CMakeFiles/itkjpeg8.dir/__/jdpostct.o CMakeFiles/itkjpeg8.dir/__/jddctmgr.o CMakeFiles/itkjpeg8.dir/__/jidctfst.o CMakeFiles/itkjpeg8.dir/__/jidctflt.o CMakeFiles/itkjpeg8.dir/__/jidctint.o CMakeFiles/itkjpeg8.dir/__/jidctred.o CMakeFiles/itkjpeg8.dir/__/jdsample.o CMakeFiles/itkjpeg8.dir/__/jdcolor.o CMakeFiles/itkjpeg8.dir/__/jquant1.o CMakeFiles/itkjpeg8.dir/__/jquant2.o CMakeFiles/itkjpeg8.dir/__/jdmerge.o CMakeFiles/itkjpeg8.dir/__/jdatasrc.o CMakeFiles/itkjpeg8.dir/__/jfdctint.o CMakeFiles/itkjpeg8.dir/__/jclossy.o CMakeFiles/itkjpeg8.dir/__/jclossls.o CMakeFiles/itkjpeg8.dir/__/jdarith.o CMakeFiles/itkjpeg8.dir/__/jcodec.o CMakeFiles/itkjpeg8.dir/__/jcscale.o CMakeFiles/itkjpeg8.dir/__/jcshuff.o CMakeFiles/itkjpeg8.dir/__/jclhuff.o CMakeFiles/itkjpeg8.dir/__/jcpred.o CMakeFiles/itkjpeg8.dir/__/jcdiffct.o CMakeFiles/itkjpeg8.dir/__/jdlossls.o CMakeFiles/itkjpeg8.dir/__/jdlossy.o CMakeFiles/itkjpeg8.dir/__/jcarith.o CMakeFiles/itkjpeg8.dir/__/jdlhuff.o CMakeFiles/itkjpeg8.dir/__/jddiffct.o CMakeFiles/itkjpeg8.dir/__/jdpred.o CMakeFiles/itkjpeg8.dir/__/jdscale.o CMakeFiles/itkjpeg8.dir/__/jdshuff.o 

error: conflicting function declarations "itk_jpeg8_jpeg_destroy"
old definition in module jcomapi file /srv/jenkins-slave/workspace/sid-goto-cc-insighttoolkit/insighttoolkit-3.20.1+git20120521/Utilities/itkjpeg/jcomapi.c line 69
void (struct jpeg_common_struct *cinfo)
new definition in module jerror file /srv/jenkins-slave/workspace/sid-goto-cc-insighttoolkit/insighttoolkit-3.20.1+git20120521/Utilities/itkjpeg/jpeglib.h line 1069
void (struct jpeg_common_struct *)

reason for conflict at cinfo.mem in types listed below (struct/struct):
composite type component counts differ (14/13)
struct jpeg_memory_mgr {
  void * (*)(struct jpeg_common_struct *cinfo, signed int pool_id, unsigned long int sizeofobject) alloc_small;
  void * (*)(struct jpeg_common_struct *cinfo, signed int pool_id, unsigned long int sizeofobject) alloc_large;
  unsigned char ** (*)(struct jpeg_common_struct *cinfo, signed int pool_id, unsigned int samplesperrow, unsigned int numrows) alloc_sarray;
  signed short int (**(*)(struct jpeg_common_struct *cinfo, signed int pool_id, unsigned int blocksperrow, unsigned int numrows))[64l] alloc_barray;
  signed int ** (*)(struct jpeg_common_struct *cinfo, signed int pool_id, unsigned int diffsperrow, unsigned int numrows) alloc_darray;
  struct jvirt_sarray_control * (*)(struct jpeg_common_struct *cinfo, signed int pool_id, signed int pre_zero, unsigned int samplesperrow, unsigned int numrows, unsigned int maxaccess) request_virt_sarray;
  struct jvirt_barray_control * (*)(struct jpeg_common_struct *cinfo, signed int pool_id, signed int pre_zero, unsigned int blocksperrow, unsigned int numrows, unsigned int maxaccess) request_virt_barray;
  void (*)(struct jpeg_common_struct *cinfo) realize_virt_arrays;
  unsigned char ** (*)(struct jpeg_common_struct *cinfo, struct jvirt_sarray_control *ptr, unsigned int start_row, unsigned int num_rows, signed int writable) access_virt_sarray;
  signed short int (**(*)(struct jpeg_common_struct *cinfo, struct jvirt_barray_control *ptr, unsigned int start_row, unsigned int num_rows, signed int writable))[64l] access_virt_barray;
  void (*)(struct jpeg_common_struct *cinfo, signed int pool_id) free_pool;
  void (*)(struct jpeg_common_struct *cinfo) self_destruct;
  signed long int max_memory_to_use;
  signed long int max_alloc_chunk;
}
struct jpeg_memory_mgr {
  void * (*)(struct jpeg_common_struct *cinfo, signed int pool_id, unsigned long int sizeofobject) alloc_small;
  void * (*)(struct jpeg_common_struct *cinfo, signed int pool_id, unsigned long int sizeofobject) alloc_large;
  unsigned char ** (*)(struct jpeg_common_struct *cinfo, signed int pool_id, unsigned int samplesperrow, unsigned int numrows) alloc_sarray;
  signed short int (**(*)(struct jpeg_common_struct *cinfo, signed int pool_id, unsigned int blocksperrow, unsigned int numrows))[64l] alloc_barray;
  struct jvirt_sarray_control * (*)(struct jpeg_common_struct *cinfo, signed int pool_id, signed int pre_zero, unsigned int samplesperrow, unsigned int numrows, unsigned int maxaccess) request_virt_sarray;
  struct jvirt_barray_control * (*)(struct jpeg_common_struct *cinfo, signed int pool_id, signed int pre_zero, unsigned int blocksperrow, unsigned int numrows, unsigned int maxaccess) request_virt_barray;
  void (*)(struct jpeg_common_struct *cinfo) realize_virt_arrays;
  unsigned char ** (*)(struct jpeg_common_struct *cinfo, struct jvirt_sarray_control *ptr, unsigned int start_row, unsigned int num_rows, signed int writable) access_virt_sarray;
  signed short int (**(*)(struct jpeg_common_struct *cinfo, struct jvirt_barray_control *ptr, unsigned int start_row, unsigned int num_rows, signed int writable))[64l] access_virt_barray;
  void (*)(struct jpeg_common_struct *cinfo, signed int pool_id) free_pool;
  void (*)(struct jpeg_common_struct *cinfo) self_destruct;
  signed long int max_memory_to_use;
  signed long int max_alloc_chunk;
}
Utilities/itkjpeg/8/CMakeFiles/itkjpeg8.dir/build.make:1638: recipe for target 'bin/libitkjpeg8.so.3.20.1' failed
make[3]: *** [bin/libitkjpeg8.so.3.20.1] Error 64
make[3]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-insighttoolkit/insighttoolkit-3.20.1+git20120521/obj-x86_64-linux-gnu'
CMakeFiles/Makefile2:248: recipe for target 'Utilities/itkjpeg/8/CMakeFiles/itkjpeg8.dir/all' failed
make[2]: *** [Utilities/itkjpeg/8/CMakeFiles/itkjpeg8.dir/all] Error 2

Please see #748403, reported against dcmtk, for an analysis of the cause of the
problem. Hooray for embedded code copies.

Best,
Michael

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 859 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/debian-med-packaging/attachments/20140518/7bc397ff/attachment-0001.sig>


More information about the Debian-med-packaging mailing list