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

Michael Tautschnig mt at debian.org
Thu May 29 19:23:21 UTC 2014


Package: gdcm
Version: 2.4.2-1
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.

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

error: conflicting function declarations "gdcmjpeg16_jpeg_destroy"
old definition in module jcomapi file /srv/jenkins-slave/workspace/sid-goto-cc-gdcm/gdcm-2.4.2/Utilities/gdcmjpeg/jcomapi.c line 69
void (struct jpeg_common_struct *cinfo)
new definition in module jerror file /srv/jenkins-slave/workspace/sid-goto-cc-gdcm/gdcm-2.4.2/Utilities/gdcmjpeg/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 short int ** (*)(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 short int ** (*)(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 short int ** (*)(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 short int ** (*)(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/gdcmjpeg/16/CMakeFiles/gdcmjpeg16.dir/build.make:1588: recipe for target 'bin/libgdcmjpeg16.so.2.4.2' failed
make[3]: *** [bin/libgdcmjpeg16.so.2.4.2] Error 64
make[3]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-gdcm/gdcm-2.4.2/obj-x86_64-linux-gnu'
CMakeFiles/Makefile2:1220: recipe for target 'Utilities/gdcmjpeg/16/CMakeFiles/gdcmjpeg16.dir/all' failed
make[2]: *** [Utilities/gdcmjpeg/16/CMakeFiles/gdcmjpeg16.dir/all] Error 2
make[2]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-gdcm/gdcm-2.4.2/obj-x86_64-linux-gnu'
Makefile:136: recipe for target 'all' failed
make[1]: *** [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/20140529/6ce000b3/attachment.sig>


More information about the Debian-med-packaging mailing list