git: 30ccf5784223 - main - emulators/rpcs3: unbreak on FreeBSD 12.2 via full libc++

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Tue, 30 Nov 2021 00:57:20 UTC
The branch main has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=30ccf5784223c05cc3b06b768b1dc4c57b596a15

commit 30ccf5784223c05cc3b06b768b1dc4c57b596a15
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2021-11-29 23:57:33 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2021-11-30 00:57:08 +0000

    emulators/rpcs3: unbreak on FreeBSD 12.2 via full libc++
    
    Link statically to avoid ABI mismatch with in-base libc++.
    Building libc++ requires full LLVM source, so align with devel/llvm12.
---
 emulators/rpcs3/Makefile | 14 ++++++++++----
 emulators/rpcs3/distinfo |  4 ++--
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/emulators/rpcs3/Makefile b/emulators/rpcs3/Makefile
index d42fc9f7729e..0f36939fa0f0 100644
--- a/emulators/rpcs3/Makefile
+++ b/emulators/rpcs3/Makefile
@@ -17,7 +17,6 @@ LIB_DEPENDS=	libcurl.so:ftp/curl \
 		libpng.so:graphics/png \
 		libavcodec.so:multimedia/ffmpeg
 
-BROKEN_FreeBSD_12=	ld: error: undefined symbol: std::__1::__cxx_atomic_notify_one
 ONLY_FOR_ARCHS=	amd64
 ONLY_FOR_ARCHS_REASON=	requires int128 and SSE2
 
@@ -101,9 +100,16 @@ CPP=		clang-cpp${LLVM_DEFAULT}
 # XXX Drop after FreeBSD 12.2 EOL
 .if make(makesum) || (!exists(/usr/include/c++/v1/__bits) && exists(/usr/lib/libc++.so))
 MASTER_SITES+=	https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}/:libcxx
-DISTFILES+=	libcxx-${LLVM_VER}.src.tar.xz:libcxx
-CXXFLAGS+=	-nostdinc++ -D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS -isystem${WRKDIR}/libcxx-${LLVM_VER}.src/include
-LLVM_VER=	12.0.0
+DISTFILES+=	llvm-project-${LLVM_VER}.src.tar.xz:libcxx
+CXXFLAGS+=	-nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1
+LDFLAGS+=	-nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt
+LLVM_VER=	12.0.1
+
+pre-configure:
+	@${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS:M*Ninja*} \
+		-DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \
+		-B ${WRKDIR}/libcxx_build -S ${WRKDIR}/llvm-project-${LLVM_VER}.src/libcxx
+	@${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build
 .endif
 
 .include <bsd.port.post.mk>
diff --git a/emulators/rpcs3/distinfo b/emulators/rpcs3/distinfo
index 24656d58d9d6..644e5ae02795 100644
--- a/emulators/rpcs3/distinfo
+++ b/emulators/rpcs3/distinfo
@@ -1,6 +1,6 @@
 TIMESTAMP = 1638053061
-SHA256 (libcxx-12.0.0.src.tar.xz) = 7dcb75ca4f6aae2c677d128460c48a57398c8b6791b77b74bea7cf9e04e7c3f1
-SIZE (libcxx-12.0.0.src.tar.xz) = 1880864
+SHA256 (llvm-project-12.0.1.src.tar.xz) = 129cb25cd13677aad951ce5c2deb0fe4afc1e9d98950f53b51bdcfb5a73afa0e
+SIZE (llvm-project-12.0.1.src.tar.xz) = 90910004
 SHA256 (RPCS3-rpcs3-v0.0.19-13056-g38bfefcdf_GH0.tar.gz) = a91a793f5a037f35963ba61182a537122ffa79c68affa374858d78d4dfe96a1f
 SIZE (RPCS3-rpcs3-v0.0.19-13056-g38bfefcdf_GH0.tar.gz) = 8163177
 SHA256 (RPCS3-hidapi-hidapi-0.8.0-rc1-125-g01f601a_GH0.tar.gz) = d6aecf7a9e4d6f4935f1da5fd29cb8011f76567c8e5b571b7410e2fa6942bf37