diff options
Diffstat (limited to 'extra/libxi')
-rw-r--r-- | extra/libxi/PKGBUILD | 9 | ||||
-rw-r--r-- | extra/libxi/XExtInt-align-classes-n32.diff | 31 |
2 files changed, 37 insertions, 3 deletions
diff --git a/extra/libxi/PKGBUILD b/extra/libxi/PKGBUILD index 26c64dbc0..8c5197122 100644 --- a/extra/libxi/PKGBUILD +++ b/extra/libxi/PKGBUILD @@ -5,17 +5,20 @@ pkgname=libxi pkgver=1.4.3 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=('c66cfdee74e8d169a7992b5f257395e653ca761b') +source=(${url}/releases/individual/lib/libXi-${pkgver}.tar.bz2 + XExtInt-align-classes-n32.diff) +sha1sums=('c66cfdee74e8d169a7992b5f257395e653ca761b' + '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; + |