From cecd7e3e7988b06ff1f02d79a443d5e37f6ee698 Mon Sep 17 00:00:00 2001 From: Chris White Date: Thu, 30 Dec 2004 05:14:46 +0000 Subject: [PATCH] Added hardened+mmx patch by Allen Ibara as per bug #73342. --- media-libs/xine-lib/ChangeLog | 6 +- media-libs/xine-lib/Manifest | 11 ++- .../files/xine-lib-hardened-mmx.patch | 98 +++++++++++++++++++ media-libs/xine-lib/xine-lib-1.0.ebuild | 13 +-- 4 files changed, 112 insertions(+), 16 deletions(-) create mode 100644 media-libs/xine-lib/files/xine-lib-hardened-mmx.patch diff --git a/media-libs/xine-lib/ChangeLog b/media-libs/xine-lib/ChangeLog index 76ee5f18c1f7..771b4b30f800 100644 --- a/media-libs/xine-lib/ChangeLog +++ b/media-libs/xine-lib/ChangeLog @@ -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 + +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 xine-lib-1.0.ebuild: Added some stuff that will hopefully get this mmx/pic/hardened thing working. diff --git a/media-libs/xine-lib/Manifest b/media-libs/xine-lib/Manifest index 87e2a388042c..afdb3118c5b9 100644 --- a/media-libs/xine-lib/Manifest +++ b/media-libs/xine-lib/Manifest @@ -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 index 000000000000..3e23d583a9c2 --- /dev/null +++ b/media-libs/xine-lib/files/xine-lib-hardened-mmx.patch @@ -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" + ); + + /* diff --git a/media-libs/xine-lib/xine-lib-1.0.ebuild b/media-libs/xine-lib/xine-lib-1.0.ebuild index ed600dce963b..570a1a0e6e8e 100644 --- a/media-libs/xine-lib/xine-lib-1.0.ebuild +++ b/media-libs/xine-lib/xine-lib-1.0.ebuild @@ -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 -- 2.26.2