Added hardened+mmx patch by Allen Ibara as per bug #73342.
authorChris White <chriswhite@gentoo.org>
Thu, 30 Dec 2004 05:14:46 +0000 (05:14 +0000)
committerChris White <chriswhite@gentoo.org>
Thu, 30 Dec 2004 05:14:46 +0000 (05:14 +0000)
media-libs/xine-lib/ChangeLog
media-libs/xine-lib/Manifest
media-libs/xine-lib/files/xine-lib-hardened-mmx.patch [new file with mode: 0644]
media-libs/xine-lib/xine-lib-1.0.ebuild

index 76ee5f18c1f7754be56b1a290293ec9a698ce543..771b4b30f8002c09a6f8880a78cdd549c9be4925 100644 (file)
@@ -1,6 +1,10 @@
 # ChangeLog for media-libs/xine-lib
 # Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/xine-lib/ChangeLog,v 1.175 2004/12/29 20:06:45 chriswhite Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/xine-lib/ChangeLog,v 1.176 2004/12/30 05:14:46 chriswhite Exp $
+
+  30 Dec 2004; Chris White <chriswhite@gentoo.org>
+  +files/xine-lib-hardened-mmx.patch, xine-lib-1.0.ebuild:
+  Added hardened+mmx patch by Allen Ibara as per bug #73342.
 
   30 Dec 2004; Chris White <chriswhite@gentoo.org> xine-lib-1.0.ebuild:
   Added some stuff that will hopefully get this mmx/pic/hardened thing working.
index 87e2a388042c89b796650df60bcaa096a407d915..afdb3118c5b9fe8cef9a79ad88f5c11ab5f3e689 100644 (file)
@@ -1,9 +1,9 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-MD5 c672dfc420a1ca7841d8b093cd96f70f ChangeLog 29580
+MD5 b7f30849616b72b073e0710212981990 ChangeLog 29752
 MD5 af08cabbae4b191018ca153392a86bea metadata.xml 304
-MD5 d081077906922a06461f52cb79c2270a xine-lib-1.0.ebuild 8354
+MD5 46252da24f39347fd51b88845b79f06c xine-lib-1.0.ebuild 8161
 MD5 b25152bddc933afdf390149b07f2ff43 xine-lib-1_rc5-r3.ebuild 5473
 MD5 a53b6f55661ef41e343932ceb7108cc3 xine-lib-1_rc6.ebuild 5358
 MD5 d2d62f59048715eaf85d88a90842729d xine-lib-1_rc7.ebuild 5327
@@ -43,10 +43,11 @@ MD5 aa54582a91933533008c1211dcbcfb35 files/xine-lib-disable-directfb.patch 4169
 MD5 3cbdef8aa211184b96474addb4f7c5d6 files/xine-lib-gcc34.patch 423
 MD5 5d2c3c00bf3ae9a89dfcaa8b5c5b17a2 files/xine-lib-x11.patch 703
 MD5 dcb0c79c0bb106397aad42f6d936627d files/xineconfig.patch-0.9.13 601
+MD5 ddf48f1eb00a6985b6fba5fff9386ad0 files/xine-lib-hardened-mmx.patch 2558
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.2.6 (GNU/Linux)
 
-iD8DBQFB0w2oFdQwWVoAgN4RAlgIAJ0UawKqD/AxUnnn0CwiVkv5ugAWYQCg3llu
-vye/6MCwATeWrJCvFjHuiKU=
-=FgRm
+iD8DBQFB047kFdQwWVoAgN4RAkMeAKC0ouummI2LDJifqEY9gWC60uODdQCgkJlu
+MeYbvY+YNA3XcQnMFmzdzIM=
+=ZnOO
 -----END PGP SIGNATURE-----
diff --git a/media-libs/xine-lib/files/xine-lib-hardened-mmx.patch b/media-libs/xine-lib/files/xine-lib-hardened-mmx.patch
new file mode 100644 (file)
index 0000000..3e23d58
--- /dev/null
@@ -0,0 +1,98 @@
+diff -ur xine-lib-1.0.orig/src/post/goom/mmx.h xine-lib-1.0/src/post/goom/mmx.h
+--- xine-lib-1.0.orig/src/post/goom/mmx.h      2004-08-19 03:39:03.000000000 -0700
++++ xine-lib-1.0/src/post/goom/mmx.h   2004-12-29 11:49:35.857981505 -0800
+@@ -72,6 +72,9 @@
+       register int rval = 0;
+ 
+       __asm__ __volatile__ (
++              /* CPUID clobbers ebx, but gcc needs it for PIC so
++               * it needs to be saved */
++              "pushl %%ebx\n\t"
+               /* See if CPUID instruction is supported ... */
+               /* ... Get copies of EFLAGS into eax and ecx */
+               "pushf\n\t"
+@@ -214,9 +217,10 @@
+               "movl $0, %0\n\n\t"
+ 
+               "Return:\n\t"
++              "popl %%ebx\n\t"
+               : "=X" (rval)
+               : /* no input */
+-              : "eax", "ebx", "ecx", "edx"
++              : "eax", "ecx", "edx"
+       );
+ 
+       /* Return */
+diff -ur xine-lib-1.0.orig/src/post/goom/xmmx.c xine-lib-1.0/src/post/goom/xmmx.c
+--- xine-lib-1.0.orig/src/post/goom/xmmx.c     2004-08-19 03:39:03.000000000 -0700
++++ xine-lib-1.0/src/post/goom/xmmx.c  2004-12-29 11:50:36.720037932 -0800
+@@ -112,23 +112,23 @@
+                * post : mm3 & mm4 : coefs for this position
+                *              mm1 : X vector [0|X]
+                *
+-               * modif : eax,ebx
++               * modif : eax,edx
+                */
+               __asm__ __volatile__ (
+-                      "movd %%mm0,%%ebx\n"
++                      "movd %%mm0,%%edx\n"
+                       "movq %%mm0,%%mm1\n"
+ 
+-                      "andl $15,%%ebx\n"
++                      "andl $15,%%edx\n"
+                       "psrlq $32,%%mm1\n"
+ 
+-                      "shll $6,%%ebx\n"
++                      "shll $6,%%edx\n"
+                       "movd %%mm1,%%eax\n"
+ 
+-                      "addl %0,%%ebx\n"
++                      "addl %0,%%edx\n"
+                       "andl $15,%%eax\n"
+ 
+-                      "movd (%%ebx,%%eax,4),%%mm3\n"
+-                      ::"g"(precalCoef):"eax","ebx");
++                      "movd (%%edx,%%eax,4),%%mm3\n"
++                      ::"g"(precalCoef):"eax","edx");
+ 
+               /*
+                * extraction des coefficients...
+@@ -158,7 +158,7 @@
+                * post : mm0 : expix1[position]
+                *        mm2 : expix1[position+largeur]
+                *
+-               * modif : eax,ebx
++               * modif : eax,edx
+                */
+               psrld_i2r (PERTEDEC,mm0);
+               psrld_i2r (PERTEDEC,mm1);
+@@ -167,23 +167,23 @@
+                       /*^*/ "movq %%mm3,%%mm5\n"       /*^*/
+ 
+                       "mull %1\n"
+-                      "movd %%mm0,%%ebx\n"
++                      "movd %%mm0,%%edx\n"
+                       /*^*/ "punpcklbw %%mm5, %%mm3\n" /*^*/
+ 
+-                      "addl %%ebx,%%eax\n"
++                      "addl %%edx,%%eax\n"
+                       /*^*/ "movq %%mm3,%%mm4\n"       /*^*/
+                       /*^*/ "movq %%mm3,%%mm5\n"       /*^*/
+ 
+-                      "movl %0,%%ebx\n"
++                      "movl %0,%%edx\n"
+                       /*^*/ "punpcklbw %%mm5,%%mm3\n"  /*^*/
+ 
+-                      "movq (%%ebx,%%eax,4),%%mm0\n"
++                      "movq (%%edx,%%eax,4),%%mm0\n"
+                       /*^*/ "punpckhbw %%mm5,%%mm4\n"  /*^*/
+ 
+                       "addl %1,%%eax\n"
+-                      "movq (%%ebx,%%eax,4),%%mm2\n"
++                      "movq (%%edx,%%eax,4),%%mm2\n"
+ 
+-                      : : "X"(expix1), "X"(prevX):"eax","ebx"
++                      : : "X"(expix1), "X"(prevX):"eax","edx"
+               );
+ 
+               /*
index ed600dce963ba1574165a60f7a4ec6d61bda921d..570a1a0e6e8e6a0ab82ed0f2fed8a167eb5faff4 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2004 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/xine-lib/xine-lib-1.0.ebuild,v 1.5 2004/12/29 20:06:45 chriswhite Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/xine-lib/xine-lib-1.0.ebuild,v 1.6 2004/12/30 05:14:46 chriswhite Exp $
 
 inherit eutils flag-o-matic gcc libtool
 
@@ -17,7 +17,7 @@ SLOT="1"
 KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
 IUSE="arts esd avi nls dvd aalib X directfb oggvorbis alsa gnome sdl speex
        theora ipv6 altivec opengl aac fb xv xvmc nvidia i8x0 libcaca
-       samba dxr3 vidix png mng pic mmx"
+       samba dxr3 vidix png mng pic"
 
 RDEPEND="oggvorbis? ( media-libs/libvorbis )
        !amd64? ( X? ( virtual/x11 ) )
@@ -77,14 +77,7 @@ src_unpack() {
        #use amd64 && epatch ${FILESDIR}/configure-64bit-define.patch
 
        use pic && epatch ${FILESDIR}/${PN}-1_rc7-pic.patch
-       if use pic && use !mmx
-       then
-               # mmx doesn't play nice with hardened gcc
-               # but only on x86 works for some.. works
-               # for others, so I'm going to do this
-               # with a flag to make things easier...
-               epatch ${FILESDIR}/${PN}-1_rc7-mmx.patch
-       fi
+       use x86 && epatch ${FILESDIR}/${PN}-hardened-mmx.patch
 
        # Fix detection of hppa2.0 and hppa1.1 CHOST
        use hppa && sed -e 's/hppa-/hppa*-linux-/' -i ${S}/configure