diff options
author | Timothy Redaelli <drizzt@gentoo.org> | 2007-07-22 22:20:21 +0000 |
---|---|---|
committer | Timothy Redaelli <drizzt@gentoo.org> | 2007-07-22 22:20:21 +0000 |
commit | f2363703b076eaca7a8b0bfc27dde20ab4572d8e (patch) | |
tree | c225a92986e5bdf8214cc3faf98fb74f6cad031b /games-emulation | |
parent | version bump (diff) | |
download | gentoo-2-f2363703b076eaca7a8b0bfc27dde20ab4572d8e.tar.gz gentoo-2-f2363703b076eaca7a8b0bfc27dde20ab4572d8e.tar.bz2 gentoo-2-f2363703b076eaca7a8b0bfc27dde20ab4572d8e.zip |
Add patch for latest version of archopt as of July 23.
For properly handling if cpu is already set in the main GCC detection if/else.
This will fix bug #186111, thanks to Nils Kneuper for reporting and Nach for fixing.
(Portage version: 2.1.3_rc7)
Diffstat (limited to 'games-emulation')
-rw-r--r-- | games-emulation/zsnes/ChangeLog | 8 | ||||
-rw-r--r-- | games-emulation/zsnes/files/digest-zsnes-1.42 | 3 | ||||
-rw-r--r-- | games-emulation/zsnes/files/zsnes-1.51-archopt-july-23-update.patch | 502 | ||||
-rw-r--r-- | games-emulation/zsnes/zsnes-1.51-r1.ebuild | 4 |
4 files changed, 512 insertions, 5 deletions
diff --git a/games-emulation/zsnes/ChangeLog b/games-emulation/zsnes/ChangeLog index 022fd814de13..ea38dfa573e3 100644 --- a/games-emulation/zsnes/ChangeLog +++ b/games-emulation/zsnes/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for games-emulation/zsnes # Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/games-emulation/zsnes/ChangeLog,v 1.34 2007/06/25 21:38:06 drizzt Exp $ +# $Header: /var/cvsroot/gentoo-x86/games-emulation/zsnes/ChangeLog,v 1.35 2007/07/22 22:20:21 drizzt Exp $ + + 22 Jul 2007; Timothy Redaelli <drizzt@gentoo.org> + +files/zsnes-1.51-archopt-july-23-update.patch, zsnes-1.51-r1.ebuild: + Add patch for latest version of archopt as of July 23. For properly handling + if cpu is already set in the main GCC detection if/else. This will fix bug + #186111, thanks to Nils Kneuper for reporting and Nach for fixing. *zsnes-1.51-r1 (25 Jun 2007) diff --git a/games-emulation/zsnes/files/digest-zsnes-1.42 b/games-emulation/zsnes/files/digest-zsnes-1.42 deleted file mode 100644 index 0f591cd996ef..000000000000 --- a/games-emulation/zsnes/files/digest-zsnes-1.42 +++ /dev/null @@ -1,3 +0,0 @@ -MD5 e3fcc13061e169194ec31c27ace1b6e7 zsnes142src.tar.gz 1102840 -RMD160 d794c69e876265715e141c26ecb6ed1802ffc27d zsnes142src.tar.gz 1102840 -SHA256 f06ef14db8d3fdae9d7c12442a52e535a5feee1cb18c78b51a74ed282ed874be zsnes142src.tar.gz 1102840 diff --git a/games-emulation/zsnes/files/zsnes-1.51-archopt-july-23-update.patch b/games-emulation/zsnes/files/zsnes-1.51-archopt-july-23-update.patch new file mode 100644 index 000000000000..cd478923b1d9 --- /dev/null +++ b/games-emulation/zsnes/files/zsnes-1.51-archopt-july-23-update.patch @@ -0,0 +1,502 @@ +--- tools/archopt.c.old 2006-12-29 06:50:31.000000000 +0100 ++++ tools/archopt.c 2007-07-23 00:11:51.000000000 +0200 +@@ -1,8 +1,30 @@ ++/* ++Copyright (C) 2005-2007 Nach, grinvader ( http://www.zsnes.com ) ++ ++This program is free software; you can redistribute it and/or ++modify it under the terms of the GNU General Public License ++version 2 as published by the Free Software Foundation. ++ ++This program is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++GNU General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with this program; if not, write to the Free Software ++Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++*/ ++ + #include <stdio.h> + #include <stdlib.h> + #include <string.h> + #include <ctype.h> + ++#ifdef _M_X64 ++#define __x86_64__ ++#endif ++ ++#ifdef __GNUC__ + #ifdef __x86_64__ + #define cpuid(in, a, b, c, d) asm volatile("cpuid": "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (in)); + #else +@@ -13,6 +35,22 @@ + movl %%ebx,%%edi;\ + popl %%ebx": "=a" (a), "=D" (b), "=c" (c), "=d" (d) : "a" (in)); + #endif ++#else ++char cpubuf[256]; ++int z_in, z_a, z_b, z_c, z_d; ++void cpuid_run() ++{ ++ _asm { ++ mov eax,z_in ++ cpuid ++ mov z_a,eax ++ mov z_b,ebx ++ mov z_c,ecx ++ mov z_d,edx ++ }; ++} ++#define cpuid(in, a, b, c, d) z_in = in; cpuid_run(); a = z_a; b = z_b; c = z_c; d = z_d; ++#endif + + char *x86_flags[] = + { "fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce", +@@ -62,6 +100,7 @@ + { + int have = 0x200000; + #ifndef __x86_64__ ++ #ifdef __GNUC__ + asm volatile + ( + " pushfl;" +@@ -76,6 +115,23 @@ + : "=a" (have) + : "c" (have) + ); ++ #else ++ z_c = have; ++ _asm { ++ mov ecx,z_c ++ pushfd ++ pop eax ++ mov edx,eax ++ xor eax,ecx ++ push eax ++ popfd ++ pushfd ++ pop eax ++ xor eax,edx ++ mov z_a,eax ++ }; ++ have = z_a; ++ #endif + #endif + return(have); + } +@@ -196,238 +252,268 @@ + cpu = "native"; + #endif + #endif +- +- if (!cpu && *cpu_family && *vendor_id) ++ if (!cpu) + { +- if (!strcmp(vendor_id, "AuthenticAMD") || strstr(model_name, "AMD")) ++ if (!cpu && *cpu_family && *vendor_id) + { +- if (strstr(flags, " mmx ")) ++ #ifdef __GNUC__ ++ if (!strcmp(vendor_id, "AuthenticAMD") || strstr(model_name, "AMD")) + { +- #if __GNUC__ > 2 +- if (strstr(flags, " 3dnow ")) ++ if (strstr(flags, " mmx ")) + { +- if (strstr(flags, " 3dnowext ") && (atoi(cpu_family) > 5)) ++ #if __GNUC__ > 2 ++ if (strstr(flags, " 3dnow ")) + { +- #if __GNUC__ > 3 || __GNUC_MINOR__ > 0 +- if (strstr(flags, " sse ")) ++ if (strstr(flags, " 3dnowext ") && (atoi(cpu_family) > 5)) + { +- #if __GNUC__ > 3 || __GNUC_MINOR__ > 3 +- if (strstr(flags, " sse2 ") && strstr(flags, " lm ")) //Need two checks to protect Semprons ++ #if __GNUC__ > 3 || __GNUC_MINOR__ > 0 ++ if (strstr(flags, " sse ")) + { +- if (strstr(model_name, "Opteron")) +- { +- cpu = "opteron"; +- } +- else if (strstr(model_name, "Athlon(tm) 64")) //Also athlon-fx ++ #if __GNUC__ > 3 || __GNUC_MINOR__ > 3 ++ if (strstr(flags, " sse2 ") && strstr(flags, " lm ")) //Need two checks to protect Semprons + { +- cpu = "athlon64"; ++ if (strstr(model_name, "Opteron")) ++ { ++ cpu = "opteron"; ++ } ++ else if (strstr(model_name, "Athlon(tm) 64")) //Also athlon-fx ++ { ++ cpu = "athlon64"; ++ } ++ else ++ { ++ cpu = "k8"; ++ } + } +- else ++ #endif ++ if (!cpu) + { +- cpu = "k8"; ++ if (strstr(model_name, "Athlon(tm) 4")) ++ { ++ cpu = "athlon-4"; ++ } ++ else if (strstr(model_name, "Athlon(tm) MP")) ++ { ++ cpu = "athlon-mp"; ++ } ++ else ++ { ++ cpu = "athlon-xp"; ++ } + } + } ++ ++ if (!cpu && (atoi(model) > 3)) ++ { ++ cpu = "athlon-tbird"; ++ } + #endif ++ + if (!cpu) + { +- if (strstr(model_name, "Athlon(tm) 4")) +- { +- cpu = "athlon-4"; +- } +- else if (strstr(model_name, "Athlon(tm) MP")) +- { +- cpu = "athlon-mp"; +- } +- else +- { +- cpu = "athlon-xp"; +- } ++ cpu = "athlon"; + } + } + +- if (!cpu && (atoi(model) > 3)) +- { +- cpu = "athlon-tbird"; +- } +- #endif +- ++ #if __GNUC__ > 3 || __GNUC_MINOR__ > 0 + if (!cpu) + { +- cpu = "athlon"; ++ int model_num = atoi(model); ++ if ((model_num == 9) || (model_num >= 13)) ++ { ++ cpu = "k6-3"; ++ } ++ else ++ { ++ cpu = "k6-2"; ++ } + } ++ #endif + } ++ #endif + +- #if __GNUC__ > 3 || __GNUC_MINOR__ > 0 + if (!cpu) + { +- int model_num = atoi(model); +- if ((model_num == 9) || (model_num >= 13)) +- { +- cpu = "k6-3"; +- } +- else +- { +- cpu = "k6-2"; +- } ++ cpu = "k6"; + } +- #endif +- } +- #endif +- +- if (!cpu) +- { +- cpu = "k6"; + } + } +- } +- else if (!strcmp(vendor_id, "GenuineIntel") || strstr(model_name, "Intel")) +- { +- #if __GNUC__ > 2 +- if (strstr(flags, " mmx ")) ++ else if (!strcmp(vendor_id, "GenuineIntel") || strstr(model_name, "Intel")) + { +- if (strstr(flags, " sse ")) ++ #if __GNUC__ > 2 ++ if (strstr(flags, " mmx ")) + { +- if (strstr(flags, " sse2 ")) ++ if (strstr(flags, " sse ")) + { +- #if __GNUC__ > 3 || __GNUC_MINOR__ > 2 +- if (strstr(flags, " pni ") && strcmp(cpu_family, "6")) ++ if (strstr(flags, " sse2 ")) + { +- if (strstr(flags, " lm ")) ++ #if __GNUC__ > 3 || __GNUC_MINOR__ > 2 ++ if (strstr(flags, " pni ") && strcmp(cpu_family, "6")) + { +- cpu = "nocona"; ++ if (strstr(flags, " lm ")) ++ { ++ cpu = "nocona"; ++ } ++ else ++ { ++ cpu = "prescott"; ++ } + } +- else ++ #endif ++ ++ if (!cpu) + { +- cpu = "prescott"; ++ if (!strcmp(cpu_family, "6")) ++ { ++ #if __GNUC__ > 3 || __GNUC_MINOR__ > 3 ++ cpu = "pentium-m"; ++ #else ++ cpu = "pentium3"; ++ #endif ++ } ++ else ++ { ++ #if __GNUC__ > 3 || __GNUC_MINOR__ > 3 ++ if (strstr(model_name, "Mobile")) ++ { ++ cpu = "pentium4m"; ++ } ++ #endif ++ ++ if (!cpu) ++ { ++ cpu = "pentium4"; ++ } ++ } + } + } +- #endif +- +- if (!cpu) ++ else + { +- if (!strcmp(cpu_family, "6")) ++ #if __GNUC__ > 3 || __GNUC_MINOR__ > 3 ++ if (strstr(model_name, "Mobile")) + { +- #if __GNUC__ > 3 || __GNUC_MINOR__ > 3 +- cpu = "pentium-m"; +- #else +- cpu = "pentium3"; +- #endif ++ cpu = "pentium3m"; + } +- else +- { +- #if __GNUC__ > 3 || __GNUC_MINOR__ > 3 +- if (strstr(model_name, "Mobile")) +- { +- cpu = "pentium4m"; +- } +- #endif ++ #endif + +- if (!cpu) +- { +- cpu = "pentium4"; +- } ++ if (!cpu) ++ { ++ cpu = "pentium3"; + } + } + } + else + { +- #if __GNUC__ > 3 || __GNUC_MINOR__ > 3 +- if (strstr(model_name, "Mobile")) ++ if (!strcmp(cpu_family, "6")) + { +- cpu = "pentium3m"; ++ cpu = "pentium2"; + } +- #endif +- +- if (!cpu) ++ else + { +- cpu = "pentium3"; ++ cpu = "pentium-mmx"; + } + } + } +- else ++ #endif ++ ++ if (!cpu) ++ { ++ int family = atoi(cpu_family); ++ if (family > 5) ++ { ++ cpu = "pentiumpro"; ++ } ++ else if (family == 5) ++ { ++ cpu = "pentium"; ++ } ++ } ++ } ++ #if __GNUC__ > 2 ++ #if __GNUC__ > 3 || __GNUC_MINOR__ > 2 ++ else if (!strcmp(vendor_id, "CentaurHauls") && strstr(flags, " mmx ")) ++ { ++ if (strstr(flags, " 3dnow ")) + { +- if (!strcmp(cpu_family, "6")) ++ if (atoi(cpu_family) > 5) + { +- cpu = "pentium2"; ++ cpu = "c3"; + } + else + { +- cpu = "pentium-mmx"; ++ cpu = "winchip2"; + } + } ++ #if __GNUC__ > 3 || __GNUC_MINOR__ > 3 ++ else if (strstr(flags, " sse ")) ++ { ++ cpu = "c3-2"; ++ } ++ #endif ++ ++ if (!cpu) ++ { ++ cpu = "winchip-c6"; ++ } + } + #endif ++ #endif + + if (!cpu) + { + int family = atoi(cpu_family); + if (family > 5) + { +- cpu = "pentiumpro"; ++ cpu = "i686"; + } + else if (family == 5) + { +- cpu = "pentium"; ++ cpu = "i586"; + } +- } +- } +- #if __GNUC__ > 2 +- #if __GNUC__ > 3 || __GNUC_MINOR__ > 2 +- else if (!strcmp(vendor_id, "CentaurHauls") && strstr(flags, " mmx ")) +- { +- if (strstr(flags, " 3dnow ")) +- { +- if (atoi(cpu_family) > 5) ++ else if (family == 4) + { +- cpu = "c3"; ++ cpu = "i486"; + } + else + { +- cpu = "winchip2"; ++ cpu = "i386"; + } + } +- #if __GNUC__ > 3 || __GNUC_MINOR__ > 3 ++ #else //MSVC ++ cpu = cpubuf; ++ *cpu = 0; ++ ++ if (strstr(flags, " sse2 ")) ++ { ++ strcat(cpu, " /arch:SSE2"); ++ } + else if (strstr(flags, " sse ")) + { +- cpu = "c3-2"; ++ strcat(cpu, " /arch:SSE"); + } +- #endif + +- if (!cpu) ++ #ifdef __x86_64__ ++ if (strstr(flags, " lm ")) //64 bit + { +- cpu = "winchip-c6"; ++ if (!strcmp(vendor_id, "AuthenticAMD") || strstr(model_name, "AMD")) ++ { ++ strcat(cpu, " /favor:AMD64"); ++ } ++ else if (!strcmp(vendor_id, "GenuineIntel") || strstr(model_name, "Intel")) ++ { ++ strcat(cpu, " /favor:EM64T"); ++ } + } ++ #endif ++ #endif + } +- #endif +- #endif +- +- if (!cpu) ++ else + { +- int family = atoi(cpu_family); +- if (family > 5) +- { +- cpu = "i686"; +- } +- else if (family == 5) +- { +- cpu = "i586"; +- } +- else if (family == 4) +- { +- cpu = "i486"; +- } +- else +- { +- cpu = "i386"; +- } ++ puts("Could not open /proc/cpuinfo, and CPUID instruction not available."); ++ return(1); + } +- puts(cpu); +- } +- else +- { +- puts("Could not open /proc/cpuinfo, and CPUID instruction not available."); +- return(1); + } ++ puts(cpu); + + return(0); + } diff --git a/games-emulation/zsnes/zsnes-1.51-r1.ebuild b/games-emulation/zsnes/zsnes-1.51-r1.ebuild index d90cdcb953cb..60fb8a20eb7b 100644 --- a/games-emulation/zsnes/zsnes-1.51-r1.ebuild +++ b/games-emulation/zsnes/zsnes-1.51-r1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/games-emulation/zsnes/zsnes-1.51-r1.ebuild,v 1.1 2007/06/25 21:38:06 drizzt Exp $ +# $Header: /var/cvsroot/gentoo-x86/games-emulation/zsnes/zsnes-1.51-r1.ebuild,v 1.2 2007/07/22 22:20:21 drizzt Exp $ inherit eutils autotools flag-o-matic toolchain-funcs games @@ -31,6 +31,8 @@ src_unpack() { # Fixing compilation without libpng installed epatch "${FILESDIR}"/${P}-libpng.patch + # Fix bug #186111 + epatch "${FILESDIR}"/${P}-archopt-july-23-update.patch # Remove hardcoded CFLAGS and LDFLAGS if use custom-cflags; then |