Index: branches/2018Q3/emulators/rpcs3/Makefile =================================================================== --- branches/2018Q3/emulators/rpcs3/Makefile (revision 478309) +++ branches/2018Q3/emulators/rpcs3/Makefile (revision 478310) @@ -1,81 +1,84 @@ # $FreeBSD$ PORTNAME= rpcs3 DISTVERSIONPREFIX= v DISTVERSION= 0.0.5-794 DISTVERSIONSUFFIX= -g23f5cee65 CATEGORIES= emulators MAINTAINER= jbeich@FreeBSD.org COMMENT= PS3 emulator/debugger LICENSE= BSD3CLAUSE BSL GPLv2 MIT ZLIB LICENSE_COMB= multi LICENSE_FILE_BSD3CLAUSE=${WRKSRC_cereal}/LICENSE LICENSE_FILE_BSL= ${WRKSRC_Optional}/LICENSE LICENSE_FILE_MIT= ${WRKSRC_GSL}/LICENSE LICENSE_FILE_ZLIB= ${WRKSRC_asmjit}/LICENSE.md LIB_DEPENDS= libpng.so:graphics/png \ libavcodec.so:multimedia/ffmpeg ONLY_FOR_ARCHS= amd64 ONLY_FOR_ARCHS_REASON= requires int128 and SSE2 USE_GITHUB= yes GH_ACCOUNT= RPCS3 GH_TUPLE= RPCS3:hidapi:hidapi-0.8.0-rc1-26-g4c27501:hidapi/3rdparty/hidapi \ RPCS3:llvm:be9f7bfe2068:llvm/llvm \ akrzemi1:Optional:f27e790:Optional/3rdparty/Optional \ Cyan4973:xxHash:v0.6.5:xxHash/3rdparty/xxHash \ jbeder:yaml-cpp:yaml-cpp-0.6.2-8-gc90c08c:yamlcpp/3rdparty/yaml-cpp \ kobalicek:asmjit:673dcef:asmjit/asmjit \ KhronosGroup:glslang:5.1-184-gc99304c5:glslang/Vulkan/glslang \ Microsoft:GSL:v2.0.0:GSL/3rdparty/GSL \ USCiLab:cereal:v1.2.0:cereal/3rdparty/cereal \ zeux:pugixml:v1.9:pugixml/3rdparty/pugixml USES= cmake:outsource compiler:c++17-lang iconv:wchar_t localbase:ldflags \ openal:soft pkgconfig qt:5 USE_GL= gl glew USE_QT= qmake_build buildtools_build core dbus gui network widgets qml USE_XORG= x11 CMAKE_ON= CMAKE_SKIP_RPATH USE_SYSTEM_FFMPEG USE_SYSTEM_LIBPNG CMAKE_OFF= USE_NATIVE_INSTRUCTIONS +EXTRA_PATCHES+= ${EXTRA_PATCHES_${COMPILER_FEATURES:Mlib*}_${OPSYS}_${OSREL}} +EXTRA_PATCHES_libc++_FreeBSD_10.4= ${PATCHDIR}/extra-patch-c++14 +EXTRA_PATCHES_libc++_FreeBSD_11.1= ${PATCHDIR}/extra-patch-c++14 CXXFLAGS+= -D_GLIBCXX_USE_C99 # XXX ports/193528 CXXFLAGS+= -Wno-macro-redefined # __STDC_*_MACROS sys/cdefs.h vs. llvm-config LDFLAGS+= -Wl,--as-needed # GLU OPTIONS_DEFINE= ALSA EVDEV GDB LLVM PULSEAUDIO VULKAN OPTIONS_DEFAULT=ALSA LLVM VULKAN .if !exists(${.CURDIR:H:H}/graphics/vulkan-sdk) OPTIONS_EXCLUDE=VULKAN # XXX ports/222175 .endif ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins ALSA_CMAKE_BOOL= USE_ALSA EVDEV_DESC= libevdev-based joystick support EVDEV_CMAKE_BOOL= USE_LIBEVDEV EVDEV_LIB_DEPENDS= libevdev.so:devel/libevdev GDB_DESC= GDB remote stub (powerpc64 target) GDB_CMAKE_BOOL= WITH_GDB LLVM_DESC= LLVM-based PPU recompiler LLVM_CMAKE_BOOL_OFF= WITHOUT_LLVM PULSEAUDIO_LIB_DEPENDS= libpulse-simple.so:audio/pulseaudio PULSEAUDIO_CMAKE_BOOL= USE_PULSE VULKAN_DESC= Vulkan renderer VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-sdk VULKAN_CMAKE_BOOL= USE_VULKAN post-patch: @${REINPLACE_CMD} -e '/GIT_BRANCH/s/unknown/master/' \ -e '/GIT_VERSION/s/unknown/${GH_TAGNAME:C/[^-]*-//}/' \ ${WRKSRC}/${PORTNAME}/git-version.cmake .include Index: branches/2018Q3/emulators/rpcs3/files/extra-patch-c++14 =================================================================== --- branches/2018Q3/emulators/rpcs3/files/extra-patch-c++14 (nonexistent) +++ branches/2018Q3/emulators/rpcs3/files/extra-patch-c++14 (revision 478310) @@ -0,0 +1,104 @@ +Downgrade to C++14 as libc++ < 5 doesn't support std::byte + +--- Utilities/BEType.h.orig 2018-08-27 18:53:45 UTC ++++ Utilities/BEType.h +@@ -334,10 +334,14 @@ inline v128 operator~(const v128& other) + template + struct se_storage + { ++#if __cplusplus < 201703L ++ using type = std::aligned_storage_t; ++#else + struct type + { + alignas(Align) std::byte data[Size]; + }; ++#endif + + // Unoptimized generic byteswap for unaligned data + static void reverse(u8* dst, const u8* src) +--- Utilities/types.h.orig 2018-08-27 18:53:45 UTC ++++ Utilities/types.h +@@ -91,7 +91,11 @@ using steady_clock = std::conditional< + + namespace gsl + { ++#if __cplusplus < 201703L ++ enum class byte : u8; ++#else + using std::byte; ++#endif + } + + // Formatting helper, type-specific preprocessing for improving safety and functionality +@@ -120,6 +124,8 @@ class atomic_t; + + #if defined(__INTELLISENSE__) && !defined(_MSC_VER) + namespace std { template using void_t = void; } ++#elif defined(_LIBCPP_VERSION) && __cplusplus < 201703L ++namespace std { template using void_t = void; } + #endif + + // Extract T::simple_type if available, remove cv qualifiers +@@ -770,7 +776,11 @@ struct value_hash + template