about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/virtualization/virtualbox
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/virtualization/virtualbox')
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/gcc-13.patch35
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/libxml-2.12.patch47
3 files changed, 84 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix b/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
index ebdf09fd8379..62109eac2700 100644
--- a/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
@@ -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 = ''
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/gcc-13.patch b/nixpkgs/pkgs/applications/virtualization/virtualbox/gcc-13.patch
new file mode 100644
index 000000000000..c06780299f95
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/gcc-13.patch
@@ -0,0 +1,35 @@
+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"
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/libxml-2.12.patch b/nixpkgs/pkgs/applications/virtualization/virtualbox/libxml-2.12.patch
new file mode 100644
index 000000000000..4631f304735c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/libxml-2.12.patch
@@ -0,0 +1,47 @@
+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 */