diff options
author | Maksim 'max_posedon' Melnikau <maxposedon@gmail.com> | 2009-12-26 03:33:01 +0000 |
---|---|---|
committer | Maksim 'max_posedon' Melnikau <maxposedon@gmail.com> | 2009-12-26 03:33:01 +0000 |
commit | 32dfff4c44956e8eb0b6e11aa8072f4ed322fbca (patch) | |
tree | b5c513f291c3d358fa76553b07017f15e0d8466b /x11-libs | |
parent | A much improved version to find all possible breakages in pkgconfig files. Gi... (diff) | |
download | embedded-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/Manifest | 4 | ||||
-rw-r--r-- | x11-libs/pixman/files/fix-neon-simd-checks.patch | 46 | ||||
-rw-r--r-- | x11-libs/pixman/files/pixman-0.12.0-sse.patch | 14 | ||||
-rw-r--r-- | x11-libs/pixman/pixman-0.17.2.ebuild | 53 |
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 +} |