Bug#751629: xserver-xorg-video-vmware: Conflicting declarations of function MakeAtom to cause undefined behaviour
On 2024-08-04 07:32, Petter Reinholdtsen wrote:
> [Michael Tautschnig 2014-06-14]
>> The actual cause of the problem remains to be determined as both declarations
>> stem from the same source, yet expand in different ways.
>
> I tried to make sense of this, but failed. This is the declaration in
> the current edition of /usr/include/xorg/dix.h:
>
> extern _X_EXPORT Atom MakeAtom(const char * /*string */ ,
> unsigned /*len */ ,
> Bool /*makeit */ );
>
> I fail to figure out how the Atom type can become unsigned int in one
> incarnation and unsigned long int in another. Perhaps the problem
> went away the last ten years?
The definition of Atom depends on _XSERVER64, which is defined by xorg-server.h or dix-config.h. The driver must include one of those headers before the header which defines Atom to ensure it gets the correct definition.
--
Earthling Michel Dänzer | https://redhat.com
Libre software enthusiast | Mesa and Xwayland developer
Reply to: