Unverified Commit 570b5a67 authored by Vladimír Čunát's avatar Vladimír Čunát
Browse files

Merge #280675: virtualbox: fix build with libxml 2.12 + gcc 13

parents 43674533 13a6f426
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -101,6 +101,8 @@ in stdenv.mkDerivation {
    ./qt-dependency-paths.patch
    # https://github.com/NixOS/nixpkgs/issues/123851
    ./fix-audio-driver-loading.patch
    ./libxml-2.12.patch
    ./gcc-13.patch
  ];

  postPatch = ''
+35 −0
Original line number Diff line number Diff line
diff --git a/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp b/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp
index 8a9d15c0..260ebc5c 100644
--- a/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp
+++ b/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp
@@ -46,6 +46,9 @@
 #if defined(VBOX_VBGLR3_XFREE86)
 extern "C" {
 # define XFree86LOADER
+# ifdef RT_GNUC_PREREQ(13,0) /* cmath gets dragged in and the c++/13/cmath header is allergic to -ffreestanding.  */
+#  define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
+# endif
 # include <xf86_ansic.h>
 # undef size_t
 }
diff --git a/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp b/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp
index 2c5e9314..64890169 100644
--- a/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp
+++ b/src/libs/dxvk-native-1.9.2a/src/util/util_matrix.cpp
@@ -1,3 +1,5 @@
+#include <cstdint>
+
 #include "util_matrix.h"
 
 namespace dxvk {
diff --git a/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h b/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h
index 77cdf294..9dcb4bf9 100644
--- a/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h
+++ b/src/libs/dxvk-native-1.9.2a/src/util/util_vector.h
@@ -1,5 +1,6 @@
 #pragma once
 
+#include <cstdint>
 #include <iostream>
 
 #include "util_bit.h"
+47 −0
Original line number Diff line number Diff line
diff --git a/include/iprt/cpp/xml.h b/include/iprt/cpp/xml.h
index 40975e86..7639c281 100644
--- a/include/iprt/cpp/xml.h
+++ b/include/iprt/cpp/xml.h
@@ -113,9 +113,9 @@ public:
 class RT_DECL_CLASS XmlError : public RuntimeError
 {
 public:
-    XmlError(xmlErrorPtr aErr);
+    XmlError(const xmlError *aErr);
 
-    static char* Format(xmlErrorPtr aErr);
+    static char* Format(const xmlError *aErr);
 };
 
 // Logical errors
diff --git a/src/VBox/Runtime/r3/xml.cpp b/src/VBox/Runtime/r3/xml.cpp
index a6661760..b301a6c6 100644
--- a/src/VBox/Runtime/r3/xml.cpp
+++ b/src/VBox/Runtime/r3/xml.cpp
@@ -131,7 +131,7 @@ LogicError::LogicError(RT_SRC_POS_DECL)
     RTStrFree(msg);
 }
 
-XmlError::XmlError(xmlErrorPtr aErr)
+XmlError::XmlError(const xmlError *aErr)
 {
     if (!aErr)
         throw EInvalidArg(RT_SRC_POS);
@@ -145,7 +145,7 @@ XmlError::XmlError(xmlErrorPtr aErr)
  * Composes a single message for the given error. The caller must free the
  * returned string using RTStrFree() when no more necessary.
  */
-/* static */ char *XmlError::Format(xmlErrorPtr aErr)
+/* static */ char *XmlError::Format(const xmlError *aErr)
 {
     const char *msg = aErr->message ? aErr->message : "<none>";
     size_t msgLen = strlen(msg);
@@ -1856,7 +1856,7 @@ static void xmlParserBaseGenericError(void *pCtx, const char *pszMsg, ...) RT_NO
     va_end(args);
 }
 
-static void xmlParserBaseStructuredError(void *pCtx, xmlErrorPtr error) RT_NOTHROW_DEF
+static void xmlParserBaseStructuredError(void *pCtx, const xmlError *error) RT_NOTHROW_DEF
 {
     NOREF(pCtx);
     /* we expect that there is always a trailing NL */