aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaksim 'max_posedon' Melnikau <maxposedon@gmail.com>2009-12-26 03:33:01 +0000
committerMaksim 'max_posedon' Melnikau <maxposedon@gmail.com>2009-12-26 03:33:01 +0000
commit32dfff4c44956e8eb0b6e11aa8072f4ed322fbca (patch)
treeb5c513f291c3d358fa76553b07017f15e0d8466b /x11-libs
parentA much improved version to find all possible breakages in pkgconfig files. Gi... (diff)
downloadembedded-cross-32dfff4c44956e8eb0b6e11aa8072f4ed322fbca.tar.gz
embedded-cross-32dfff4c44956e8eb0b6e11aa8072f4ed322fbca.tar.bz2
embedded-cross-32dfff4c44956e8eb0b6e11aa8072f4ed322fbca.zip
fix pixman compilation on armv4tl/armv5tel: https://bugs.gentoo.org/show_bug.cgi?id=298391
Diffstat (limited to 'x11-libs')
-rw-r--r--x11-libs/pixman/Manifest4
-rw-r--r--x11-libs/pixman/files/fix-neon-simd-checks.patch46
-rw-r--r--x11-libs/pixman/files/pixman-0.12.0-sse.patch14
-rw-r--r--x11-libs/pixman/pixman-0.17.2.ebuild53
4 files changed, 117 insertions, 0 deletions
diff --git a/x11-libs/pixman/Manifest b/x11-libs/pixman/Manifest
new file mode 100644
index 0000000..9c2106f
--- /dev/null
+++ b/x11-libs/pixman/Manifest
@@ -0,0 +1,4 @@
+AUX fix-neon-simd-checks.patch 1286 RMD160 b4086c31d68cc3496f0abcc78467f9eec0429566 SHA1 183c07ca5f6f0dee784c3d77771221af53eeb92d SHA256 ad932f4b067636d097da1241bc583ff80501f38b8f9ff8264b567f501352e5e8
+AUX pixman-0.12.0-sse.patch 536 RMD160 2eac636c530c1911765111766bb121b075d6b3dc SHA1 5a51a7f339faf1fd33b803442f27cca09e9eceb0 SHA256 2708f2fb856c706af9ae89570508afc1e72c05348d989ed813a3e2cc85582cf1
+DIST pixman-0.17.2.tar.bz2 399934 RMD160 56d9ef3c80af6fd91f247314cb9bb9d8bb8a65f0 SHA1 da17421f46b323af25906bb906cccd62f34799f6 SHA256 4adcf2f85de51ca02610c12d8ae335b4913f3c7962238713f0c9491e2830a998
+EBUILD pixman-0.17.2.ebuild 1624 RMD160 7905d1802734d3e4f8b614050a87da9032a01d27 SHA1 9707038a6ec67a5cc386c6b5f055b95598770796 SHA256 8170e81ee0094400e2c5b57e34483dc7a572829642c2a9da174371e5c26e145f
diff --git a/x11-libs/pixman/files/fix-neon-simd-checks.patch b/x11-libs/pixman/files/fix-neon-simd-checks.patch
new file mode 100644
index 0000000..a34622a
--- /dev/null
+++ b/x11-libs/pixman/files/fix-neon-simd-checks.patch
@@ -0,0 +1,46 @@
+--- configure.ac.old 2009-12-26 03:03:27.116068708 +0000
++++ configure.ac 2009-12-26 03:06:42.876068440 +0000
+@@ -363,18 +363,13 @@
+
+ dnl ===========================================================================
+ dnl Check for ARM SIMD instructions
+-ARM_SIMD_CFLAGS="-mcpu=arm1136j-s"
+-
+ have_arm_simd=no
+ AC_MSG_CHECKING(whether to use ARM SIMD assembler)
+-xserver_save_CFLAGS=$CFLAGS
+-CFLAGS="$ARM_SIMD_CFLAGS $CFLAGS"
+ AC_COMPILE_IFELSE([
+ int main () {
+ asm("uqadd8 r1, r1, r2");
+ return 0;
+ }], have_arm_simd=yes)
+-CFLAGS=$xserver_save_CFLAGS
+
+ AC_ARG_ENABLE(arm-simd,
+ [AC_HELP_STRING([--disable-arm-simd],
+@@ -404,18 +399,15 @@
+ dnl Check if assembler is gas compatible and supports NEON instructions
+ have_arm_neon=no
+ AC_MSG_CHECKING(whether to use ARM NEON assembler)
+-xserver_save_CFLAGS=$CFLAGS
+-CFLAGS="-x assembler-with-cpp"
+-AC_COMPILE_IFELSE([[
+-.text
+-.fpu neon
+-.altmacro
++AC_COMPILE_IFELSE([
+ #ifndef __ARM_EABI__
+ #error EABI is required (to be sure that calling conventions are compatible)
+ #endif
+-pld [r0]
+-vmovn.u16 d0, q0]], have_arm_neon=yes)
+-CFLAGS=$xserver_save_CFLAGS
++int main () {
++ asm("pld r0");
++ asm("vmovn.u16 d0, q0");
++ return 0;
++}], have_arm_neon=yes)
+
+ AC_ARG_ENABLE(arm-neon,
+ [AC_HELP_STRING([--disable-arm-neon],
diff --git a/x11-libs/pixman/files/pixman-0.12.0-sse.patch b/x11-libs/pixman/files/pixman-0.12.0-sse.patch
new file mode 100644
index 0000000..1f6ee92
--- /dev/null
+++ b/x11-libs/pixman/files/pixman-0.12.0-sse.patch
@@ -0,0 +1,14 @@
+--- configure.ac.orig 2008-09-25 20:34:22.000000000 -0700
++++ configure.ac 2008-09-25 20:43:57.000000000 -0700
+@@ -191,10 +191,8 @@
+ CFLAGS="$CFLAGS -msse2 $SSE2_CFLAGS"
+
+ AC_COMPILE_IFELSE([
+-#if defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 2))
+-# if !defined(__amd64__) && !defined(__x86_64__)
++#if !defined(__GNUC__) && !(__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 2))
+ # error "Need GCC >= 4.2 for SSE2 intrinsics on x86"
+-# endif
+ #endif
+ #include <mmintrin.h>
+ #include <xmmintrin.h>
diff --git a/x11-libs/pixman/pixman-0.17.2.ebuild b/x11-libs/pixman/pixman-0.17.2.ebuild
new file mode 100644
index 0000000..87a85ad
--- /dev/null
+++ b/x11-libs/pixman/pixman-0.17.2.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/pixman/pixman-0.17.2.ebuild,v 1.4 2009/12/15 19:42:43 ranger Exp $
+
+# Must be before x-modular eclass is inherited
+#SNAPSHOT="yes"
+
+inherit x-modular toolchain-funcs versionator
+
+EGIT_REPO_URI="git://anongit.freedesktop.org/git/pixman"
+DESCRIPTION="Low-level pixel manipulation routines"
+
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~mips ~ppc ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd"
+IUSE="altivec mmx sse2"
+
+EAPI="2"
+
+pkg_setup() {
+ CONFIGURE_OPTIONS="
+ $(use_enable altivec vmx)
+ --disable-gtk"
+
+ local enable_mmx="$(use mmx && echo 1 || echo 0)"
+ local enable_sse2="$(use sse2 && echo 1 || echo 0)"
+
+ # this block fixes bug #260287
+ if use x86; then
+ if use sse2 && ! $(version_is_at_least "4.2" "$(gcc-version)"); then
+ ewarn "SSE2 instructions require GCC 4.2 or higher."
+ ewarn "pixman will be built *without* SSE2 support"
+ enable_sse2="0"
+ fi
+ fi
+
+ # this block fixes bug #236558
+ case "$enable_mmx,$enable_sse2" in
+ '1,1')
+ CONFIGURE_OPTIONS="${CONFIGURE_OPTIONS} --enable-mmx --enable-sse2" ;;
+ '1,0')
+ CONFIGURE_OPTIONS="${CONFIGURE_OPTIONS} --enable-mmx --disable-sse2" ;;
+ '0,1')
+ ewarn "You enabled SSE2 but have MMX disabled. This is an invalid."
+ ewarn "pixman will be built *without* MMX/SSE2 support."
+ CONFIGURE_OPTIONS="${CONFIGURE_OPTIONS} --disable-mmx --disable-sse2" ;;
+ '0,0')
+ CONFIGURE_OPTIONS="${CONFIGURE_OPTIONS} --disable-mmx --disable-sse2" ;;
+ esac
+}
+
+src_prepare() {
+ epatch "$FILESDIR/fix-neon-simd-checks.patch"
+ eautoreconf
+}