[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#751629: xserver-xorg-video-vmware: Conflicting declarations of function MakeAtom to cause undefined behaviour



Package: xserver-xorg-video-vmware
Version: 1:13.0.2-3
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 -std=gnu99 -shared  -fPIC -DPIC  .libs/vmware_drv_la-bits2pixels.o .libs/vmware_drv_la-vmware.o .libs/vmware_drv_la-vmwarecurs.o .libs/vmware_drv_la-vmwarectrl.o .libs/vmware_drv_la-vmwarexinerama.o .libs/vmware_drv_la-vmwarevideo.o .libs/vmware_drv_la-vmwaremodes.o .libs/vmware_drv_la-vmware_bootstrap.o .libs/vmware_drv_la-vmware_common.o  -Wl,--whole-archive ../vmwgfx/.libs/libvmwgfx.a -Wl,--no-whole-archive  -ldrm -lxatracker  -O2   -Wl,-soname -Wl,vmware_drv.so -o .libs/vmware_drv.so

error: conflicting function declarations "MakeAtom"
old definition in module vmwarevideo file /usr/include/xorg/dix.h line 268
unsigned int (const char *, unsigned int, signed int)
new definition in module vmwgfx_overlay file /usr/include/xorg/dix.h line 268
unsigned long int (const char *, unsigned int, signed int)
Makefile:476: recipe for target 'vmware_drv.la' failed
make[3]: *** [vmware_drv.la] Error 64

For any platform with sizeof(unsigned int)<sizeof(unsigned long int) the
behaviour is undefined as either several bytes remain undefined (if the true
return type is unsigned int) or several bytes will be missing (if the true
return type is unsigned long int). Also, endianness will add further trouble.

The actual cause of the problem remains to be determined as both declarations
stem from the same source, yet expand in different ways.

Best,
Michael

Attachment: pgp0GdjXXHc5j.pgp
Description: PGP signature


Reply to: