diff -r --context xorg-server-1.12.3/hw/xfree86/common/compiler.h xorg-server-1.12.3-fix/hw/xfree86/common/compiler.h
*** xorg-server-1.12.3/hw/xfree86/common/compiler.h	2012-07-06 07:17:19.000000000 +0200
--- xorg-server-1.12.3-fix/hw/xfree86/common/compiler.h	2012-08-29 00:14:39.000000000 +0200
***************
*** 421,426 ****
--- 421,474 ----
  #include <machine/pio.h>
  #endif                          /* __NetBSD__ */
  
+ #elif defined(linux) && defined(__ia64__)
+ /* for Linux on ia64, we use the LIBC _inx/_outx routines */
+ /* note that the appropriate setup via "ioperm" needs to be done */
+ /*  *before* any inx/outx is done. */
+ 
+ extern _X_EXPORT void _outb(unsigned char val, unsigned long port);
+ extern _X_EXPORT void _outw(unsigned short val, unsigned long port);
+ extern _X_EXPORT void _outl(unsigned int val, unsigned long port);
+ extern _X_EXPORT unsigned int _inb(unsigned long port);
+ extern _X_EXPORT unsigned int _inw(unsigned long port);
+ extern _X_EXPORT unsigned int _inl(unsigned long port);
+ 
+ static __inline__ void
+ outb(unsigned long port, unsigned char val)
+ {
+     _outb(val, port);
+ }
+ 
+ static __inline__ void
+ outw(unsigned long port, unsigned short val)
+ {
+     _outw(val, port);
+ }
+ 
+ static __inline__ void
+ outl(unsigned long port, unsigned int val)
+ {
+     _outl(val, port);
+ }
+ 
+ static __inline__ unsigned int
+ inb(unsigned long port)
+ {
+     return _inb(port);
+ }
+ 
+ static __inline__ unsigned int
+ inw(unsigned long port)
+ {
+     return _inw(port);
+ }
+ 
+ static __inline__ unsigned int
+ inl(unsigned long port)
+ {
+     return _inl(port);
+ }
+ 
  #elif (defined(linux) || defined(__FreeBSD__)) && defined(__amd64__)
  
  #include <inttypes.h>
