diff --git a/srcpkgs/desmume/patches/fix-gcc7.patch b/srcpkgs/desmume/patches/fix-gcc7.patch new file mode 100644 index 00000000000..f9c287a7b40 --- /dev/null +++ b/srcpkgs/desmume/patches/fix-gcc7.patch @@ -0,0 +1,38 @@ +--- ./src/wifi.cpp.orig 2018-01-16 14:39:01.175395010 +0100 ++++ ./src/wifi.cpp 2018-01-16 14:38:10.762596117 +0100 +@@ -314,9 +314,9 @@ WifiComInterface* wifiCom; + + #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, ...) {} +--- ./src/MMU_timing.h.orig 2018-01-16 14:47:05.818461679 +0100 ++++ ./src/MMU_timing.h 2018-01-16 14:48:05.344224219 +0100 +@@ -155,8 +155,8 @@ private: + 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)(((u32)~0) << TAGSHIFT) }; ++ enum { BLOCKMASK = ((u32)((u32)~0) >> (32 - TAGSHIFT)) & (u32)(((u32)~0) << BLOCKSIZESHIFT) }; + enum { WORDSIZE = sizeof(u32) }; + enum { WORDSPERBLOCK = (1 << BLOCKSIZESHIFT) / WORDSIZE }; + enum { DATAPERWORD = WORDSIZE * ASSOCIATIVITY }; +--- ./src/utils/libfat/directory.cpp.orig 2018-01-16 14:52:24.057192162 +0100 ++++ ./src/utils/libfat/directory.cpp 2018-01-16 14:52:27.833177099 +0100 +@@ -139,7 +139,7 @@ static size_t _FAT_directory_mbstoucs2 ( + 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; diff --git a/srcpkgs/desmume/template b/srcpkgs/desmume/template index 0740d287d33..3d7290e4805 100644 --- a/srcpkgs/desmume/template +++ b/srcpkgs/desmume/template @@ -1,10 +1,10 @@ # Template file for 'desmume' pkgname=desmume version=0.9.11 -revision=2 +revision=3 build_style=gnu-configure configure_args="--enable-wifi --enable-hud --disable-openal --enable-glx" -hostmakedepends="pkg-config intltool" +hostmakedepends="pkg-config intltool dos2unix" makedepends="SDL-devel libpcap-devel soundtouch-devel alsa-lib-devel gtk+-devel agg-devel zziplib-devel glu-devel" depends="desktop-file-utils" short_desc="Nintendo DS emulator" @@ -13,3 +13,9 @@ license="GPL-2" homepage="http://www.desmume.org" distfiles="${SOURCEFORGE_SITE}/$pkgname/$pkgname-$version.tar.gz" checksum=3ab34ba6cc009566245025c1dd94bf449b6a1b416d24387cb42e183c78e38896 + +post_extract() { + # git eats CRLFs, so the patch has wrong line ending. Instead + # convert the target file to LF-only. + dos2unix $wrksrc/src/MMU_timing.h +}