summaryrefslogtreecommitdiff
path: root/extra/libxi
diff options
context:
space:
mode:
Diffstat (limited to 'extra/libxi')
-rw-r--r--extra/libxi/PKGBUILD9
-rw-r--r--extra/libxi/XExtInt-align-classes-n32.diff31
2 files changed, 37 insertions, 3 deletions
diff --git a/extra/libxi/PKGBUILD b/extra/libxi/PKGBUILD
index b195dfce8..d500fb58a 100644
--- a/extra/libxi/PKGBUILD
+++ b/extra/libxi/PKGBUILD
@@ -5,17 +5,20 @@ pkgname=libxi
pkgver=1.4.5
pkgrel=1
pkgdesc="X11 Input extension library"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://xorg.freedesktop.org"
depends=('libxext' 'inputproto')
makedepends=('pkgconfig' 'xorg-util-macros')
options=(!libtool)
license=('custom')
-source=(${url}/releases/individual/lib/libXi-${pkgver}.tar.bz2)
-sha1sums=('8ac24dec8e488f49fd6a6b256c815da9ceec9737')
+source=(${url}/releases/individual/lib/libXi-${pkgver}.tar.bz2
+ XExtInt-align-classes-n32.diff)
+sha1sums=('8ac24dec8e488f49fd6a6b256c815da9ceec9737'
+ '30931831efa9a7f8a888f41bb9284fa32f2e2392')
build() {
cd "${srcdir}/libXi-${pkgver}"
+ patch -Nup0 < "${srcdir}/XExtInt-align-classes-n32.diff"
./configure --prefix=/usr --sysconfdir=/etc --disable-static
make
}
diff --git a/extra/libxi/XExtInt-align-classes-n32.diff b/extra/libxi/XExtInt-align-classes-n32.diff
new file mode 100644
index 000000000..dc5cc4db3
--- /dev/null
+++ b/extra/libxi/XExtInt-align-classes-n32.diff
@@ -0,0 +1,31 @@
+--- src/XExtInt.c.orig 2011-06-14 20:46:50.254164713 +0200
++++ src/XExtInt.c 2011-06-14 22:08:38.173047738 +0200
+@@ -1419,6 +1419,13 @@
+ for (i = 0; i < nclasses; i++)
+ {
+ int l = 0;
++#ifdef _ABIN32
++ /* On MIPS n32 doubles must be 8 byte aligned, but longs take
++ 4 bytes, so next_block could make this structure
++ unaligned. */
++ if(len % 8 != 0)
++ len += 8 - len % 8;
++#endif
+ any_wire = (xXIAnyInfo*)ptr_wire;
+ switch(any_wire->type)
+ {
+@@ -1467,6 +1474,14 @@
+
+ for (i = 0; i < nclasses; i++)
+ {
++#ifdef _ABIN32
++ /* On MIPS n32 doubles must be 8 byte aligned, but longs take
++ 4 bytes, so next_block could make this structure
++ unaligned. */
++ if(((size_t) ptr_lib) % 8 != 0)
++ ptr_lib += 8 - ((size_t) ptr_lib) % 8;
++#endif
++
+ any_lib = (XIAnyClassInfo*)ptr_lib;
+ any_wire = (xXIAnyInfo*)ptr_wire;
+