[PATCH 1/2] xfree86: Fix type of IOPortBase to be a pointer

Mark Kettenis mark.kettenis at xs4all.nl
Sun Oct 16 03:49:10 PDT 2011

> This addresses issues on 64bit systems where the IOPortBase is higher in
> memory space.

> -_X_EXPORT unsigned int IOPortBase;  /* Memory mapped I/O port area */
> +_X_EXPORT pointer IOPortBase;  /* Memory mapped I/O port area */

Sorry, but you can't do it that way, at least not without making
further changes to compiler.h.  There's stuff in there that does
arithmetic using IOPortBase and pointer arithmetic on a void pointer
isn't properly defined.

Perhaps it's best to change IOPortBase to be an "unsigned long".  That
should be good enough for all ILP32 and LP64 plaforms, and it would be
ABI compatible on all ILP32 platforms.

More information about the xorg-devel mailing list