diff --git a/debian/patches/fixes-for-gcc-13.patch b/debian/patches/fixes-for-gcc-13.patch new file mode 100644 index 0000000..1824d4a --- /dev/null +++ b/debian/patches/fixes-for-gcc-13.patch @@ -0,0 +1,105 @@ +Description: general: fixes for gcc 13 +Autor: Liam +Origin: https://github.com/yuzu-emu/yuzu-mainline/commit/a9623d5f550c8fc63f436a40f43bfbf539ac0853 +Date: Sun, 2 Apr 2023 19:02:04 -0400 + +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -126,6 +126,17 @@ else() + add_compile_options("-stdlib=libc++") + endif() + ++ # GCC bugs ++ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "12" AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") ++ # These diagnostics would be great if they worked, but are just completely broken ++ # and produce bogus errors on external libraries like fmt. ++ add_compile_options( ++ -Wno-array-bounds ++ -Wno-stringop-overread ++ -Wno-stringop-overflow ++ ) ++ endif() ++ + # Set file offset size to 64 bits. + # + # On modern Unixes, this is typically already the case. The lone exception is +--- a/src/common/intrusive_red_black_tree.h ++++ b/src/common/intrusive_red_black_tree.h +@@ -96,10 +96,6 @@ class IntrusiveRedBlackTreeImpl { + return m_node == rhs.m_node; + } + +- constexpr bool operator!=(const Iterator& rhs) const { +- return !(*this == rhs); +- } +- + constexpr pointer operator->() const { + return m_node; + } +@@ -324,10 +320,6 @@ class IntrusiveRedBlackTree { + return m_impl == rhs.m_impl; + } + +- constexpr bool operator!=(const Iterator& rhs) const { +- return !(*this == rhs); +- } +- + constexpr pointer operator->() const { + return Traits::GetParent(std::addressof(*m_impl)); + } +--- a/src/core/internal_network/socket_proxy.h ++++ b/src/core/internal_network/socket_proxy.h +@@ -16,9 +16,6 @@ namespace Network { + + class ProxySocket : public SocketBase { + public: +- YUZU_NON_COPYABLE(ProxySocket); +- YUZU_NON_MOVEABLE(ProxySocket); +- + explicit ProxySocket(RoomNetwork& room_network_) noexcept; + ~ProxySocket() override; + +--- a/src/core/internal_network/sockets.h ++++ b/src/core/internal_network/sockets.h +@@ -36,13 +36,10 @@ class SocketBase { + + SocketBase() = default; + explicit SocketBase(SOCKET fd_) : fd{fd_} {} +- + virtual ~SocketBase() = default; + +- virtual SocketBase& operator=(const SocketBase&) = delete; +- +- // Avoid closing sockets implicitly +- virtual SocketBase& operator=(SocketBase&&) noexcept = delete; ++ YUZU_NON_COPYABLE(SocketBase); ++ YUZU_NON_MOVEABLE(SocketBase); + + virtual Errno Initialize(Domain domain, Type type, Protocol protocol) = 0; + +@@ -109,14 +106,8 @@ class Socket : public SocketBase { + + ~Socket() override; + +- Socket(const Socket&) = delete; +- Socket& operator=(const Socket&) = delete; +- + Socket(Socket&& rhs) noexcept; + +- // Avoid closing sockets implicitly +- Socket& operator=(Socket&&) noexcept = delete; +- + Errno Initialize(Domain domain, Type type, Protocol protocol) override; + + Errno Close() override; +--- a/src/web_service/verify_login.cpp ++++ b/src/web_service/verify_login.cpp +@@ -21,7 +21,7 @@ bool VerifyLogin(const std::string& host, const std::string& username, const std + return username.empty(); + } + +- return username == *iter; ++ return *iter == username; + } + + } // namespace WebService diff --git a/debian/patches/series b/debian/patches/series index ffafdc2..01f8a05 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ +fixes-for-gcc-13.patch # Upstreamable patches cmake-mbedtls.patch #cmake-microprofile.patch