Index: head/emulators/rpcs3/Makefile =================================================================== --- head/emulators/rpcs3/Makefile (revision 514201) +++ head/emulators/rpcs3/Makefile (revision 514202) @@ -1,92 +1,93 @@ # $FreeBSD$ PORTNAME= rpcs3 DISTVERSIONPREFIX= v -DISTVERSION= 0.0.7-8838 # git rev-list --count HEAD -DISTVERSIONSUFFIX= -g36de3d4f4 +DISTVERSION= 0.0.7-8852 # git rev-list --count HEAD +DISTVERSIONSUFFIX= -ge9ea226e3 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_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-27-g9220f5e:hidapi/3rdparty/hidapi \ RPCS3:llvm:b860b5e8f4ee:llvm/llvm \ Cyan4973:xxHash:v0.6.5:xxHash/3rdparty/xxHash \ jbeder:yaml-cpp:yaml-cpp-0.6.2-23-geca9cfd:yamlcpp/3rdparty/yaml-cpp \ kobalicek:asmjit:fc251c9:asmjit/asmjit \ KhronosGroup:glslang:7.11.3214:glslang/Vulkan/glslang \ Microsoft:GSL:v2.0.0:GSL/3rdparty/GSL \ USCiLab:cereal:v1.2.0:cereal/3rdparty/cereal \ zeux:pugixml:v1.9-51-g8bf806c:pugixml/3rdparty/pugixml USES= cmake 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 declarative gui network widgets USE_XORG= x11 CMAKE_ON= CMAKE_SKIP_RPATH USE_SYSTEM_FFMPEG USE_SYSTEM_LIBPNG CMAKE_OFF= USE_NATIVE_INSTRUCTIONS LDFLAGS+= -Wl,--as-needed # GLU # XXX Drop after FreeBSD 12.0 EOL .if exists(/usr/lib/clang/6.0.1) LLD_UNSAFE= yes # XXX ports/219089 .endif # XXX Remove after FreeBSD 11.2/12.0 reach EOL i.e., around 2020-02-01 # XXX Switch to bundled libc++ to avoid error-prone reverts .if !exists(/usr/include/c++/v1/charconv) && exists(/usr/lib/libc++.so) +EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-revert-6b1e1e402049 EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-revert-9710473a2e3e EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-revert-f9ad6358563b EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-revert-4504ac2d1248 EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-revert-5bd17a44c972 .endif OPTIONS_DEFINE= ALSA EVDEV GDB LLVM PULSEAUDIO VULKAN OPTIONS_DEFAULT=LLVM VULKAN 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_BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto EVDEV_LIB_DEPENDS= libevdev.so:devel/libevdev GDB_DESC= GDB remote stub (powerpc64 target) GDB_CMAKE_BOOL= WITH_GDB GDB_BROKEN= https://github.com/RPCS3/rpcs3/issues/5946 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_BUILD_DEPENDS= ${LOCALBASE}/include/vulkan/vulkan.h:devel/vulkan-headers VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader VULKAN_CMAKE_BOOL= USE_VULKAN post-patch: @${REINPLACE_CMD} -e '/GIT_BRANCH/s/unknown/master/' \ -e '/GIT_TAG/s/unknown/${GH_TAGNAME:C/-.*//}/' \ -e '/GIT_VERSION/s/unknown/${GH_TAGNAME:C/[^-]*-//}/' \ ${WRKSRC}/${PORTNAME}/git-version.cmake .include Index: head/emulators/rpcs3/distinfo =================================================================== --- head/emulators/rpcs3/distinfo (revision 514201) +++ head/emulators/rpcs3/distinfo (revision 514202) @@ -1,21 +1,21 @@ -TIMESTAMP = 1570492353 -SHA256 (RPCS3-rpcs3-v0.0.7-8838-g36de3d4f4_GH0.tar.gz) = a1f6cfc24abd2f4c9cd44dd2968853e5ac742a428bf4c6ab7f9a6508890a36b2 -SIZE (RPCS3-rpcs3-v0.0.7-8838-g36de3d4f4_GH0.tar.gz) = 5602936 +TIMESTAMP = 1570645283 +SHA256 (RPCS3-rpcs3-v0.0.7-8852-ge9ea226e3_GH0.tar.gz) = 328558000c4ab2be09ba3ca2d2acdf168056cce8dfeac5fe4bdfe5f22f049d7e +SIZE (RPCS3-rpcs3-v0.0.7-8852-ge9ea226e3_GH0.tar.gz) = 5604491 SHA256 (RPCS3-hidapi-hidapi-0.8.0-rc1-27-g9220f5e_GH0.tar.gz) = 3120e0b701943f452760e45f9fc1ac50bab356ad4c807b4cac4598041c5ca1a5 SIZE (RPCS3-hidapi-hidapi-0.8.0-rc1-27-g9220f5e_GH0.tar.gz) = 105400 SHA256 (RPCS3-llvm-b860b5e8f4ee_GH0.tar.gz) = c151972a0c8ceac568c24b61e63d2ecbdac0f125185e23fc2238e0a14048256e SIZE (RPCS3-llvm-b860b5e8f4ee_GH0.tar.gz) = 47286737 SHA256 (Cyan4973-xxHash-v0.6.5_GH0.tar.gz) = 19030315f4fc1b4b2cdb9d7a317069a109f90e39d1fe4c9159b7aaa39030eb95 SIZE (Cyan4973-xxHash-v0.6.5_GH0.tar.gz) = 37521 SHA256 (jbeder-yaml-cpp-yaml-cpp-0.6.2-23-geca9cfd_GH0.tar.gz) = 554f6fac1d9524f807345f95ba9223332c644e56d7a7fdb2bcea1f5793b764fa SIZE (jbeder-yaml-cpp-yaml-cpp-0.6.2-23-geca9cfd_GH0.tar.gz) = 1397220 SHA256 (kobalicek-asmjit-fc251c9_GH0.tar.gz) = 0fb6271fccf8ee86d27affda7e27a6d655bfabfda83a7dd0d41f7fd05b384aad SIZE (kobalicek-asmjit-fc251c9_GH0.tar.gz) = 446910 SHA256 (KhronosGroup-glslang-7.11.3214_GH0.tar.gz) = b30b4668734328d256e30c94037e60d3775b1055743c04d8fd709f2960f302a9 SIZE (KhronosGroup-glslang-7.11.3214_GH0.tar.gz) = 2841979 SHA256 (Microsoft-GSL-v2.0.0_GH0.tar.gz) = 6cce6fb16b651e62711a4f58e484931013c33979b795d1b1f7646f640cfa9c8e SIZE (Microsoft-GSL-v2.0.0_GH0.tar.gz) = 64726 SHA256 (USCiLab-cereal-v1.2.0_GH0.tar.gz) = 1ccf3ed205a7a2f0d6a060415b123f1ae0d984cd4435db01af8de11a2eda49c1 SIZE (USCiLab-cereal-v1.2.0_GH0.tar.gz) = 299883 SHA256 (zeux-pugixml-v1.9-51-g8bf806c_GH0.tar.gz) = 37bed90f3dadb642acca41508391d1409a75af05f34f13da56c866d5c3c4b00d SIZE (zeux-pugixml-v1.9-51-g8bf806c_GH0.tar.gz) = 560956 Index: head/emulators/rpcs3/files/extra-patch-revert-6b1e1e402049 =================================================================== --- head/emulators/rpcs3/files/extra-patch-revert-6b1e1e402049 (nonexistent) +++ head/emulators/rpcs3/files/extra-patch-revert-6b1e1e402049 (revision 514202) @@ -0,0 +1,188 @@ +rpcs3/Emu/GDB.cpp:33:10: fatal error: 'charconv' file not found +#include + ^~~~~~~~~~ + +--- rpcs3/Emu/GDB.cpp.orig 2019-10-09 18:21:23 UTC ++++ rpcs3/Emu/GDB.cpp +@@ -2,7 +2,7 @@ + + #include "GDB.h" + #include "Utilities/Log.h" +-#include "Utilities/StrUtil.h" ++#include + #include "Emu/Memory/vm.h" + #include "Emu/System.h" + #include "Emu/IdManager.h" +@@ -14,24 +14,17 @@ + #ifdef _WIN32 + #include + #include +-#include // sockaddr_un + #else + #include + #include + #include + #include + #include +-#include + #include + #include + #include +-#include // sockaddr_un + #endif + +-#include +-#include +-#include +- + extern void ppu_set_breakpoint(u32 addr); + extern void ppu_remove_breakpoint(u32 addr); + +@@ -43,22 +36,10 @@ int closesocket(int s) + return close(s); + } + +-void set_nonblocking(int s) +-{ +- fcntl(s, F_SETFL, fcntl(s, F_GETFL) | O_NONBLOCK); +-} +- + #define sscanf_s sscanf + #define HEX_U32 "x" + #define HEX_U64 "lx" + #else +- +-void set_nonblocking(int s) +-{ +- u_long mode = 1; +- ioctlsocket(s, FIONBIO, &mode); +-} +- + #define HEX_U32 "lx" + #define HEX_U64 "llx" + #endif +@@ -122,93 +103,46 @@ u64 hex_to_u64(std::string val) { + + void gdb_thread::start_server() + { +- // IPv4 address:port in format 127.0.0.1:2345 +- static const std::regex ipv4_regex("^([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3})\\:([0-9]{1,5})$"); ++ server_socket = socket(AF_INET, SOCK_STREAM, 0); + +- if (g_cfg.misc.gdb_server.get()[0] == '\0') ++ if (server_socket == -1) + { +- // Empty string or starts with null: GDB server disabled +- GDB.notice("GDB Server is disabled."); ++ GDB.error("Error creating server socket."); + return; + } + +- // Try to detect socket type +- std::smatch match; +- +- if (std::regex_match(g_cfg.misc.gdb_server.get(), match, ipv4_regex)) ++#ifdef WIN32 + { +- struct addrinfo hints{}; +- struct addrinfo* info; +- hints.ai_flags = AI_PASSIVE; +- hints.ai_socktype = SOCK_STREAM; +- +- std::string bind_addr = match[1].str(); +- std::string bind_port = match[2].str(); +- +- if (getaddrinfo(bind_addr.c_str(), bind_port.c_str(), &hints, &info) == 0) +- { +- server_socket = socket(info->ai_family, info->ai_socktype, info->ai_protocol); +- +- if (server_socket == -1) +- { +- GDB.error("Error creating IP socket for '%s'.", g_cfg.misc.gdb_server.get()); +- freeaddrinfo(info); +- return; +- } +- +- set_nonblocking(server_socket); +- +- if (bind(server_socket, info->ai_addr, static_cast(info->ai_addrlen)) != 0) +- { +- GDB.error("Failed to bind socket on '%s'.", g_cfg.misc.gdb_server.get()); +- freeaddrinfo(info); +- return; +- } +- +- freeaddrinfo(info); +- +- if (listen(server_socket, 1) != 0) +- { +- GDB.error("Failed to listen on '%s'.", g_cfg.misc.gdb_server.get()); +- return; +- } +- +- GDB.notice("Started listening on '%s'.", g_cfg.misc.gdb_server.get()); +- return; +- } ++ int mode = 1; ++ ioctlsocket(server_socket, FIONBIO, (u_long FAR *)&mode); + } ++#else ++ fcntl(server_socket, F_SETFL, fcntl(server_socket, F_GETFL) | O_NONBLOCK); ++#endif + +- // Fallback to UNIX socket +- server_socket = socket(AF_UNIX, SOCK_STREAM, 0); ++ int err; + +- if (server_socket == -1) +- { +- GDB.error("Failed to create Unix socket. Possibly unsupported."); +- return; +- } ++ sockaddr_in server_saddr; ++ server_saddr.sin_family = AF_INET; ++ int port = 2345; ++ server_saddr.sin_port = htons(port); ++ server_saddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + +- // Delete existing socket (TODO?) +- fs::remove_file(g_cfg.misc.gdb_server.get()); +- +- set_nonblocking(server_socket); +- +- sockaddr_un unix_saddr; +- unix_saddr.sun_family = AF_UNIX; +- strcpy_trunc(unix_saddr.sun_path, g_cfg.misc.gdb_server.get()); +- +- if (bind(server_socket, (struct sockaddr*) &unix_saddr, sizeof(unix_saddr)) != 0) ++ err = bind(server_socket, (struct sockaddr *) &server_saddr, sizeof(server_saddr)); ++ if (err == -1) + { +- GDB.error("Failed to bind Unix socket '%s'.", g_cfg.misc.gdb_server.get()); ++ GDB.error("Error binding to port %d.", port); + return; + } + +- if (listen(server_socket, 1) != 0) ++ err = listen(server_socket, 1); ++ if (err == -1) + { +- GDB.error("Failed to listen on Unix socket '%s'.", g_cfg.misc.gdb_server.get()); ++ GDB.error("Error listening on port %d.", port); + return; + } + +- GDB.notice("Started listening on Unix socket '%s'.", g_cfg.misc.gdb_server.get()); ++ GDB.notice("Started listening on port %d.", port); + } + + int gdb_thread::read(void* buf, int cnt) +@@ -852,7 +786,7 @@ void gdb_thread::operator()() + { + start_server(); + +- while (server_socket != -1 && !Emu.IsStopped()) ++ while (!Emu.IsStopped()) + { + sockaddr_in client; + socklen_t client_len = sizeof(client); Property changes on: head/emulators/rpcs3/files/extra-patch-revert-6b1e1e402049 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property