commit:     6c8fbcf2f15b94c6fd846688677e69ee9cdae554
Author:     Alexey Sokolov <sokolov <AT> google <DOT> com>
AuthorDate: Wed Sep 16 00:20:10 2020 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Mon Sep 21 21:12:02 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c8fbcf2

games-emulation/gngeo: fix build with gcc 10

Closes: https://bugs.gentoo.org/708062
Package-Manager: Portage-3.0.4, Repoman-3.0.1
Signed-off-by: Alexey Sokolov <alexey+gentoo <AT> asokolov.org>
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 .../gngeo/files/gngeo-0.8-fcommon.patch            | 289 +++++++++++++++++++++
 games-emulation/gngeo/gngeo-0.8-r2.ebuild          |  48 ++++
 2 files changed, 337 insertions(+)

diff --git a/games-emulation/gngeo/files/gngeo-0.8-fcommon.patch 
b/games-emulation/gngeo/files/gngeo-0.8-fcommon.patch
new file mode 100644
index 00000000000..63e1ff097bb
--- /dev/null
+++ b/games-emulation/gngeo/files/gngeo-0.8-fcommon.patch
@@ -0,0 +1,289 @@
+--- a/src/memory.h     2011-10-25 18:04:13.000000000 -0000
++++ b/src/memory.h     2020-09-15 23:02:48.114069895 -0000
+@@ -114,30 +114,30 @@ typedef struct neo_mem {
+       Uint32 watchdog;
+ } neo_mem;
+ 
+-neo_mem memory;
++extern neo_mem memory;
+ 
+ /* video related */
+ //extern int irq2start, irq2control;
+-Uint8 *current_pal;
+-Uint32 *current_pc_pal;
+-Uint8 *current_fix;
+-Uint8 *fix_usage;
++extern Uint8 *current_pal;
++extern Uint32 *current_pc_pal;
++extern Uint8 *current_fix;
++extern Uint8 *fix_usage;
+ 
+ /* sram */
+-Uint8 sram_lock;
++extern Uint8 sram_lock;
+ //Uint32 sram_protection_hack;
+ //int sram_protection_hack;
+ 
+ /* Sound control */
+-Uint8 sound_code;
+-Uint8 pending_command;
+-Uint8 result_code;
++extern Uint8 sound_code;
++extern Uint8 pending_command;
++extern Uint8 result_code;
+ 
+ 
+ /* 68k cpu Banking control */
+ extern Uint32 bankaddress;            /* current bank */
+ //Uint8 current_cpu_bank;
+-Uint16 z80_bank[4];
++extern Uint16 z80_bank[4];
+ 
+ /* misc utility func */
+ void update_all_pal(void);
+@@ -263,10 +263,10 @@ void mem68k_store_bk_kof2003_byte(Uint32
+ void mem68k_store_bk_kof2003_word(Uint32 addr, Uint16 data);
+ void mem68k_store_bk_kof2003_long(Uint32 addr, Uint32 data);
+ 
+-Uint8 (*mem68k_fetch_bksw_byte)(Uint32);
+-Uint16 (*mem68k_fetch_bksw_word)(Uint32);
+-Uint32 (*mem68k_fetch_bksw_long)(Uint32);
+-void (*mem68k_store_bksw_byte)(Uint32,Uint8);
+-void (*mem68k_store_bksw_word)(Uint32,Uint16);
+-void (*mem68k_store_bksw_long)(Uint32,Uint32);
++extern Uint8 (*mem68k_fetch_bksw_byte)(Uint32);
++extern Uint16 (*mem68k_fetch_bksw_word)(Uint32);
++extern Uint32 (*mem68k_fetch_bksw_long)(Uint32);
++extern void (*mem68k_store_bksw_byte)(Uint32,Uint8);
++extern void (*mem68k_store_bksw_word)(Uint32,Uint16);
++extern void (*mem68k_store_bksw_long)(Uint32,Uint32);
+ #endif
+--- a/src/video.h      2011-10-25 18:04:13.000000000 -0000
++++ b/src/video.h      2020-09-15 23:01:55.756521216 -0000
+@@ -67,7 +67,7 @@ typedef struct VIDEO {
+ 
+ #define RASTER_LINES 261
+ 
+-unsigned int neogeo_frame_counter;
++extern unsigned int neogeo_frame_counter;
+ extern unsigned int neogeo_frame_counter_speed;
+ 
+ void init_video(void);
+--- a/src/memory.c     2011-10-25 18:04:13.000000000 -0000
++++ b/src/memory.c     2020-09-15 23:08:31.083181700 -0000
+@@ -896,3 +896,19 @@ void mem68k_store_bk_normal_word(Uint32
+ 
+ LONG_STORE(mem68k_store_bk_normal)
+ ;
++Uint8* current_pal;
++Uint32 *current_pc_pal;
++Uint8 *current_fix;
++Uint8 *fix_usage;
++Uint8 sram_lock;
++Uint8 sound_code;
++Uint8 pending_command;
++Uint8 result_code;
++Uint16 z80_bank[4];
++Uint8 (*mem68k_fetch_bksw_byte)(Uint32);
++Uint16 (*mem68k_fetch_bksw_word)(Uint32);
++Uint32 (*mem68k_fetch_bksw_long)(Uint32);
++void (*mem68k_store_bksw_byte)(Uint32,Uint8);
++void (*mem68k_store_bksw_word)(Uint32,Uint16);
++void (*mem68k_store_bksw_long)(Uint32,Uint32);
++neo_mem memory;
+--- b/src/video.c      2011-10-25 18:04:13.000000000 -0000
++++ b/src/video.c      2020-09-15 23:09:15.113923583 -0000
+@@ -32,6 +32,7 @@
+ #include "transpack.h"
+ 
+ extern int neogeo_fix_bank_type;
++unsigned int neogeo_frame_counter;
+ 
+ 
+ #ifdef PROCESSOR_ARM
+--- a/src/screen.c     2011-10-25 18:04:13.000000000 -0000
++++ b/src2/screen.c    2020-09-15 23:14:14.508969030 -0000
+@@ -401,3 +401,14 @@ void screen_fullscreen() {
+       fullscreen ^= 1;
+       blitter[nblitter].fullscreen();
+ }
++SDL_Surface *screen;
++SDL_Surface *buffer, *sprbuf, *fps_buf, *scan, *fontbuf;
++SDL_Rect visible_area;
++int yscreenpadding;
++Uint8 interpolation;
++Uint8 nblitter;
++Uint8 neffect;
++Uint8 scale;
++Uint8 fullscreen;
++
++
+--- a/src/screen.h     2011-10-25 18:04:13.000000000 -0000
++++ b/src/screen.h     2020-09-15 23:14:14.085628561 -0000
+@@ -17,19 +17,19 @@ extern RGB2YUV rgb2yuv[65536];
+ 
+ void init_rgb2yuv_table(void);
+ 
+-SDL_Surface *screen;
+-SDL_Surface *buffer, *sprbuf, *fps_buf, *scan, *fontbuf;
++extern SDL_Surface *screen;
++extern SDL_Surface *buffer, *sprbuf, *fps_buf, *scan, *fontbuf;
+ //SDL_Surface *triplebuf[2];
+ 
+-SDL_Rect visible_area;
++extern SDL_Rect visible_area;
+ 
+-int yscreenpadding;
++extern int yscreenpadding;
+ 
+-Uint8 interpolation;
+-Uint8 nblitter;
+-Uint8 neffect;
+-Uint8 scale;
+-Uint8 fullscreen;
++extern Uint8 interpolation;
++extern Uint8 nblitter;
++extern Uint8 neffect;
++extern Uint8 scale;
++extern Uint8 fullscreen;
+ 
+ Uint8 get_effect_by_name(char *name);
+ Uint8 get_blitter_by_name(char *name);
+
+--- a/src/emu.c        2011-10-25 18:04:13.000000000 -0000
++++ b/src/emu.c        2020-09-15 23:55:31.560725467 -0000
+@@ -64,6 +64,11 @@ extern int irq2enable, irq2start, irq2re
+ extern int lastirq2line;
+ extern int irq2repeat_limit;
+ extern Uint32 irq2pos_value;
++Uint8 key[SDLK_LAST];
++Uint8 *joy_button[2];
++Sint32 *joy_axe[2];
++Uint32 joy_numaxes[2];
++conf_type conf;
+ 
+ void setup_misc_patch(char *name) {
+ 
+--- a/src/emu.h        2011-10-25 18:04:13.000000000 -0000
++++ b/src/emu.h        2020-09-15 23:55:31.067383834 -0000
+@@ -45,7 +45,7 @@ typedef enum COUNTRY {
+     CTY_MAX
+ } COUNTRY;
+ 
+-struct {
++typedef struct {
+     char *game;
+     Uint16 x_start;
+     Uint16 y_start;
+@@ -89,7 +89,8 @@ struct {
+ 
+     int p1_hotkey[4];
+     int p2_hotkey[4];
+-} conf;
++} conf_type;
++extern conf_type conf;
+ 
+ enum {
+     HOTKEY_MASK_A = 0x1,
+@@ -123,10 +124,10 @@ enum {
+ 
+ //config conf;
+ 
+-Uint8 key[SDLK_LAST];
+-Uint8 *joy_button[2];
+-Sint32 *joy_axe[2];
+-Uint32 joy_numaxes[2];
++extern Uint8 key[SDLK_LAST];
++extern Uint8 *joy_button[2];
++extern Sint32 *joy_axe[2];
++extern Uint32 joy_numaxes[2];
+ 
+ void debug_loop(void);
+ void main_loop(void);
+--- a/src/state.c      2011-10-25 18:04:13.000000000 -0000
++++ b/src/state.c      2020-09-15 23:51:12.333025158 -0000
+@@ -627,6 +627,7 @@ void clear_state_reg(void) {
+       st_mod[i].reglist=NULL;
+     }
+ }
++SDL_Surface *state_img;
+ 
+ void neogeo_init_save_state(void) {
+     int i;
+--- a/src/state.h      2011-10-25 18:04:13.000000000 -0000
++++ b/src/state.h      2020-09-15 23:50:09.751969676 -0000
+@@ -80,7 +80,7 @@ typedef struct NEOGEO_STATE {
+     Uint8 pal1[0x2000], pal2[0x2000];
+ }NEOGEO_STATE;
+ 
+-SDL_Surface *state_img;
++extern SDL_Surface *state_img;
+ 
+ #define STREAD  0
+ #define STWRITE 1
+--- a/src/event.c      2012-01-13 20:25:07.000000000 -0000
++++ b/src/event.c      2020-09-16 00:13:06.148468785 -0000
+@@ -10,6 +10,8 @@
+ #include "conf.h"
+ #include "emu.h"
+ #include "memory.h"
++JOYMAP *jmap;
++Uint8 joy_state[2][GN_MAX_KEY];
+ 
+ static int get_mapid(char *butid) {
+       printf("Get mapid %s\n",butid);
+--- a/src/event.h      2011-10-25 18:04:13.000000000 -0000
++++ b/src/event.h      2020-09-16 00:13:05.125118226 -0000
+@@ -41,8 +41,8 @@ typedef struct JOYMAP {
+       struct BUT_MAP **jhat;
+ }JOYMAP;
+ 
+-JOYMAP *jmap;
+-Uint8 joy_state[2][GN_MAX_KEY];
++extern JOYMAP *jmap;
++extern Uint8 joy_state[2][GN_MAX_KEY];
+ 
+ 
+ bool init_event(void);
+--- a/src/frame_skip.c 2011-10-25 18:04:13.000000000 -0000
++++ b/src/frame_skip.c 2020-09-16 00:14:09.792873267 -0000
+@@ -33,6 +33,7 @@
+ #ifndef uclock_t
+ #define uclock_t Uint32
+ #endif
++char fps_str[32];
+ 
+ #define TICKS_PER_SEC 1000000UL
+ //#define CPU_FPS 60
+--- a/src/frame_skip.h 2011-10-25 18:04:13.000000000 -0000
++++ b/src/frame_skip.h 2020-09-16 00:14:10.619553849 -0000
+@@ -22,7 +22,7 @@
+ 
+ extern char skip_next_frame;
+ 
+-char fps_str[32];
++extern char fps_str[32];
+ 
+ void reset_frame_skip(void);
+ int frame_skip(int init);
+--- a/src/transpack.c  2011-10-25 18:04:13.000000000 -0000
++++ b/src/transpack.c  2020-09-16 00:14:41.750077802 -0000
+@@ -26,6 +26,7 @@
+ #include <string.h>
+ 
+ #include "transpack.h"
++TRANS_PACK *tile_trans;
+ 
+ 
+ static void trans_pack_add(Uint32 begin,Uint32 end,Uint32 type)
+--- a/src/transpack.h  2011-10-25 18:04:13.000000000 -0000
++++ b/src/transpack.h  2020-09-16 00:14:41.073399747 -0000
+@@ -14,7 +14,7 @@ typedef struct TRANS_PACK {
+     Uint8 type;
+     struct TRANS_PACK *next;
+ } TRANS_PACK;
+-TRANS_PACK *tile_trans;
++extern TRANS_PACK *tile_trans;
+ 
+ TRANS_PACK* trans_pack_find(Uint32 tile);
+ void trans_pack_open(char *filename);

diff --git a/games-emulation/gngeo/gngeo-0.8-r2.ebuild 
b/games-emulation/gngeo/gngeo-0.8-r2.ebuild
new file mode 100644
index 00000000000..f4e1e906ad7
--- /dev/null
+++ b/games-emulation/gngeo/gngeo-0.8-r2.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools desktop flag-o-matic
+
+DESCRIPTION="A NeoGeo emulator"
+HOMEPAGE="https://code.google.com/p/gngeo/";
+SRC_URI="https://gngeo.googlecode.com/files/${P}.tar.gz
+       
https://storage.googleapis.com/google-code-archive/v2/code.google.com/gngeo/logo.png
 -> ${PN}.png"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="
+       media-libs/libsdl[joystick,opengl,sound,video]
+       sys-libs/zlib[minizip]
+       virtual/opengl
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-execstacks.patch
+       "${FILESDIR}"/${P}-zlib.patch
+       "${FILESDIR}"/${P}-concurrentMake.patch
+       "${FILESDIR}"/${P}-cflags.patch
+       "${FILESDIR}"/${P}-fcommon.patch
+)
+
+src_prepare() {
+       default
+       mv configure.in configure.ac || die
+       eautoreconf
+       append-cflags -std=gnu89 # build with gcc5 (bug #571056)
+}
+
+src_configure() {
+       econf --disable-i386asm
+}
+
+src_install() {
+       DOCS=( AUTHORS FAQ NEWS README* TODO sample_gngeorc )
+       default
+       doicon "${DISTDIR}"/${PN}.png
+       make_desktop_entry ${PN}
+}

Reply via email to