From: raingloom <raingloom@riseup.net>
To: 39675@debbugs.gnu.org
Subject: [bug#39675] [PATCH] fix Desmume on newer GCC
Date: Wed, 19 Feb 2020 14:41:21 +0100 [thread overview]
Message-ID: <1582119681.2225.1@riseup.net> (raw)
[-- Attachment #1: Type: text/plain, Size: 197 bytes --]
The project has not seen much development in some time, so it needed a
few patches. I found them in the Arch package, but they seem to be from
the upstream SourceForge project and mailing list.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-desmume-fix-build-on-new-GCC-versions.patch --]
[-- Type: text/x-patch, Size: 5483 bytes --]
From b411aaa32286fd746812adc85de7ee2720ad76fd Mon Sep 17 00:00:00 2001
From: raingloom <raingloom@protonmail.com>
Date: Wed, 19 Feb 2020 14:36:26 +0100
Subject: [PATCH] gnu: desmume: fix build on new GCC versions *
gnu/packages/emulation.scm (desmume) add patches *
gnu/packages/patches/desmume-gcc6-fixes.patch: new file *
gnu/packages/patches/desmume-gcc7-fixes.patch: new file
---
gnu/packages/emulators.scm | 4 +-
gnu/packages/patches/desmume-gcc6-fixes.patch | 59 +++++++++++++++++++
gnu/packages/patches/desmume-gcc7-fixes.patch | 18 ++++++
3 files changed, 80 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/desmume-gcc6-fixes.patch
create mode 100644 gnu/packages/patches/desmume-gcc7-fixes.patch
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index b7f29a6f5b..aec4ce73ba 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -102,7 +102,9 @@
version "/desmume-" version ".tar.gz"))
(sha256
(base32
- "15l8wdw3q61fniy3h93d84dnm6s4pyadvh95a0j6d580rjk4pcrs"))))
+ "15l8wdw3q61fniy3h93d84dnm6s4pyadvh95a0j6d580rjk4pcrs"))
+ (patches (search-patches "desmume-gcc6-fixes.patch"
+ "desmume-gcc7-fixes.patch"))))
(build-system gnu-build-system)
(arguments
;; Enable support for WiFi and microphone.
diff --git a/gnu/packages/patches/desmume-gcc6-fixes.patch b/gnu/packages/patches/desmume-gcc6-fixes.patch
new file mode 100644
index 0000000000..6eb9576f64
--- /dev/null
+++ b/gnu/packages/patches/desmume-gcc6-fixes.patch
@@ -0,0 +1,59 @@
+From: zeromus
+Origin: upstream, https://sourceforge.net/p/desmume/code/5514, https://sourceforge.net/p/desmume/code/5517, https://sourceforge.net/p/desmume/code/5430
+Subject: fix GCC6 issues
+Bug: https://sourceforge.net/p/desmume/bugs/1570/
+Bug-Debian: http://bugs.debian.org/811691
+
+Index: desmume/src/MMU_timing.h
+===================================================================
+--- desmume/src/MMU_timing.h (revision 5513)
++++ desmume/src/MMU_timing.h (revision 5517)
+@@ -155,8 +155,8 @@
+ enum { ASSOCIATIVITY = 1 << ASSOCIATIVESHIFT };
+ enum { BLOCKSIZE = 1 << BLOCKSIZESHIFT };
+ enum { TAGSHIFT = SIZESHIFT - ASSOCIATIVESHIFT };
+- enum { TAGMASK = (u32)(~0 << TAGSHIFT) };
+- enum { BLOCKMASK = ((u32)~0 >> (32 - TAGSHIFT)) & (u32)(~0 << BLOCKSIZESHIFT) };
++ enum { TAGMASK = (u32)(~0U << TAGSHIFT) };
++ enum { BLOCKMASK = ((u32)~0U >> (32 - TAGSHIFT)) & (u32)(~0U << BLOCKSIZESHIFT) };
+ enum { WORDSIZE = sizeof(u32) };
+ enum { WORDSPERBLOCK = (1 << BLOCKSIZESHIFT) / WORDSIZE };
+ enum { DATAPERWORD = WORDSIZE * ASSOCIATIVITY };
+Index: desmume/src/ctrlssdl.cpp
+===================================================================
+--- desmume/src/ctrlssdl.cpp (revision 5513)
++++ desmume/src/ctrlssdl.cpp (revision 5517)
+@@ -200,7 +200,7 @@
+ break;
+ case SDL_JOYAXISMOTION:
+ /* Dead zone of 50% */
+- if( (abs(event.jaxis.value) >> 14) != 0 )
++ if( ((u32)abs(event.jaxis.value) >> 14) != 0 )
+ {
+ key = ((event.jaxis.which & 15) << 12) | JOY_AXIS << 8 | ((event.jaxis.axis & 127) << 1);
+ if (event.jaxis.value > 0) {
+@@ -370,7 +370,7 @@
+ Note: button constants have a 1bit offset. */
+ case SDL_JOYAXISMOTION:
+ key_code = ((event->jaxis.which & 15) << 12) | JOY_AXIS << 8 | ((event->jaxis.axis & 127) << 1);
+- if( (abs(event->jaxis.value) >> 14) != 0 )
++ if( ((u32)abs(event->jaxis.value) >> 14) != 0 )
+ {
+ if (event->jaxis.value > 0)
+ key_code |= 1;
+Index: desmume/src/wifi.cpp
+===================================================================
+--- desmume/src/wifi.cpp (revision 5429)
++++ desmume/src/wifi.cpp (revision 5430)
+@@ -320,9 +320,9 @@
+
+ #if (WIFI_LOGGING_LEVEL >= 1)
+ #if WIFI_LOG_USE_LOGC
+- #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) LOGC(8, "WIFI: "__VA_ARGS__);
++ #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) LOGC(8, "WIFI: " __VA_ARGS__);
+ #else
+- #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) printf("WIFI: "__VA_ARGS__);
++ #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) printf("WIFI: " __VA_ARGS__);
+ #endif
+ #else
+ #define WIFI_LOG(level, ...) {}
diff --git a/gnu/packages/patches/desmume-gcc7-fixes.patch b/gnu/packages/patches/desmume-gcc7-fixes.patch
new file mode 100644
index 0000000000..a4934ff6e6
--- /dev/null
+++ b/gnu/packages/patches/desmume-gcc7-fixes.patch
@@ -0,0 +1,18 @@
+From e1f7039f1b06add4fb75b2f8774000b8f05574af Mon Sep 17 00:00:00 2001
+From: rogerman <rogerman@users.sf.net>
+Date: Mon, 17 Aug 2015 21:15:04 +0000
+Subject: Fix bug with libfat string handling.
+
+diff --git a/src/utils/libfat/directory.cpp b/src/utils/libfat/directory.cpp
+index 765d7ae5..b6d7f01f 100644
+--- a/src/utils/libfat/directory.cpp
++++ b/src/utils/libfat/directory.cpp
+@@ -139,7 +139,7 @@ static size_t _FAT_directory_mbstoucs2 (ucs2_t* dst, const char* src, size_t len
+ int bytes;
+ size_t count = 0;
+
+- while (count < len-1 && src != '\0') {
++ while (count < len-1 && *src != '\0') {
+ bytes = mbrtowc (&tempChar, src, MB_CUR_MAX, &ps);
+ if (bytes > 0) {
+ *dst = (ucs2_t)tempChar;
--
2.25.0
next reply other threads:[~2020-02-19 13:42 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-19 13:41 raingloom [this message]
2020-02-20 16:04 ` [bug#39675] [PATCH] fix Desmume on newer GCC Jakub Kądziołka
2020-02-22 9:31 ` raingloom
2020-02-22 15:39 ` Jakub Kądziołka
2020-02-22 23:19 ` raingloom
2020-02-23 19:31 ` bug#39675: Done: " Jakub Kądziołka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1582119681.2225.1@riseup.net \
--to=raingloom@riseup.net \
--cc=39675@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).