from alpinelinux --- xorg-server-1.18.0.orig/hw/xfree86/common/compiler.h 2015-10-28 19:15:36.000000000 +0100 +++ xorg-server-1.18.0/hw/xfree86/common/compiler.h 2016-01-08 01:41:49.582326445 +0100 @@ -525,26 +525,26 @@ xf86WriteMmio32Le(__volatile__ void *bas #define PORT_SIZE short #endif -_X_EXPORT unsigned int IOPortBase; /* Memory mapped I/O port area */ +_X_EXPORT volatile unsigned char *ioBase; /* Memory mapped I/O port area */ static __inline__ void outb(unsigned PORT_SIZE port, unsigned char val) { - *(volatile unsigned char *) (((unsigned PORT_SIZE) (port)) + IOPortBase) = + *(volatile unsigned char *) (((unsigned PORT_SIZE) (port)) + ioBase) = val; } static __inline__ void outw(unsigned PORT_SIZE port, unsigned short val) { - *(volatile unsigned short *) (((unsigned PORT_SIZE) (port)) + IOPortBase) = + *(volatile unsigned short *) (((unsigned PORT_SIZE) (port)) + ioBase) = val; } static __inline__ void outl(unsigned PORT_SIZE port, unsigned int val) { - *(volatile unsigned int *) (((unsigned PORT_SIZE) (port)) + IOPortBase) = + *(volatile unsigned int *) (((unsigned PORT_SIZE) (port)) + ioBase) = val; } @@ -552,21 +552,21 @@ static __inline__ unsigned int inb(unsigned PORT_SIZE port) { return *(volatile unsigned char *) (((unsigned PORT_SIZE) (port)) + - IOPortBase); + ioBase); } static __inline__ unsigned int inw(unsigned PORT_SIZE port) { return *(volatile unsigned short *) (((unsigned PORT_SIZE) (port)) + - IOPortBase); + ioBase); } static __inline__ unsigned int inl(unsigned PORT_SIZE port) { return *(volatile unsigned int *) (((unsigned PORT_SIZE) (port)) + - IOPortBase); + ioBase); } #if defined(__mips__) @@ -758,7 +758,7 @@ inl(unsigned short port) return xf86ReadMmio32Le((void *) ioBase, port); } -#elif defined(__arm__) && defined(__linux__) +#elif defined(__arm__) && defined(__GLIBC__) /* for Linux on ARM, we use the LIBC inx/outx routines */ /* note that the appropriate setup via "ioperm" needs to be done */