Bug#748986: Conflicting types as recode.c lacks #include <config.h>

Michael Tautschnig mt at debian.org
Thu May 22 20:44:54 UTC 2014


Package: libdv
Version: 1.0.0-6
Usertags: goto-cc
Tags: upstream

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.

[...]
/bin/bash ../libtool --silent  --tag=CC   --mode=link gcc  -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -g  -Wl,-z,relro -o recode recode.o libdv.la -lm 

error: conflicting function declarations "dv_format_wide"
old definition in module recode file ../libdv/dv.h line 123
signed int (struct dv_decoder_s *)
new definition in module dv file dv.c line 726
signed int (struct dv_decoder_s *dv)

reason for conflict in types listed below (struct/struct):
composite type component counts differ (25/26)
struct dv_decoder_s {
  unsigned int quality;
  int system;
  int std;
  int sampling;
  signed int num_dif_seqs;
  signed int height;
  signed int width;
  unsigned int $pad0;
  unsigned long int frame_size;
  dv_header_t header;
  dv_audio_t * audio;
  dv_video_t * video;
  signed int arg_video_system;
  signed int add_ntsc_setup;
  signed int clamp_luma;
  signed int clamp_chroma;
  signed int prev_frame_decoded;
  unsigned char vaux_next;
  unsigned char [256l] vaux_pack;
  unsigned char [45l][4l] vaux_data;
  unsigned char ssyb_next;
  unsigned char [256l] ssyb_pack;
  unsigned char [45l][4l] ssyb_data;
  unsigned short int $pad1;
  struct bitstream_s * bs;
}
struct dv_decoder_s {
  unsigned int quality;
  int system;
  int std;
  int sampling;
  signed int num_dif_seqs;
  signed int height;
  signed int width;
  unsigned int $pad0;
  unsigned long int frame_size;
  dv_header_t header;
  dv_audio_t * audio;
  dv_video_t * video;
  signed int arg_video_system;
  signed int add_ntsc_setup;
  signed int clamp_luma;
  signed int clamp_chroma;
  signed int prev_frame_decoded;
  unsigned char vaux_next;
  unsigned char [256l] vaux_pack;
  unsigned char [45l][4l] vaux_data;
  unsigned char ssyb_next;
  unsigned char [256l] ssyb_pack;
  unsigned char [45l][4l] ssyb_data;
  unsigned short int $pad1;
  struct bitstream_s * bs;
  struct poptOption [6l] option_table;
}
Makefile:547: recipe for target 'recode' failed
make[4]: *** [recode] Error 64
make[4]: Leaving directory '/srv/jenkins-slave/workspace/sid-goto-cc-libdv/libdv-1.0.0/libdv'
Makefile:452: recipe for target 'all' failed

This type conflict is caused by HAVE_LIBPOPT not being uniformly defined, which
in turn is due to a missing #include <config.h> in recode.c (likely just an
oversight).

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/pkg-multimedia-maintainers/attachments/20140522/e00547c5/attachment.sig>


More information about the pkg-multimedia-maintainers mailing list