git: 59e9d5118dc6 - main - emulators/rpcs3: unbreak build with libc++ 19
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 30 Oct 2024 18:05:03 UTC
The branch main has been updated by jbeich:
URL: https://cgit.FreeBSD.org/ports/commit/?id=59e9d5118dc65497327518f97f252569c034f800
commit 59e9d5118dc65497327518f97f252569c034f800
Author: Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2024-10-28 10:45:23 +0000
Commit: Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2024-10-30 18:03:38 +0000
emulators/rpcs3: unbreak build with libc++ 19
In file included from rpcs3/Emu/cache_utils.cpp:1:
In file included from rpcs3/stdafx.h:3:
In file included from rpcs3/util/types.hpp:8:
In file included from /usr/include/c++/v1/chrono:969:
In file included from /usr/include/c++/v1/__chrono/formatter.h:25:
In file included from /usr/include/c++/v1/__chrono/ostream.h:33:
In file included from /usr/include/c++/v1/__format/format_functions.h:19:
In file included from /usr/include/c++/v1/__format/format_arg_store.h:25:
/usr/include/c++/v1/string:820:42: error: implicit instantiation of undefined template 'std::char_traits<unsigned int>'
static_assert(is_same<_CharT, typename traits_type::char_type>::value,
^
rpcs3/Emu/Cell/PPUAnalyser.h:184:25: note: in instantiation of template class 'std::basic_string<unsigned int>' requested here
std::basic_string<u32> applied_patches;
^
/usr/include/c++/v1/__fwd/string.h:23:29: note: template is declared here
struct _LIBCPP_TEMPLATE_VIS char_traits;
^
Reported by: pkg-fallout
---
emulators/rpcs3/Makefile | 17 +++++++++++++++++
emulators/rpcs3/distinfo | 2 ++
2 files changed, 19 insertions(+)
diff --git a/emulators/rpcs3/Makefile b/emulators/rpcs3/Makefile
index 952ed67842b7..70eabfc5093f 100644
--- a/emulators/rpcs3/Makefile
+++ b/emulators/rpcs3/Makefile
@@ -97,4 +97,21 @@ post-patch:
-e '/GIT_VERSION/s/local_build/${GH_TAGNAME:C/[^-]*-//}/' \
${WRKSRC}/${PORTNAME}/git-version.cmake
+# https://github.com/RPCS3/rpcs3/issues/16259 (don't forget distinfo)
+.if exists(/usr/include/c++/v1/__thread/support.h)
+# XXX Move into separate port and standardize via USES
+GH_TUPLE+= llvm:llvm-project:llvmorg-18.1.8:libcxx
+CXXFLAGS+= -nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1
+# Don't link against new libc++ as it's not necessary
+#LDFLAGS+= -nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt
+
+pre-configure: bundled-libcxx
+bundled-libcxx:
+ @${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \
+ -DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \
+ -DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \
+ -B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx
+ @${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build
+.endif # exists(/usr/include/c++/v1/__thread/support.h)
+
.include <bsd.port.mk>
diff --git a/emulators/rpcs3/distinfo b/emulators/rpcs3/distinfo
index a0c9de72f4bd..cdf31e3819e9 100644
--- a/emulators/rpcs3/distinfo
+++ b/emulators/rpcs3/distinfo
@@ -29,3 +29,5 @@ SHA256 (wolfSSL-wolfssl-v5.7.2-stable_GH0.tar.gz) = 0f2ed82e345b833242705bbc4b08
SIZE (wolfSSL-wolfssl-v5.7.2-stable_GH0.tar.gz) = 23591507
SHA256 (thestk-rtmidi-6.0.0_GH0.tar.gz) = ef7bcda27fee6936b651c29ebe9544c74959d0b1583b716ce80a1c6fea7617f0
SIZE (thestk-rtmidi-6.0.0_GH0.tar.gz) = 515502
+SHA256 (llvm-llvm-project-llvmorg-18.1.8_GH0.tar.gz) = 09c08693a9afd6236f27a2ebae62cda656eba19021ef3f94d59e931d662d4856
+SIZE (llvm-llvm-project-llvmorg-18.1.8_GH0.tar.gz) = 205562783