commit:     ef781b2e02df4142141a43ee8da72738c42c67c3
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 10 07:39:28 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Mar 10 07:45:40 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ef781b2e

games-action/dxx-rebirth: fix build w/ gcc 12

Closes: https://bugs.gentoo.org/894678
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../dxx-rebirth-0.61.0_pre20210623.ebuild          |  4 ++++
 .../dxx-rebirth-0.61.0_pre20210623-gcc-12.patch    | 25 ++++++++++++++++++++++
 2 files changed, 29 insertions(+)

diff --git a/games-action/dxx-rebirth/dxx-rebirth-0.61.0_pre20210623.ebuild 
b/games-action/dxx-rebirth/dxx-rebirth-0.61.0_pre20210623.ebuild
index 853ff1d1f770..f703b0ade70e 100644
--- a/games-action/dxx-rebirth/dxx-rebirth-0.61.0_pre20210623.ebuild
+++ b/games-action/dxx-rebirth/dxx-rebirth-0.61.0_pre20210623.ebuild
@@ -162,6 +162,10 @@ BDEPEND="virtual/pkgconfig"
 # and therefore requires a rebuild when changed.
 #IUSE_RUNTIME="flac l10n_de midi mp3 opl3-musicpack sc55-musicpack vorbis"
 
+PATCHES=(
+       "${FILESDIR}"/${P}-gcc-12.patch
+)
+
 dxx_scons() {
        # Always build profile `m`.  If use editor, also build profile `e`.
        # Set most variables in the default anonymous profile.  Only

diff --git 
a/games-action/dxx-rebirth/files/dxx-rebirth-0.61.0_pre20210623-gcc-12.patch 
b/games-action/dxx-rebirth/files/dxx-rebirth-0.61.0_pre20210623-gcc-12.patch
new file mode 100644
index 000000000000..3681385976a6
--- /dev/null
+++ b/games-action/dxx-rebirth/files/dxx-rebirth-0.61.0_pre20210623-gcc-12.patch
@@ -0,0 +1,25 @@
+https://bugs.gentoo.org/894678
+https://github.com/dxx-rebirth/dxx-rebirth/commit/092daecb6118b3c072c71a8bea24f119e300bd49
+
+From 092daecb6118b3c072c71a8bea24f119e300bd49 Mon Sep 17 00:00:00 2001
+From: Kp <k...@valhallalegends.com>
+Date: Sat, 28 May 2022 21:04:37 +0000
+Subject: [PATCH] Use static_cast<> to convert player_marker_num to
+ game_marker_index
+
+gcc-12 rejects the list initialization syntax.  Switch to static_cast<>,
+which generates equivalent code.
+
+Reported-by: dbermond <https://github.com/dxx-rebirth/dxx-rebirth/issues/638>
+--- a/similar/main/automap.cpp
++++ b/similar/main/automap.cpp
+@@ -370,7 +370,7 @@ game_marker_index 
convert_player_marker_index_to_game_marker_index(const game_mo
+               return static_cast<game_marker_index>((player_num * 
MAX_DROP_MULTI_COOP) + static_cast<unsigned>(player_marker_num));
+       if (game_mode & GM_MULTI)
+               return static_cast<game_marker_index>((player_num * 
MAX_DROP_MULTI_COMPETITIVE) + static_cast<unsigned>(player_marker_num));
+-      return game_marker_index{player_marker_num};
++      return static_cast<game_marker_index>(player_marker_num);
+ }
+ 
+ unsigned d_marker_state::get_markers_per_player(const game_mode_flags 
game_mode, const unsigned max_numplayers)
+

Reply via email to