diff options
-rw-r--r-- | PKGBUILD | 54 | ||||
-rw-r--r-- | gcc6_fixes.patch | 59 | ||||
-rw-r--r-- | gcc7_fixes.patch | 18 |
3 files changed, 27 insertions, 104 deletions
@@ -12,48 +12,48 @@ # Contributor (Arch): Asher256 <achrafcherti at gmail dot com> # # I maintain this because: +# Arch version is out of date # Arch version lacks additional optimization and hardening flags pkgname=desmume -pkgver=0.9.11 -pkgrel=8.2 +pkgver=0.9.13 +_pkgver=0_9_13 +pkgrel=1 pkgdesc="Nintendo DS emulator" arch=('x86_64') url="https://desmume.org/" license=('GPL') -depends=('desktop-file-utils' 'libpcap' 'soundtouch' 'alsa-lib' 'glu' 'sdl' 'gtk2' 'zziplib') -makedepends=('intltool' 'mesa' 'clang') -source=("https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz" - gcc6_fixes.patch - gcc7_fixes.patch) -sha256sums=('3ab34ba6cc009566245025c1dd94bf449b6a1b416d24387cb42e183c78e38896' - 'dfb25d204253ca1dad2218e54760c81872c1df0b70c12067591a6578159b9aef' - 'b8f419f5286c1ee08f824250cabc7f4984a572f55db8182070b0bf3235134d1f') - -prepare() { - cd "$srcdir/$pkgname-$pkgver" - - # Fix build - patch -Np1 -i ../gcc6_fixes.patch - patch -Np1 -i ../gcc7_fixes.patch - - - # See https://bugs.archlinux.org/task/35086 and - # https://sourceforge.net/tracker/?func=detail&aid=3612768&group_id=164579&atid=832291 - sed -i 's/@GETTEXT_PACKAGE@/desmume/' po/Makefile.in.in -} +# # For some reason this breaks compiling. "error: C++ compiler cannot create executables" +# # But old-fashioned raw injection of -flto=auto via export doesn't. +#options=(lto) +depends=('desktop-file-utils' 'libpcap' 'soundtouch' 'alsa-lib' 'glu' 'sdl2' 'gtk2' 'zziplib') +makedepends=('intltool' 'mesa') +source=(${pkgname}-${pkgver}.tar.gz::"https://github.com/TASEmulators/${pkgname}/archive/refs/tags/release_${_pkgver}.tar.gz") +sha256sums=('7e513f3112ac2955bd0951bc00a94f10220999b036745bde5ac01eb524e05b57') +b2sums=('d63ed03801a15a3429c12b05da4ff2e4ea851a7dc307d4a4e02b6a0f74b2c4fab3a27ff14f6c563c9b84a827bb7d7db3083884154049cf8a8ffd5df6aa310e5c') build() { - cd "$srcdir/$pkgname-$pkgver" - export CFLAGS="$CFLAGS -O3 -fstack-protector-all -flto=auto -fPIE -fuse-linker-plugin -minline-all-stringops" - export CXXFLAGS="$CXXFLAGS -O3 -fstack-protector-all -flto=auto -fPIE -fuse-linker-plugin -minline-all-stringops" + cd "$srcdir/${pkgname}-release_${_pkgver}/${pkgname}/src/frontend/posix/" + + # Prevents build failure + CXXFLAGS+=" -Wno-error=format-security" + + # Upstream suggested + export CFLAGS="$CFLAGS -fuse-linker-plugin -minline-all-stringops" + export CXXFLAGS="$CXXFLAGS -fuse-linker-plugin -minline-all-stringops" + + # General optimizations + export CFLAGS="$CFLAGS -O3 -fstack-protector-all -flto=auto -fPIE" + export CXXFLAGS="$CXXFLAGS -O3 -fstack-protector-all -flto=auto -fPIE" export LDFLAGS="$LDFLAGS,-pie" + + autoreconf -i ./configure --prefix=/usr --enable-wifi --enable-openal make } package() { - cd "$srcdir/$pkgname-$pkgver" + cd "$srcdir/${pkgname}-release_${_pkgver}/${pkgname}/src/frontend/posix/" make DESTDIR="$pkgdir/" install } diff --git a/gcc6_fixes.patch b/gcc6_fixes.patch deleted file mode 100644 index 6eb9576..0000000 --- a/gcc6_fixes.patch +++ /dev/null @@ -1,59 +0,0 @@ -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/gcc7_fixes.patch b/gcc7_fixes.patch deleted file mode 100644 index a4934ff..0000000 --- a/gcc7_fixes.patch +++ /dev/null @@ -1,18 +0,0 @@ -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; |