rpms/bsnes/F-10 bsnes-0.054-noppcelfppc64.patch, NONE, 1.1 libco.ppc-elf-2.diff, NONE, 1.1 bsnes.spec, 1.18, 1.19 bsnes-0.054-noppcelf.patch, 1.1, NONE

Julian Sikorski belegdol at rpmfusion.org
Wed Oct 28 20:42:59 CET 2009


Author: belegdol

Update of /cvs/free/rpms/bsnes/F-10
In directory se02.es.rpmfusion.net:/tmp/cvs-serv8558

Modified Files:
	bsnes.spec 
Added Files:
	bsnes-0.054-noppcelfppc64.patch libco.ppc-elf-2.diff 
Removed Files:
	bsnes-0.054-noppcelf.patch 
Log Message:
* Wed Oct 28 2009 Julian Sikorski <belegdol[at]gmail[dot]com> - 0.054-2
- Fixed the ppc-elf issue properly


bsnes-0.054-noppcelfppc64.patch:

--- NEW FILE bsnes-0.054-noppcelfppc64.patch ---
diff -up bsnes-0.054/src/lib/libco/libco.c.noppcelfppc64 bsnes-0.054/src/lib/libco/libco.c
--- bsnes-0.054/src/lib/libco/libco.c.noppcelfppc64	2009-10-18 09:26:09.000000000 +0200
+++ bsnes-0.054/src/lib/libco/libco.c	2009-10-28 20:17:02.000000000 +0100
@@ -8,7 +8,7 @@
   #include "x86.c"
 #elif defined(__GNUC__) && defined(__amd64__)
   #include "amd64.c"
-#elif defined(__GNUC__) && defined(__powerpc__) && defined(__ELF__)
+#elif defined(__GNUC__) && defined(__PPC32__) && defined(__ELF__)
   #include "ppc-elf.c"
 #elif defined(__GNUC__)
   #include "sjlj.c"

libco.ppc-elf-2.diff:

--- NEW FILE libco.ppc-elf-2.diff ---
--- libco.orig/ppc-elf.c	Sat Oct 10 22:11:16 2009
+++ libco/ppc-elf.c	Wed Oct 28 12:30:19 2009
@@ -66,9 +66,15 @@
 /*
  * co_active_context is either in a global offset table (if we are
  * compiling -fPIC or -fPIE) or has an absolute position.
+ *
+ * __attribute__((__used__)) is necessary because newer versions of
+ * gcc might replace co_active_context with an inline constant. This
+ * optimization would cause a linker error. This is because gcc cannot
+ * detect that our __asm__ uses co_active_context.
  */
 static void *co_main_stack_pointer;
-static cothread_t co_active_context = &co_main_stack_pointer;
+static cothread_t co_active_context __attribute__((__used__)) =
+  &co_main_stack_pointer;
 
 extern cothread_t co_active() {
   return co_active_context;


Index: bsnes.spec
===================================================================
RCS file: /cvs/free/rpms/bsnes/F-10/bsnes.spec,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- bsnes.spec	21 Oct 2009 16:15:37 -0000	1.18
+++ bsnes.spec	28 Oct 2009 19:42:59 -0000	1.19
@@ -2,7 +2,7 @@
 
 Name:           bsnes
 Version:        0.%{vernumber}
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        SNES emulator focused on accuracy
 
 Group:          Applications/Emulators
@@ -13,7 +13,8 @@
 Source0:        %{name}_v%{vernumber}.tar.bz2
 Source2:        README.bsnes
 Patch0:         bsnes-0.037a-strip.patch
-Patch1:         bsnes-0.054-noppcelf.patch
+Patch1:         libco.ppc-elf-2.diff
+Patch2:         bsnes-0.054-noppcelfppc64.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 #bsnes does not use system snes_ntsc because the modified video processing
@@ -39,7 +40,10 @@
 %prep
 %setup -qc
 %patch0 -p0 -b .strip
-%patch1 -p1 -b .noppcelf
+pushd src/lib/libco
+%patch1 -p1 -b .newppcelf
+popd
+%patch2 -p1 -b .noppcelfppc64
 
 #fix permissions
 find src -type f \( -name \*.cpp -or -name \*.hpp -or -name \*.h -or -name \*.c \) -exec chmod 644 {} \;
@@ -79,6 +83,9 @@
 
 
 %changelog
+* Wed Oct 28 2009 Julian Sikorski <belegdol[at]gmail[dot]com> - 0.054-2
+- Fixed the ppc-elf issue properly
+
 * Wed Oct 21 2009 Julian Sikorski <belegdol[at]gmail[dot]com> - 0.054-1
 - Updated to 0.054
 - Disabled ppc-elf.c until we figure out why it does not build


--- bsnes-0.054-noppcelf.patch DELETED ---



More information about the rpmfusion-commits mailing list