aboutsummaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2021-11-29 23:57:33 +0000
committerJan Beich <jbeich@FreeBSD.org>2021-12-04 00:50:34 +0000
commit811db80bddcfb83351a383d14ec5394f99981e9f (patch)
tree1bcbbf16b0bb195ead48fcaf9730a0cadb1d6225 /emulators
parent33931ecb9966cb17e29164c77c7168fb24d5a21b (diff)
downloadports-811db80bddcfb83351a383d14ec5394f99981e9f.tar.gz
ports-811db80bddcfb83351a383d14ec5394f99981e9f.zip
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. (cherry picked from commit 30ccf5784223c05cc3b06b768b1dc4c57b596a15)
Diffstat (limited to 'emulators')
-rw-r--r--emulators/rpcs3/Makefile14
-rw-r--r--emulators/rpcs3/distinfo4
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