summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChi-Thanh Christopher Nguyen <chithanh@gentoo.org>2015-01-06 19:04:52 +0100
committerChi-Thanh Christopher Nguyen <chithanh@gentoo.org>2015-01-06 19:04:52 +0100
commit43090b8b8196f06d1205776a4831dc83dc1e6282 (patch)
tree4992d6676d415c285cc0cad9531058e60fca8986
parentx11-drivers/ati-drivers: misc fixes (diff)
downloadx11-43090b8b8196f06d1205776a4831dc83dc1e6282.tar.gz
x11-43090b8b8196f06d1205776a4831dc83dc1e6282.tar.bz2
x11-43090b8b8196f06d1205776a4831dc83dc1e6282.zip
x11-base/xorg-server: make ia64 patch apply again
https://bugs.gentoo.org/show_bug.cgi?id=523436
-rw-r--r--x11-base/xorg-server/files/xorg-server-1.17-ia64-fix_inx_outx.patch59
-rw-r--r--x11-base/xorg-server/xorg-server-9999.ebuild1
2 files changed, 60 insertions, 0 deletions
diff --git a/x11-base/xorg-server/files/xorg-server-1.17-ia64-fix_inx_outx.patch b/x11-base/xorg-server/files/xorg-server-1.17-ia64-fix_inx_outx.patch
new file mode 100644
index 00000000..84485c98
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-1.17-ia64-fix_inx_outx.patch
@@ -0,0 +1,59 @@
+diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
+index 1653574..fe881ee 100644
+--- a/hw/xfree86/common/compiler.h
++++ b/hw/xfree86/common/compiler.h
+@@ -286,6 +286,54 @@ extern _X_EXPORT unsigned int inl(unsigned int port);
+ #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(__amd64__)
+
+ #include <inttypes.h>
diff --git a/x11-base/xorg-server/xorg-server-9999.ebuild b/x11-base/xorg-server/xorg-server-9999.ebuild
index ec31957e..25e94ef0 100644
--- a/x11-base/xorg-server/xorg-server-9999.ebuild
+++ b/x11-base/xorg-server/xorg-server-9999.ebuild
@@ -131,6 +131,7 @@ REQUIRED_USE="!minimal? (
PATCHES=(
"${UPSTREAMED_PATCHES[@]}"
+ "${FILESDIR}"/${PN}-1.17-ia64-fix_inx_outx.patch
"${FILESDIR}"/${PN}-1.12-unloadsubmodule.patch
)