Index | Thread | Search

From:
Brad Smith <brad@comstyle.com>
Subject:
UPDATE: citra
To:
ports@openbsd.org
Date:
Mon, 10 Aug 2026 22:29:26 -0400

Download raw body.

Thread
  • Brad Smith:

    UPDATE: citra

Fix building Citra with LLVM 22.


Index: Makefile
===================================================================
RCS file: /cvs/ports/emulators/citra/Makefile,v
retrieving revision 1.41
diff -u -p -u -p -r1.41 Makefile
--- Makefile	10 Aug 2026 23:07:20 -0000	1.41
+++ Makefile	11 Aug 2026 01:52:16 -0000
@@ -1,7 +1,5 @@
-BROKEN-amd64 =	fails to build after move to LLVM 22
-
 # ships a dynarmic copy, and dynarmic only supports x86-64 and AArch64
-ONLY_FOR_ARCHS =	amd64 arm64
+ONLY_FOR_ARCHS =	aarch64 amd64
 
 USE_WXNEEDED =	Yes
 
@@ -11,7 +9,7 @@ DISTNAME =	citra-unified-source-20240303
 
 V =		2104
 PKGNAME =	citra-0.0.0.${V}
-REVISION =	6
+REVISION =	7
 
 CATEGORIES =	emulators
 
@@ -22,12 +20,13 @@ PERMIT_PACKAGE =	Yes
 
 USE_NOBTCFI =	Yes
 
-WANTLIB += ${COMPILER_LIBCXX} GL Qt6Concurrent Qt6Core Qt6DBus
-WANTLIB += Qt6Gui Qt6Multimedia Qt6Network Qt6Widgets SDL2 SoundTouch
-WANTLIB += boost_chrono-mt boost_container-mt boost_iostreams-mt
-WANTLIB += boost_locale-mt boost_random-mt boost_regex-mt boost_serialization-mt
-WANTLIB += boost_thread-mt c crypto cryptopp enet
-WANTLIB += fmt m openal ssl usb-1.0 xkbcommon
+WANTLIB += ${COMPILER_LIBCXX} GL Qt6Concurrent Qt6Core Qt6DBus Qt6Gui
+WANTLIB += Qt6Multimedia Qt6Network Qt6Widgets SDL2 SoundTouch
+WANTLIB += boost_atomic-mt boost_charconv-mt boost_chrono-mt
+WANTLIB += boost_container-mt boost_date_time-mt boost_iostreams-mt
+WANTLIB += boost_locale-mt boost_random-mt boost_regex-mt
+WANTLIB += boost_serialization-mt boost_thread-mt c crypto cryptopp
+WANTLIB += enet fmt m openal ssl usb-1.0 xkbcommon
 
 # ffmpeg is loaded via dlopen(3) when dumping recorded gameplay video
 WANTLIB += avcodec avdevice avfilter avformat avutil swresample swscale
@@ -89,7 +88,7 @@ WRKDIST =		${WRKDIR}/${DISTNAME}
 
 CXXFLAGS +=		-I${LOCALBASE}/include
 
-ppost-extract:
+post-extract:
 	rm -r ${WRKSRC}/externals/cryptopp-cmake \
 		${WRKSRC}/externals/dynarmic/externals/catch/src/catch2 \
 		${WRKSRC}/externals/dynarmic/externals/fmt
Index: patches/patch-externals_dynarmic_externals_mcl_include_mcl_mp_typelist_lift_sequence_hpp
===================================================================
RCS file: patches/patch-externals_dynarmic_externals_mcl_include_mcl_mp_typelist_lift_sequence_hpp
diff -N patches/patch-externals_dynarmic_externals_mcl_include_mcl_mp_typelist_lift_sequence_hpp
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-externals_dynarmic_externals_mcl_include_mcl_mp_typelist_lift_sequence_hpp	11 Aug 2026 01:52:16 -0000
@@ -0,0 +1,16 @@
+- Fix building with LLVM 22
+
+Index: externals/dynarmic/externals/mcl/include/mcl/mp/typelist/lift_sequence.hpp
+--- externals/dynarmic/externals/mcl/include/mcl/mp/typelist/lift_sequence.hpp.orig
++++ externals/dynarmic/externals/mcl/include/mcl/mp/typelist/lift_sequence.hpp
+@@ -15,8 +15,8 @@ namespace detail {
+ template<class VL>
+ struct lift_sequence_impl;
+ 
+-template<class T, template<class, T...> class VLT, T... values>
+-struct lift_sequence_impl<VLT<T, values...>> {
++template<class T, T... values>
++struct lift_sequence_impl<std::integer_sequence<T, values...>> {
+     using type = list<std::integral_constant<T, values>...>;
+ };
+