├── 6.1.26 ├── Config.patch ├── DevVGA-SVGA3d-glLdr.patch ├── VBoxDTraceLibCWrappers.patch ├── os_Linux_x86_64.patch └── undefined_xfree86.patch ├── 6.1.30 ├── Config.patch ├── DevVGA-SVGA3d-glLdr.patch ├── VBoxDTraceLibCWrappers.patch ├── os_Linux_x86_64.patch └── undefined_xfree86.patch ├── AFL.kmk └── README.md /6.1.26/Config.patch: -------------------------------------------------------------------------------- 1 | --- VirtualBox-6.1.26-orig/Config.kmk 2021-08-09 15:08:10.133808782 +0200 2 | +++ VirtualBox-6.1.26/Config.kmk 2021-08-09 15:11:07.617635767 +0200 3 | @@ -5,7 +5,7 @@ 4 | # This file gets included by all makefiles through the 5 | # include $(KBUILD_PATH)/header.kmk statement. 6 | # 7 | - 8 | +KBUILD_VERBOSE=4 9 | # 10 | # Copyright (C) 2006-2020 Oracle Corporation 11 | # 12 | @@ -1596,12 +1596,12 @@ 13 | TOOL_GXX3PLAIN_LD_SYSMOD ?= /usr/ccs/bin/ld 14 | endif 15 | else 16 | - VBOX_GCC_TOOL := GXX3 17 | + VBOX_GCC_TOOL := AFL 18 | ifeq ($(KBUILD_TARGET_ARCH).$(KBUILD_HOST_ARCH),x86.amd64) ## @todo mixing target/host here! 19 | - VBOX_GCC_TOOL := GXX32 20 | + VBOX_GCC_TOOL := AFL 21 | VBOX_WITH_VBOXDRV= 22 | else ifeq ($(KBUILD_TARGET_ARCH).$(KBUILD_HOST_ARCH),amd64.x86) 23 | - VBOX_GCC_TOOL := GXX64 24 | + VBOX_GCC_TOOL := AFL 25 | VBOX_WITH_VBOXDRV= 26 | endif 27 | endif 28 | @@ -1644,7 +1644,7 @@ 29 | # Default too nonsense. 30 | # 31 | ## @todo Remove the default tool crap here! 32 | -TOOL = $(VBOX_GCC_TOOL) 33 | +TOOL = AFL 34 | TOOL.win.x86 = $(VBOX_VCC_TOOL_STEM)X86 35 | TOOL.win.amd64 = $(VBOX_VCC_TOOL_STEM)AMD64 36 | ASTOOL = $(VBOX_ASTOOL) 37 | @@ -4493,7 +4493,7 @@ 38 | endif # pe 39 | 40 | ifeq ($(VBOX_LDR_FMT),elf) 41 | -TEMPLATE_VBoxR0_TOOL = $(VBOX_GCC_TOOL) 42 | +TEMPLATE_VBoxR0_TOOL = GXX64 # Super important, otherwise you can't load R0 modules 43 | TEMPLATE_VBoxR0_CFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) \ 44 | $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions \ 45 | $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK) 46 | @@ -5183,7 +5183,7 @@ 47 | endif 48 | 49 | else # the gcc guys 50 | -TEMPLATE_VBOXR3EXE_TOOL = $(VBOX_GCC_TOOL) 51 | +TEMPLATE_VBOXR3EXE_TOOL = AFL 52 | if $(VBOX_GCC_VERSION_CC) < 30400 53 | TEMPLATE_VBOXR3EXE_DEFS += RT_WITHOUT_PRAGMA_ONCE 54 | endif 55 | @@ -5499,7 +5499,7 @@ 56 | TEMPLATE_VBoxR3StaticNonPedantic_CXXFLAGS = $(TEMPLATE_VBoxR3Static_CXXFLAGS) $(VBOX_VCC_NON_PEDANTIC) 57 | TEMPLATE_VBoxR3StaticNonPedantic_PCHFLAGS = $(TEMPLATE_VBoxR3Static_PCHFLAGS) $(VBOX_VCC_NON_PEDANTIC) 58 | else # gcc: 59 | - TEMPLATE_VBoxR3StaticNonPedantic_TOOL = $(VBOX_GCC_TOOL) 60 | + TEMPLATE_VBoxR3StaticNonPedantic_TOOL = AFL 61 | TEMPLATE_VBoxR3StaticNonPedantic_CFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_C) ,$(TEMPLATE_VBoxR3Static_CFLAGS)) \ 62 | $(VBOX_GCC_NON_PEDANTIC_CXX) 63 | TEMPLATE_VBoxR3StaticNonPedantic_CXXFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_CXX),$(TEMPLATE_VBoxR3Static_CXXFLAGS)) \ 64 | @@ -5743,7 +5743,7 @@ 65 | TEMPLATE_VBOXR3TSTNPEXE = VBox Ring 3 Testcase Exe Non-pedantic 66 | TEMPLATE_VBOXR3TSTNPEXE_EXTENDS = VBOXR3TSTEXE 67 | ifneq ($(KBUILD_TARGET),win) # (only gcc) 68 | - TEMPLATE_VBOXR3TSTNPEXE_TOOL = $(VBOX_GCC_TOOL) 69 | + TEMPLATE_VBOXR3TSTNPEXE_TOOL = AFL 70 | TEMPLATE_VBOXR3TSTNPEXE_CFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_C) ,$(TEMPLATE_VBOXR3TSTEXE_CFLAGS)) \ 71 | -Wno-sign-compare 72 | TEMPLATE_VBOXR3TSTNPEXE_CXXFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_CXX),$(TEMPLATE_VBOXR3TSTEXE_CXXFLAGS)) \ 73 | @@ -5784,7 +5784,7 @@ 74 | TEMPLATE_VBOXR3NPEXE = VBox Ring 3 Non-pedantic 75 | TEMPLATE_VBOXR3NPEXE_EXTENDS = VBOXR3EXE 76 | ifneq ($(KBUILD_TARGET),win) # (only gcc) 77 | - TEMPLATE_VBOXR3NPEXE_TOOL = $(VBOX_GCC_TOOL) 78 | + TEMPLATE_VBOXR3NPEXE_TOOL = AFL 79 | TEMPLATE_VBOXR3NPEXE_CFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_C) ,$(TEMPLATE_VBOXR3EXE_CFLAGS)) \ 80 | $(VBOX_GCC_NON_PEDANTIC_C) 81 | TEMPLATE_VBOXR3NPEXE_CXXFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_CXX),$(TEMPLATE_VBOXR3EXE_CXXFLAGS)) \ 82 | @@ -5803,7 +5803,7 @@ 83 | TEMPLATE_VBOXR3NP = VBox Ring 3 Non-pedantic 84 | TEMPLATE_VBOXR3NP_EXTENDS = VBOXR3 85 | ifneq ($(KBUILD_TARGET),win) # (only gcc) 86 | - TEMPLATE_VBOXR3NP_TOOL = $(VBOX_GCC_TOOL) 87 | + TEMPLATE_VBOXR3NP_TOOL = AFL 88 | TEMPLATE_VBOXR3NP_CFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_C) ,$(TEMPLATE_VBOXR3_CFLAGS)) \ 89 | $(VBOX_GCC_NON_PEDANTIC_C) 90 | TEMPLATE_VBOXR3NP_CXXFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_CXX),$(TEMPLATE_VBOXR3_CXXFLAGS)) \ 91 | @@ -5826,7 +5826,7 @@ 92 | TEMPLATE_VBoxR3DllNonPedantic_CXXFLAGS = $(TEMPLATE_VBOXR3_CXXFLAGS) $(VBOX_VCC_NON_PEDANTIC) 93 | TEMPLATE_VBoxR3DllNonPedantic_PCHFLAGS = $(TEMPLATE_VBOXR3_PCHFLAGS) $(VBOX_VCC_NON_PEDANTIC) 94 | else # gcc: 95 | - TEMPLATE_VBoxR3DllNonPedantic_TOOL = $(VBOX_GCC_TOOL) 96 | + TEMPLATE_VBoxR3DllNonPedantic_TOOL = AFL 97 | TEMPLATE_VBoxR3DllNonPedantic_CFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_C) ,$(TEMPLATE_VBOXR3_CFLAGS)) \ 98 | $(VBOX_GCC_NON_PEDANTIC_C) 99 | TEMPLATE_VBoxR3DllNonPedantic_CXXFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_CXX),$(TEMPLATE_VBOXR3_CXXFLAGS)) \ 100 | @@ -5965,7 +5965,7 @@ 101 | else 102 | # Use the default GCC. 103 | # The use of --exclude-libs ALL is to avoid confusing the linux ld.so. 104 | - TEMPLATE_VBoxNoCrtGccLib_TOOL = $(VBOX_GCC_TOOL) 105 | + TEMPLATE_VBoxNoCrtGccLib_TOOL = AFL 106 | if $(VBOX_GCC_VERSION_CC) < 30400 107 | TEMPLATE_VBoxNoCrtGccLib_DEFS += RT_WITHOUT_PRAGMA_ONCE 108 | endif 109 | @@ -6087,7 +6087,7 @@ 110 | 111 | else # the GCC guys: 112 | 113 | -TEMPLATE_VBOXMAINEXE_TOOL = $(VBOX_GCC_TOOL) 114 | +TEMPLATE_VBOXMAINEXE_TOOL = AFL 115 | if $(VBOX_GCC_VERSION_CC) < 30400 116 | TEMPLATE_VBOXMAINEXE_DEFS += RT_WITHOUT_PRAGMA_ONCE 117 | endif 118 | @@ -6674,7 +6674,7 @@ 119 | TEMPLATE_VBOXQTGUIEXE_POST_CMDS = $(VBOX_SIGN_IMAGE_CMDS) 120 | 121 | else # the gcc guys: 122 | - TEMPLATE_VBOXQTGUIEXE_TOOL = $(VBOX_GCC_TOOL) 123 | + TEMPLATE_VBOXQTGUIEXE_TOOL = AFL 124 | if $(VBOX_GCC_VERSION_CC) < 30400 125 | TEMPLATE_VBOXQTGUIEXE_DEFS += RT_WITHOUT_PRAGMA_ONCE 126 | endif 127 | @@ -6916,7 +6916,7 @@ 128 | 129 | else 130 | # (gcc of some kind ) 131 | -TEMPLATE_VBoxBldProg_TOOL = GXX3 132 | +TEMPLATE_VBoxBldProg_TOOL = AFL 133 | if $(VBOX_GCC_VERSION_CC) < 30400 134 | TEMPLATE_VBoxBldProg_DEFS += RT_WITHOUT_PRAGMA_ONCE 135 | endif 136 | -------------------------------------------------------------------------------- /6.1.26/DevVGA-SVGA3d-glLdr.patch: -------------------------------------------------------------------------------- 1 | --- VirtualBox-6.1.26-orig/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp 2021-08-09 15:08:10.729808127 +0200 2 | +++ VirtualBox-6.1.26/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp 2021-08-09 15:11:07.741635660 +0200 3 | @@ -297,6 +297,7 @@ 4 | GLGETPROC_(wglMakeCurrent, ""); 5 | GLGETPROC_(wglShareLists, ""); 6 | #elif defined(RT_OS_LINUX) 7 | + /* 8 | X11GETPROC_(XConfigureWindow); 9 | X11GETPROC_(XCloseDisplay); 10 | X11GETPROC_(XCreateColormap); 11 | @@ -325,7 +326,125 @@ 12 | GLGETPROC_(glXMakeCurrent, ""); 13 | GLGETPROC_(glXDestroyContext, ""); 14 | GLGETPROC_(glXDestroyPixmap, ""); 15 | + */ 16 | + // X11GETPROC_(XConfigureWindow); 17 | + pfn_XConfigureWindow = (int (*)(Display *display, Window w, unsigned value_mask, XWindowChanges *changes)) MyX11GetProcAddress("XConfigureWindow"); 18 | + if (!pfn_XConfigureWindow) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 19 | + 20 | + // X11GETPROC_(XCloseDisplay); 21 | + pfn_XCloseDisplay = (int (*)(Display *display)) MyX11GetProcAddress("XCloseDisplay"); 22 | + if (!pfn_XCloseDisplay) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 23 | + 24 | + // X11GETPROC_(XCreateColormap); 25 | + pfn_XCreateColormap = (Colormap (*)(Display *display, Window w, Visual *visual, int alloc)) MyX11GetProcAddress("XCreateColormap"); 26 | + if (!pfn_XCreateColormap) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 27 | + 28 | + // X11GETPROC_(XCreatePixmap); 29 | + pfn_XCreatePixmap = (Pixmap (*)(Display *display, Drawable d, unsigned int width, unsigned int height, unsigned int depth)) MyX11GetProcAddress("XCreatePixmap"); 30 | + if (!pfn_XCreatePixmap) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 31 | + 32 | + // X11GETPROC_(XCreateWindow); 33 | + pfn_XCreateWindow = (Window (*)(Display *display, Window parent, int x, int y, unsigned int width, unsigned int height, 34 | + unsigned int border_width, int depth, unsigned int window_class, Visual *visual, unsigned long valuemask, XSetWindowAttributes *attributes)) MyX11GetProcAddress("XCreateWindow"); 35 | + if (!pfn_XCreateWindow) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 36 | + 37 | + // X11GETPROC_(XDefaultRootWindow); 38 | + pfn_XDefaultRootWindow = (Window (*)(Display *display)) MyX11GetProcAddress("XDefaultRootWindow"); 39 | + if (!pfn_XDefaultRootWindow) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 40 | + 41 | + // X11GETPROC_(XDestroyWindow); 42 | + pfn_XDestroyWindow = (int (*)(Display *display, Window w)) MyX11GetProcAddress("XDestroyWindow"); 43 | + if (!pfn_XDestroyWindow) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 44 | + 45 | + // X11GETPROC_(XFree); 46 | + pfn_XFree = (int (*)(void *data)) MyX11GetProcAddress("XFree"); 47 | + if (!pfn_XFree) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 48 | + 49 | + // X11GETPROC_(XFreePixmap); 50 | + pfn_XFreePixmap = (int (*)(Display *display, Pixmap pixmap)) MyX11GetProcAddress("XFreePixmap"); 51 | + if (!pfn_XFreePixmap) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 52 | + 53 | + // X11GETPROC_(XInitThreads); 54 | + pfn_XInitThreads = (Status (*)(void)) MyX11GetProcAddress("XInitThreads"); 55 | + if (!pfn_XInitThreads) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 56 | + 57 | + // X11GETPROC_(XNextEvent); 58 | + pfn_XNextEvent = (int (*)(Display *display, XEvent *event_return)) MyX11GetProcAddress("XNextEvent"); 59 | + if (!pfn_XNextEvent) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 60 | + 61 | + // X11GETPROC_(XOpenDisplay); 62 | + pfn_XOpenDisplay = (Display *(*)(char *display_name)) MyX11GetProcAddress("XOpenDisplay"); 63 | + if (!pfn_XOpenDisplay) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 64 | + 65 | + // X11GETPROC_(XPending); 66 | + pfn_XPending = (int (*)(Display *display)) MyX11GetProcAddress("XPending"); 67 | + if (!pfn_XPending) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 68 | + 69 | + // X11GETPROC_(XSetErrorHandler); 70 | + pfn_XSetErrorHandler = (int (* (*)(int (*handler)(Display *, XErrorEvent *)))(Display *, XErrorEvent *)) MyX11GetProcAddress("XSetErrorHandler"); 71 | + if (!pfn_XSetErrorHandler) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 72 | + 73 | + // X11GETPROC_(XSync); 74 | + pfn_XSync = (int (*)(Display *display, Bool discard)) MyX11GetProcAddress("XSync"); 75 | + if (!pfn_XSync) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 76 | + 77 | + // X11GETPROC_(XScreenNumberOfScreen); 78 | + pfn_XScreenNumberOfScreen = (int (*)(Screen *screen)) MyX11GetProcAddress("XScreenNumberOfScreen"); 79 | + if (!pfn_XScreenNumberOfScreen) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 80 | + 81 | + // X11GETPROC_(XMapWindow); 82 | + pfn_XMapWindow = (int (*)(Display *display, Window w)) MyX11GetProcAddress("XMapWindow"); 83 | + if (!pfn_XMapWindow) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 84 | + 85 | + // X11GETPROC_(XGetWindowAttributes); 86 | + pfn_XGetWindowAttributes = (Status (*)(Display *display, Window w, XWindowAttributes *window_attributes_return)) MyX11GetProcAddress("XGetWindowAttributes"); 87 | + if (!pfn_XGetWindowAttributes) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 88 | + 89 | + // GLGETPROC_(glXGetFBConfigAttrib, ""); 90 | + pfn_glXGetFBConfigAttrib = (int (*)(Display * dpy, GLXFBConfig config, int attribute, int * value)) OGLGETPROCADDRESS("glXGetFBConfigAttrib"); 91 | + if (!pfn_glXGetFBConfigAttrib) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 92 | + 93 | + // GLGETPROC_(glXGetVisualFromFBConfig, ""); 94 | + pfn_glXGetVisualFromFBConfig = (XVisualInfo * (*)(Display * dpy, GLXFBConfig config)) OGLGETPROCADDRESS("glXGetVisualFromFBConfig"); 95 | + if (!pfn_glXGetVisualFromFBConfig) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 96 | + 97 | + // GLGETPROC_(glXQueryVersion, ""); 98 | + pfn_glXQueryVersion = (Bool (*)(Display * dpy, int * major, int * minor)) OGLGETPROCADDRESS("glXQueryVersion"); 99 | + if (!pfn_glXQueryVersion) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 100 | + 101 | + // GLGETPROC_(glXChooseFBConfig, ""); 102 | + pfn_glXChooseFBConfig = (GLXFBConfig * (*)(Display * dpy, int screen, const int * attrib_list, int * nelements)) OGLGETPROCADDRESS("glXChooseFBConfig"); 103 | + if (!pfn_glXChooseFBConfig) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 104 | + 105 | + // GLGETPROC_(glXChooseVisual, ""); 106 | + pfn_glXChooseVisual = (XVisualInfo* (*)(Display * dpy, int screen, int * attribList)) OGLGETPROCADDRESS("glXChooseVisual"); 107 | + if (!pfn_glXChooseVisual) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 108 | + 109 | + // GLGETPROC_(glXCreateContext, ""); 110 | + pfn_glXCreateContext = (GLXContext (*)(Display * dpy, XVisualInfo * vis, GLXContext shareList, Bool direct)) OGLGETPROCADDRESS("glXCreateContext"); 111 | + if (!pfn_glXCreateContext) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 112 | + 113 | + // GLGETPROC_(glXCreateContext, ""); 114 | + pfn_glXCreateContext = (GLXContext (*)(Display * dpy, XVisualInfo * vis, GLXContext shareList, Bool direct)) OGLGETPROCADDRESS("glXCreateContext"); 115 | + if (!pfn_glXCreateContext) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 116 | + 117 | + // GLGETPROC_(glXCreatePixmap, ""); 118 | + pfn_glXCreatePixmap = (GLXPixmap (*)(Display * dpy, GLXFBConfig config, Pixmap pixmap, const int * attrib_list)) OGLGETPROCADDRESS("glXCreatePixmap"); 119 | + if (!pfn_glXCreatePixmap) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 120 | + 121 | + // GLGETPROC_(glXMakeCurrent, ""); 122 | + pfn_glXMakeCurrent = (Bool (*)(Display * dpy, GLXDrawable drawable, GLXContext ctx)) OGLGETPROCADDRESS("glXMakeCurrent"); 123 | + if (!pfn_glXMakeCurrent) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 124 | + 125 | + // GLGETPROC_(glXDestroyContext, ""); 126 | + pfn_glXDestroyContext = (void (*)(Display * dpy, GLXContext ctx)) OGLGETPROCADDRESS("glXDestroyContext"); 127 | + if (!pfn_glXDestroyContext) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 128 | + 129 | + // GLGETPROC_(glXDestroyPixmap, ""); 130 | + pfn_glXDestroyPixmap = (void (*)(Display * dpy, GLXPixmap Pixmap)) OGLGETPROCADDRESS("glXDestroyPixmap"); 131 | + if (!pfn_glXDestroyPixmap) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 132 | #endif 133 | +/* 134 | GLGETPROC_(glAlphaFunc, ""); 135 | GLGETPROC_(glBegin, ""); 136 | GLGETPROC_(glBindTexture, ""); 137 | @@ -396,6 +515,287 @@ 138 | GLGETPROC_(glVertex2i, ""); 139 | GLGETPROC_(glVertexPointer, ""); 140 | GLGETPROC_(glViewport, ""); 141 | +*/ 142 | + // GLGETPROC_(glAlphaFunc, ""); 143 | + pfn_glAlphaFunc = (void (GLAPIENTRYP)(GLenum func, GLclampf ref)) OGLGETPROCADDRESS("glAlphaFunc"); 144 | + if (!pfn_glAlphaFunc) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 145 | + 146 | + // GLGETPROC_(glBegin, ""); 147 | + pfn_glBegin = (void (GLAPIENTRYP)(GLenum mode)) OGLGETPROCADDRESS("glBegin"); 148 | + if (!pfn_glBegin) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 149 | + 150 | + // GLGETPROC_(glBindTexture, ""); 151 | + pfn_glBindTexture = (void (GLAPIENTRYP)(GLenum target, GLuint texture)) OGLGETPROCADDRESS("glBindTexture"); 152 | + if (!pfn_glBindTexture) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 153 | + 154 | + // GLGETPROC_(glBlendFunc, ""); 155 | + pfn_glBlendFunc = (void (GLAPIENTRYP)(GLenum sfactor, GLenum dfactor)) OGLGETPROCADDRESS("glBlendFunc"); 156 | + if (!pfn_glBlendFunc) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 157 | + 158 | + // GLGETPROC_(glClear, ""); 159 | + pfn_glClear = (void (GLAPIENTRYP)(GLbitfield mask)) OGLGETPROCADDRESS("glClear"); 160 | + if (!pfn_glClear) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 161 | + 162 | + // GLGETPROC_(glClearColor, ""); 163 | + pfn_glClearColor = (void (GLAPIENTRYP)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)) OGLGETPROCADDRESS("glClearColor"); 164 | + if (!pfn_glClearColor) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 165 | + 166 | + // GLGETPROC_(glClearDepth, ""); 167 | + pfn_glClearDepth = (void (GLAPIENTRYP)(GLclampd depth)) OGLGETPROCADDRESS("glClearDepth"); 168 | + if (!pfn_glClearDepth) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 169 | + 170 | + // GLGETPROC_(glClearStencil, ""); 171 | + pfn_glClearStencil = (void (GLAPIENTRYP)(GLint s)) OGLGETPROCADDRESS("glClearStencil"); 172 | + if (!pfn_glClearStencil) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 173 | + 174 | + // GLGETPROC_(glClipPlane, ""); 175 | + pfn_glClipPlane = (void (GLAPIENTRYP)(GLenum plane, const GLdouble *equation)) OGLGETPROCADDRESS("glClipPlane"); 176 | + if (!pfn_glClipPlane) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 177 | + 178 | + // GLGETPROC_(glColorMask, ""); 179 | + pfn_glColorMask = (void (GLAPIENTRYP)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)) OGLGETPROCADDRESS("glColorMask"); 180 | + if (!pfn_glColorMask) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 181 | + 182 | + // GLGETPROC_(glColorPointer, ""); 183 | + pfn_glColorPointer = (void (GLAPIENTRYP)(GLint size, GLenum type, GLsizei stride, const void *pointer)) OGLGETPROCADDRESS("glColorPointer"); 184 | + if (!pfn_glColorPointer) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 185 | + 186 | + // GLGETPROC_(glCullFace, ""); 187 | + pfn_glCullFace = (void (GLAPIENTRYP)(GLenum mode)) OGLGETPROCADDRESS("glCullFace"); 188 | + if (!pfn_glCullFace) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 189 | + 190 | + // GLGETPROC_(glDeleteTextures, ""); 191 | + pfn_glDeleteTextures = (void (GLAPIENTRYP)(GLsizei n, const GLuint *textures)) OGLGETPROCADDRESS("glDeleteTextures"); 192 | + if (!pfn_glDeleteTextures) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 193 | + 194 | + // GLGETPROC_(glDepthFunc, ""); 195 | + pfn_glDepthFunc = (void (GLAPIENTRYP)(GLenum func)) OGLGETPROCADDRESS("glDepthFunc"); 196 | + if (!pfn_glDepthFunc) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 197 | + 198 | + // GLGETPROC_(glDepthMask, ""); 199 | + pfn_glDepthMask = (void (GLAPIENTRYP)(GLboolean flag)) OGLGETPROCADDRESS("glDepthMask"); 200 | + if (!pfn_glDepthMask) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 201 | + 202 | + // GLGETPROC_(glDepthRange, ""); 203 | + pfn_glDepthRange = (void (GLAPIENTRYP)(GLclampd zNear, GLclampd zFar)) OGLGETPROCADDRESS("glDepthRange"); 204 | + if (!pfn_glDepthRange) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 205 | + 206 | + // GLGETPROC_(glDisable, ""); 207 | + pfn_glDisable = (void (GLAPIENTRYP)(GLenum cap)) OGLGETPROCADDRESS("glDisable"); 208 | + if (!pfn_glDisable) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 209 | + 210 | + // GLGETPROC_(glDisableClientState, ""); 211 | + pfn_glDisableClientState = (void (GLAPIENTRYP)(GLenum array)) OGLGETPROCADDRESS("glDisableClientState"); 212 | + if (!pfn_glDisableClientState) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 213 | + 214 | + // GLGETPROC_(glDrawArrays, ""); 215 | + pfn_glDrawArrays = (void (GLAPIENTRYP)(GLenum mode, GLint first, GLsizei count)) OGLGETPROCADDRESS("glDrawArrays"); 216 | + if (!pfn_glDrawArrays) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 217 | + 218 | + // GLGETPROC_(glDrawElements, ""); 219 | + pfn_glDrawElements = (void (GLAPIENTRYP)(GLenum mode, GLsizei count, GLenum type, const void *indices)) OGLGETPROCADDRESS("glDrawElements"); 220 | + if (!pfn_glDrawElements) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 221 | + 222 | + // GLGETPROC_(glEnable, ""); 223 | + pfn_glEnable = (void (GLAPIENTRYP)(GLenum cap)) OGLGETPROCADDRESS("glEnable"); 224 | + if (!pfn_glEnable) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 225 | + 226 | + // GLGETPROC_(glEnableClientState, ""); 227 | + pfn_glEnableClientState = (void (GLAPIENTRYP)(GLenum array)) OGLGETPROCADDRESS("glEnableClientState"); 228 | + if (!pfn_glEnableClientState) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 229 | + 230 | + // GLGETPROC_(glEnd, ""); 231 | + pfn_glEnd = (void (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glEnd"); 232 | + if (!pfn_glEnd) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 233 | + 234 | + // GLGETPROC_(glFinish, ""); 235 | + pfn_glFinish = (void (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glFinish"); 236 | + if (!pfn_glFinish) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 237 | + 238 | + // GLGETPROC_(glFlush, ""); 239 | + pfn_glFlush = (void (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glFlush"); 240 | + if (!pfn_glFlush) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 241 | + 242 | + // GLGETPROC_(glFogf, ""); 243 | + pfn_glFogf = (void (GLAPIENTRYP)(GLenum pname, GLfloat param)) OGLGETPROCADDRESS("glFogf"); 244 | + if (!pfn_glFogf) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 245 | + 246 | + // GLGETPROC_(glFogfv, ""); 247 | + pfn_glFogfv = (void (GLAPIENTRYP)(GLenum pname, const GLfloat *params)) OGLGETPROCADDRESS("glFogfv"); 248 | + if (!pfn_glFogfv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 249 | + 250 | + // GLGETPROC_(glFogi, ""); 251 | + pfn_glFogi = (void (GLAPIENTRYP)(GLenum pname, GLint param)) OGLGETPROCADDRESS("glFogi"); 252 | + if (!pfn_glFogi) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 253 | + 254 | + // GLGETPROC_(glFrontFace, ""); 255 | + pfn_glFrontFace = (void (GLAPIENTRYP)(GLenum mode)) OGLGETPROCADDRESS("glFrontFacei"); 256 | + if (!pfn_glFrontFace) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 257 | + 258 | + // GLGETPROC_(glGenTextures, ""); 259 | + pfn_glGenTextures = (void (GLAPIENTRYP)(GLsizei n, GLuint *textures)) OGLGETPROCADDRESS("glGenTextures"); 260 | + if (!pfn_glGenTextures) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 261 | + 262 | + // GLGETPROC_(glGetBooleanv, ""); 263 | + pfn_glGetBooleanv = (void (GLAPIENTRYP)(GLenum pname, GLboolean *params)) OGLGETPROCADDRESS("glGetBooleanv"); 264 | + if (!pfn_glGetBooleanv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 265 | + 266 | + // GLGETPROC_(glGetError, ""); 267 | + pfn_glGetError = (GLenum (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glGetError"); 268 | + if (!pfn_glGetError) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 269 | + 270 | + // GLGETPROC_(glGetFloatv, ""); 271 | + pfn_glGetFloatv = (void (GLAPIENTRYP)(GLenum pname, GLfloat *params)) OGLGETPROCADDRESS("glGetFloatv"); 272 | + if (!pfn_glGetFloatv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 273 | + 274 | + // GLGETPROC_(glGetIntegerv, ""); 275 | + pfn_glGetIntegerv = (void (GLAPIENTRYP)(GLenum pname, GLint *params)) OGLGETPROCADDRESS("glGetIntegerv"); 276 | + if (!pfn_glGetIntegerv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 277 | + 278 | + // GLGETPROC_(glGetString, ""); 279 | + pfn_glGetString = (const GLubyte * (GLAPIENTRYP)(GLenum name)) OGLGETPROCADDRESS("glGetString"); 280 | + if (!pfn_glGetString) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 281 | + 282 | + // GLGETPROC_(glGetTexImage, ""); 283 | + pfn_glGetTexImage = (void (GLAPIENTRYP)(GLenum target, GLint level, GLenum format, GLenum type, void *pixels)) OGLGETPROCADDRESS("glGetTexImage"); 284 | + if (!pfn_glGetTexImage) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 285 | + 286 | + // GLGETPROC_(glLightModelfv, ""); 287 | + pfn_glLightModelfv = (void (GLAPIENTRYP)(GLenum pname, const GLfloat *params)) OGLGETPROCADDRESS("glLightModelfv"); 288 | + if (!pfn_glLightModelfv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 289 | + 290 | + // GLGETPROC_(glLightf, ""); 291 | + pfn_glLightf = (void (GLAPIENTRYP)(GLenum light, GLenum pname, GLfloat param)) OGLGETPROCADDRESS("glLightf"); 292 | + if (!pfn_glLightf) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 293 | + 294 | + // GLGETPROC_(glLightfv, ""); 295 | + pfn_glLightfv = (void (GLAPIENTRYP)(GLenum light, GLenum pname, const GLfloat *params)) OGLGETPROCADDRESS("glLightfv"); 296 | + if (!pfn_glLightfv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 297 | + 298 | + // GLGETPROC_(glLineWidth, ""); 299 | + pfn_glLineWidth = (void (GLAPIENTRYP)(GLfloat width)) OGLGETPROCADDRESS("glLineWidth"); 300 | + if (!pfn_glLineWidth) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 301 | + 302 | + // GLGETPROC_(glLoadIdentity, ""); 303 | + pfn_glLoadIdentity = (void (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glLoadIdentity"); 304 | + if (!pfn_glLoadIdentity) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 305 | + 306 | + // GLGETPROC_(glLoadMatrixf, ""); 307 | + pfn_glLoadMatrixf = (void (GLAPIENTRYP)(const GLfloat *m)) OGLGETPROCADDRESS("glLoadMatrixf"); 308 | + if (!pfn_glLoadMatrixf) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 309 | + 310 | + // GLGETPROC_(glMaterialfv, ""); 311 | + pfn_glMaterialfv = (void (GLAPIENTRYP)(GLenum face, GLenum pname, const GLfloat *params)) OGLGETPROCADDRESS("glMaterialfv"); 312 | + if (!pfn_glMaterialfv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 313 | + 314 | + // GLGETPROC_(glMatrixMode, ""); 315 | + pfn_glMatrixMode = (void (GLAPIENTRYP)(GLenum mode)) OGLGETPROCADDRESS("glMatrixMode"); 316 | + if (!pfn_glMatrixMode) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 317 | + 318 | + // GLGETPROC_(glMultMatrixf, ""); 319 | + pfn_glMultMatrixf = (void (GLAPIENTRYP)(const GLfloat *m)) OGLGETPROCADDRESS("glMultMatrixf"); 320 | + if (!pfn_glMultMatrixf) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 321 | + 322 | + // GLGETPROC_(glNormalPointer, ""); 323 | + pfn_glNormalPointer = (void (GLAPIENTRYP)(GLenum type, GLsizei stride, const void *pointer)) OGLGETPROCADDRESS("glNormalPointer"); 324 | + if (!pfn_glNormalPointer) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 325 | + 326 | + // GLGETPROC_(glOrtho, ""); 327 | + pfn_glOrtho = (void (GLAPIENTRYP)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearVal, GLdouble farVal)) OGLGETPROCADDRESS("glOrtho"); 328 | + if (!pfn_glOrtho) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 329 | + 330 | + // GLGETPROC_(glPixelStorei, ""); 331 | + pfn_glPixelStorei = (void (GLAPIENTRYP)(GLenum pname, GLint param)) OGLGETPROCADDRESS("glPixelStorei"); 332 | + if (!pfn_glPixelStorei) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 333 | + 334 | + // GLGETPROC_(glPointSize, ""); 335 | + pfn_glPointSize = (void (GLAPIENTRYP)(GLfloat size)) OGLGETPROCADDRESS("glPointSize"); 336 | + if (!pfn_glPointSize) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 337 | + 338 | + // GLGETPROC_(glPolygonMode, ""); 339 | + pfn_glPolygonMode = (void (GLAPIENTRYP)(GLenum face, GLenum mode)) OGLGETPROCADDRESS("glPolygonMode"); 340 | + if (!pfn_glPolygonMode) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 341 | + 342 | + // GLGETPROC_(glPolygonOffset, ""); 343 | + pfn_glPolygonOffset = (void (GLAPIENTRYP)(GLfloat factor, GLfloat units)) OGLGETPROCADDRESS("glPolygonOffset"); 344 | + if (!pfn_glPolygonOffset) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 345 | + 346 | + // GLGETPROC_(glPopAttrib, ""); 347 | + pfn_glPopAttrib = (void (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glPopAttrib"); 348 | + if (!pfn_glPopAttrib) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 349 | + 350 | + // GLGETPROC_(glPopMatrix, ""); 351 | + pfn_glPopMatrix = (void (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glPopMatrix"); 352 | + if (!pfn_glPopMatrix) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 353 | + 354 | + // GLGETPROC_(glPushAttrib, ""); 355 | + pfn_glPushAttrib = (void (GLAPIENTRYP)(GLbitfield mask)) OGLGETPROCADDRESS("glPushAttrib"); 356 | + if (!pfn_glPushAttrib) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 357 | + 358 | + // GLGETPROC_(glPushMatrix, ""); 359 | + pfn_glPushMatrix = (void (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glPushMatrix"); 360 | + if (!pfn_glPushMatrix) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 361 | + 362 | + // GLGETPROC_(glScissor, ""); 363 | + pfn_glScissor = (void (GLAPIENTRYP)(GLint x, GLint y, GLsizei width, GLsizei height)) OGLGETPROCADDRESS("glScissor"); 364 | + if (!pfn_glScissor) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 365 | + 366 | + // GLGETPROC_(glShadeModel, ""); 367 | + pfn_glShadeModel = (void (GLAPIENTRYP)(GLenum mode)) OGLGETPROCADDRESS("glShadeModel"); 368 | + if (!pfn_glShadeModel) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 369 | + 370 | + // GLGETPROC_(glStencilFunc, ""); 371 | + pfn_glStencilFunc = (void (GLAPIENTRYP)(GLenum func, GLint ref, GLuint mask)) OGLGETPROCADDRESS("glStencilFunc"); 372 | + if (!pfn_glStencilFunc) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 373 | + 374 | + // GLGETPROC_(glStencilMask, ""); 375 | + pfn_glStencilMask = (void (GLAPIENTRYP)(GLuint mask)) OGLGETPROCADDRESS("glStencilMask"); 376 | + if (!pfn_glStencilMask) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 377 | + 378 | + // GLGETPROC_(glStencilOp, ""); 379 | + pfn_glStencilOp = (void (GLAPIENTRYP)(GLenum fail, GLenum zfail, GLenum zpass)) OGLGETPROCADDRESS("glStencilOp"); 380 | + if (!pfn_glStencilOp) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 381 | + 382 | + // GLGETPROC_(glTexCoord2f, ""); 383 | + pfn_glTexCoord2f = (void (GLAPIENTRYP)(GLfloat s, GLfloat t)) OGLGETPROCADDRESS("glTexCoord2f"); 384 | + if (!pfn_glTexCoord2f) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 385 | + 386 | + // GLGETPROC_(glTexCoordPointer, ""); 387 | + pfn_glTexCoordPointer = (void (GLAPIENTRYP)(GLint size, GLenum type, GLsizei stride, const void *pointer)) OGLGETPROCADDRESS("glTexCoordPointer"); 388 | + if (!pfn_glTexCoordPointer) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 389 | + 390 | + // GLGETPROC_(glTexImage2D, ""); 391 | + pfn_glTexImage2D = (void (GLAPIENTRYP)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)) OGLGETPROCADDRESS("glTexImage2D"); 392 | + if (!pfn_glTexImage2D) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 393 | + 394 | + // GLGETPROC_(glTexParameterf, ""); 395 | + pfn_glTexParameterf = (void (GLAPIENTRYP)(GLenum target, GLenum pname, GLfloat param)) OGLGETPROCADDRESS("glTexParameterf"); 396 | + if (!pfn_glTexParameterf) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 397 | + 398 | + // GLGETPROC_(glTexParameterfv, ""); 399 | + pfn_glTexParameterfv = (void (GLAPIENTRYP)(GLenum target, GLenum pname, const GLfloat *params)) OGLGETPROCADDRESS("glTexParameterfv"); 400 | + if (!pfn_glTexParameterfv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 401 | + 402 | + // GLGETPROC_(glTexParameteri, ""); 403 | + pfn_glTexParameteri = (void (GLAPIENTRYP)(GLenum target, GLenum pname, GLint param)) OGLGETPROCADDRESS("glTexParameteri"); 404 | + if (!pfn_glTexParameteri) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 405 | + 406 | + // GLGETPROC_(glTexSubImage2D, ""); 407 | + pfn_glTexSubImage2D = (void (GLAPIENTRYP)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)) OGLGETPROCADDRESS("glTexSubImage2D"); 408 | + if (!pfn_glTexSubImage2D) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 409 | + 410 | + // GLGETPROC_(glVertex2i, ""); 411 | + pfn_glVertex2i = (void (GLAPIENTRYP)(GLint x, GLint y)) OGLGETPROCADDRESS("glVertex2i"); 412 | + if (!pfn_glVertex2i) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 413 | + 414 | + // GLGETPROC_(glVertexPointer, ""); 415 | + pfn_glVertexPointer = (void (GLAPIENTRYP)(GLint size, GLenum type, GLsizei stride, const void *pointer)) OGLGETPROCADDRESS("glVertexPointer"); 416 | + if (!pfn_glVertexPointer) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 417 | + 418 | + // GLGETPROC_(glViewport, ""); 419 | + pfn_glViewport = (void (GLAPIENTRYP)(GLint x, GLint y, GLsizei width, GLsizei height)) OGLGETPROCADDRESS("glViewport"); 420 | + if (!pfn_glViewport) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 421 | + 422 | 423 | #ifdef RT_OS_LINUX 424 | XInitThreads(); 425 | @@ -410,9 +810,23 @@ 426 | 427 | int glLdrGetExtFunctions(PPDMDEVINS pDevIns) 428 | { 429 | + /* 430 | PFNRT pfnRet; 431 | GLGETPROC_(glBlendColor, ""); 432 | GLGETPROC_(glBlendEquation, ""); 433 | GLGETPROC_(glClientActiveTexture, ""); 434 | + */ 435 | + 436 | + // GLGETPROC_(glBlendColor, ""); 437 | + pfn_glBlendColor = (void (GLAPIENTRYP)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)) OGLGETPROCADDRESS("glBlendColor"); 438 | + if (!pfn_glBlendColor) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 439 | + 440 | + // GLGETPROC_(glBlendEquation, ""); 441 | + pfn_glBlendEquation = (void (GLAPIENTRYP)(GLenum mode)) OGLGETPROCADDRESS("glBlendEquation"); 442 | + if (!pfn_glBlendEquation) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 443 | + 444 | + // GLGETPROC_(glClientActiveTexture, ""); 445 | + pfn_glClientActiveTexture = (void (GLAPIENTRYP)(GLenum texture)) OGLGETPROCADDRESS("glClientActiveTexture"); 446 | + if (!pfn_glClientActiveTexture) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 447 | return VINF_SUCCESS; 448 | } 449 | -------------------------------------------------------------------------------- /6.1.26/VBoxDTraceLibCWrappers.patch: -------------------------------------------------------------------------------- 1 | --- VirtualBox-6.1.26-orig/src/VBox/ExtPacks/VBoxDTrace/include/VBoxDTraceLibCWrappers.h 2021-08-09 15:08:12.265806442 +0200 2 | +++ VirtualBox-6.1.26/src/VBox/ExtPacks/VBoxDTrace/include/VBoxDTraceLibCWrappers.h 2021-08-09 15:11:07.801635609 +0200 3 | @@ -34,7 +34,7 @@ 4 | # ifdef RT_OS_DARWIN 5 | # include /* PATH_MAX */ 6 | # elif !defined(RT_OS_SOLARIS) && !defined(RT_OS_FREEBSD) 7 | -# include /* PATH_MAX */ 8 | +# include /* PATH_MAX */ 9 | # endif 10 | # include /* basename */ 11 | # include 12 | -------------------------------------------------------------------------------- /6.1.26/os_Linux_x86_64.patch: -------------------------------------------------------------------------------- 1 | --- VirtualBox-6.1.26-orig/src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s 2021-08-09 15:08:10.321808575 +0200 2 | +++ VirtualBox-6.1.26/src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s 2021-08-09 15:11:07.861635556 +0200 3 | @@ -1,42 +1,42 @@ 4 | -/ -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- 5 | -/ 6 | -/ The contents of this file are subject to the Mozilla Public 7 | -/ License Version 1.1 (the "License"); you may not use this file 8 | -/ except in compliance with the License. You may obtain a copy of 9 | -/ the License at http://www.mozilla.org/MPL/ 10 | -/ 11 | -/ Software distributed under the License is distributed on an "AS 12 | -/ IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 13 | -/ implied. See the License for the specific language governing 14 | -/ rights and limitations under the License. 15 | -/ 16 | -/ The Original Code is the Netscape Portable Runtime (NSPR). 17 | -/ 18 | -/ The Initial Developer of the Original Code is Netscape 19 | -/ Communications Corporation. Portions created by Netscape are 20 | -/ Copyright (C) 2004 Netscape Communications Corporation. All 21 | -/ Rights Reserved. 22 | -/ 23 | -/ Contributor(s): 24 | -/ 25 | -/ Alternatively, the contents of this file may be used under the 26 | -/ terms of the GNU General Public License Version 2 or later (the 27 | -/ "GPL"), in which case the provisions of the GPL are applicable 28 | -/ instead of those above. If you wish to allow use of your 29 | -/ version of this file only under the terms of the GPL and not to 30 | -/ allow others to use your version of this file under the MPL, 31 | -/ indicate your decision by deleting the provisions above and 32 | -/ replace them with the notice and other provisions required by 33 | -/ the GPL. If you do not delete the provisions above, a recipient 34 | -/ may use your version of this file under either the MPL or the 35 | -/ GPL. 36 | -/ 37 | +// -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- 38 | +// 39 | +// The contents of this file are subject to the Mozilla Public 40 | +// License Version 1.1 (the "License"); you may not use this file 41 | +// except in compliance with the License. You may obtain a copy of 42 | +// the License at http://www.mozilla.org/MPL/ 43 | +// 44 | +// Software distributed under the License is distributed on an "AS 45 | +// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 46 | +// implied. See the License for the specific language governing 47 | +// rights and limitations under the License. 48 | +// 49 | +// The Original Code is the Netscape Portable Runtime (NSPR). 50 | +// 51 | +// The Initial Developer of the Original Code is Netscape 52 | +// Communications Corporation. Portions created by Netscape are 53 | +// Copyright (C) 2004 Netscape Communications Corporation. All 54 | +// Rights Reserved. 55 | +// 56 | +// Contributor(s): 57 | +// 58 | +// Alternatively, the contents of this file may be used under the 59 | +// terms of the GNU General Public License Version 2 or later (the 60 | +// "GPL"), in which case the provisions of the GPL are applicable 61 | +// instead of those above. If you wish to allow use of your 62 | +// version of this file only under the terms of the GPL and not to 63 | +// allow others to use your version of this file under the MPL, 64 | +// indicate your decision by deleting the provisions above and 65 | +// replace them with the notice and other provisions required by 66 | +// the GPL. If you do not delete the provisions above, a recipient 67 | +// may use your version of this file under either the MPL or the 68 | +// GPL. 69 | +// 70 | 71 | -/ PRInt32 _PR_x86_64_AtomicIncrement(PRInt32 *val) 72 | -/ 73 | -/ Atomically increment the integer pointed to by 'val' and return 74 | -/ the result of the increment. 75 | -/ 76 | +// PRInt32 _PR_x86_64_AtomicIncrement(PRInt32 *val) 77 | +// 78 | +// Atomically increment the integer pointed to by 'val' and return 79 | +// the result of the increment. 80 | +// 81 | .text 82 | .globl _PR_x86_64_AtomicIncrement 83 | .align 4 84 | @@ -47,11 +47,11 @@ 85 | incl %eax 86 | ret 87 | 88 | -/ PRInt32 _PR_x86_64_AtomicDecrement(PRInt32 *val) 89 | -/ 90 | -/ Atomically decrement the integer pointed to by 'val' and return 91 | -/ the result of the decrement. 92 | -/ 93 | +// PRInt32 _PR_x86_64_AtomicDecrement(PRInt32 *val) 94 | +// 95 | +// Atomically decrement the integer pointed to by 'val' and return 96 | +// the result of the decrement. 97 | +// 98 | .text 99 | .globl _PR_x86_64_AtomicDecrement 100 | .align 4 101 | @@ -62,11 +62,11 @@ 102 | decl %eax 103 | ret 104 | 105 | -/ PRInt32 _PR_x86_64_AtomicSet(PRInt32 *val, PRInt32 newval) 106 | -/ 107 | -/ Atomically set the integer pointed to by 'val' to the new 108 | -/ value 'newval' and return the old value. 109 | -/ 110 | +// PRInt32 _PR_x86_64_AtomicSet(PRInt32 *val, PRInt32 newval) 111 | +// 112 | +// Atomically set the integer pointed to by 'val' to the new 113 | +// value 'newval' and return the old value. 114 | +// 115 | .text 116 | .globl _PR_x86_64_AtomicSet 117 | .align 4 118 | @@ -76,11 +76,11 @@ 119 | xchgl %eax, (%rdi) 120 | ret 121 | 122 | -/ PRInt32 _PR_x86_64_AtomicAdd(PRInt32 *ptr, PRInt32 val) 123 | -/ 124 | -/ Atomically add 'val' to the integer pointed to by 'ptr' 125 | -/ and return the result of the addition. 126 | -/ 127 | +// PRInt32 _PR_x86_64_AtomicAdd(PRInt32 *ptr, PRInt32 val) 128 | +// 129 | +// Atomically add 'val' to the integer pointed to by 'ptr' 130 | +// and return the result of the addition. 131 | +// 132 | .text 133 | .globl _PR_x86_64_AtomicAdd 134 | .align 4 135 | @@ -91,5 +91,5 @@ 136 | addl %esi, %eax 137 | ret 138 | 139 | -/ Magic indicating no need for an executable stack 140 | +// Magic indicating no need for an executable stack 141 | .section .note.GNU-stack, "", @progbits ; .previous 142 | -------------------------------------------------------------------------------- /6.1.26/undefined_xfree86.patch: -------------------------------------------------------------------------------- 1 | --- VirtualBox-6.1.26-orig/src/VBox/Additions/x11/undefined_xfree86 2021-08-09 15:08:11.581807193 +0200 2 | +++ VirtualBox-6.1.26/src/VBox/Additions/x11/undefined_xfree86 2021-08-09 15:11:07.681635712 +0200 3 | @@ -1,6 +1,10 @@ 4 | # This file contains the complete list, excluding modules of undefined symbols 5 | # which are allowed in XFree86 4.3 binary driver modules. 6 | 7 | +__stop___sancov_guards 8 | +__sanitizer_cov_trace_pc_guard_init 9 | +__afl_area_ptr 10 | +__start___sancov_guards 11 | AddCallback 12 | AddEnabledDevice 13 | AddExtension 14 | -------------------------------------------------------------------------------- /6.1.30/Config.patch: -------------------------------------------------------------------------------- 1 | --- VirtualBox-6.1.30-orig/Config.kmk 2021-11-22 16:08:54.000000000 +0100 2 | +++ VirtualBox-6.1.30/Config.kmk 2022-01-14 13:08:27.577267573 +0100 3 | @@ -5,7 +5,7 @@ 4 | # This file gets included by all makefiles through the 5 | # include $(KBUILD_PATH)/header.kmk statement. 6 | # 7 | - 8 | +KBUILD_VERBOSE=4 9 | # 10 | # Copyright (C) 2006-2020 Oracle Corporation 11 | # 12 | @@ -1596,12 +1596,12 @@ 13 | TOOL_GXX3PLAIN_LD_SYSMOD ?= /usr/ccs/bin/ld 14 | endif 15 | else 16 | - VBOX_GCC_TOOL := GXX3 17 | + VBOX_GCC_TOOL := AFL 18 | ifeq ($(KBUILD_TARGET_ARCH).$(KBUILD_HOST_ARCH),x86.amd64) ## @todo mixing target/host here! 19 | - VBOX_GCC_TOOL := GXX32 20 | + VBOX_GCC_TOOL := AFL 21 | VBOX_WITH_VBOXDRV= 22 | else ifeq ($(KBUILD_TARGET_ARCH).$(KBUILD_HOST_ARCH),amd64.x86) 23 | - VBOX_GCC_TOOL := GXX64 24 | + VBOX_GCC_TOOL := AFL 25 | VBOX_WITH_VBOXDRV= 26 | endif 27 | endif 28 | @@ -1644,7 +1644,7 @@ 29 | # Default too nonsense. 30 | # 31 | ## @todo Remove the default tool crap here! 32 | -TOOL = $(VBOX_GCC_TOOL) 33 | +TOOL = AFL 34 | TOOL.win.x86 = $(VBOX_VCC_TOOL_STEM)X86 35 | TOOL.win.amd64 = $(VBOX_VCC_TOOL_STEM)AMD64 36 | ASTOOL = $(VBOX_ASTOOL) 37 | @@ -4497,7 +4497,7 @@ 38 | endif # pe 39 | 40 | ifeq ($(VBOX_LDR_FMT),elf) 41 | -TEMPLATE_VBoxR0_TOOL = $(VBOX_GCC_TOOL) 42 | +TEMPLATE_VBoxR0_TOOL = GXX64 # Super important, otherwise you can't load R0 modules 43 | TEMPLATE_VBoxR0_CFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) \ 44 | $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions \ 45 | $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK) 46 | @@ -5187,7 +5187,7 @@ 47 | endif 48 | 49 | else # the gcc guys 50 | -TEMPLATE_VBOXR3EXE_TOOL = $(VBOX_GCC_TOOL) 51 | +TEMPLATE_VBOXR3EXE_TOOL = AFL 52 | if $(VBOX_GCC_VERSION_CC) < 30400 53 | TEMPLATE_VBOXR3EXE_DEFS += RT_WITHOUT_PRAGMA_ONCE 54 | endif 55 | @@ -5503,7 +5503,7 @@ 56 | TEMPLATE_VBoxR3StaticNonPedantic_CXXFLAGS = $(TEMPLATE_VBoxR3Static_CXXFLAGS) $(VBOX_VCC_NON_PEDANTIC) 57 | TEMPLATE_VBoxR3StaticNonPedantic_PCHFLAGS = $(TEMPLATE_VBoxR3Static_PCHFLAGS) $(VBOX_VCC_NON_PEDANTIC) 58 | else # gcc: 59 | - TEMPLATE_VBoxR3StaticNonPedantic_TOOL = $(VBOX_GCC_TOOL) 60 | + TEMPLATE_VBoxR3StaticNonPedantic_TOOL = AFL 61 | TEMPLATE_VBoxR3StaticNonPedantic_CFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_C) ,$(TEMPLATE_VBoxR3Static_CFLAGS)) \ 62 | $(VBOX_GCC_NON_PEDANTIC_CXX) 63 | TEMPLATE_VBoxR3StaticNonPedantic_CXXFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_CXX),$(TEMPLATE_VBoxR3Static_CXXFLAGS)) \ 64 | @@ -5747,7 +5747,7 @@ 65 | TEMPLATE_VBOXR3TSTNPEXE = VBox Ring 3 Testcase Exe Non-pedantic 66 | TEMPLATE_VBOXR3TSTNPEXE_EXTENDS = VBOXR3TSTEXE 67 | ifneq ($(KBUILD_TARGET),win) # (only gcc) 68 | - TEMPLATE_VBOXR3TSTNPEXE_TOOL = $(VBOX_GCC_TOOL) 69 | + TEMPLATE_VBOXR3TSTNPEXE_TOOL = AFL 70 | TEMPLATE_VBOXR3TSTNPEXE_CFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_C) ,$(TEMPLATE_VBOXR3TSTEXE_CFLAGS)) \ 71 | -Wno-sign-compare 72 | TEMPLATE_VBOXR3TSTNPEXE_CXXFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_CXX),$(TEMPLATE_VBOXR3TSTEXE_CXXFLAGS)) \ 73 | @@ -5788,7 +5788,7 @@ 74 | TEMPLATE_VBOXR3NPEXE = VBox Ring 3 Non-pedantic 75 | TEMPLATE_VBOXR3NPEXE_EXTENDS = VBOXR3EXE 76 | ifneq ($(KBUILD_TARGET),win) # (only gcc) 77 | - TEMPLATE_VBOXR3NPEXE_TOOL = $(VBOX_GCC_TOOL) 78 | + TEMPLATE_VBOXR3NPEXE_TOOL = AFL 79 | TEMPLATE_VBOXR3NPEXE_CFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_C) ,$(TEMPLATE_VBOXR3EXE_CFLAGS)) \ 80 | $(VBOX_GCC_NON_PEDANTIC_C) 81 | TEMPLATE_VBOXR3NPEXE_CXXFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_CXX),$(TEMPLATE_VBOXR3EXE_CXXFLAGS)) \ 82 | @@ -5807,7 +5807,7 @@ 83 | TEMPLATE_VBOXR3NP = VBox Ring 3 Non-pedantic 84 | TEMPLATE_VBOXR3NP_EXTENDS = VBOXR3 85 | ifneq ($(KBUILD_TARGET),win) # (only gcc) 86 | - TEMPLATE_VBOXR3NP_TOOL = $(VBOX_GCC_TOOL) 87 | + TEMPLATE_VBOXR3NP_TOOL = AFL 88 | TEMPLATE_VBOXR3NP_CFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_C) ,$(TEMPLATE_VBOXR3_CFLAGS)) \ 89 | $(VBOX_GCC_NON_PEDANTIC_C) 90 | TEMPLATE_VBOXR3NP_CXXFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_CXX),$(TEMPLATE_VBOXR3_CXXFLAGS)) \ 91 | @@ -5830,7 +5830,7 @@ 92 | TEMPLATE_VBoxR3DllNonPedantic_CXXFLAGS = $(TEMPLATE_VBOXR3_CXXFLAGS) $(VBOX_VCC_NON_PEDANTIC) 93 | TEMPLATE_VBoxR3DllNonPedantic_PCHFLAGS = $(TEMPLATE_VBOXR3_PCHFLAGS) $(VBOX_VCC_NON_PEDANTIC) 94 | else # gcc: 95 | - TEMPLATE_VBoxR3DllNonPedantic_TOOL = $(VBOX_GCC_TOOL) 96 | + TEMPLATE_VBoxR3DllNonPedantic_TOOL = AFL 97 | TEMPLATE_VBoxR3DllNonPedantic_CFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_C) ,$(TEMPLATE_VBOXR3_CFLAGS)) \ 98 | $(VBOX_GCC_NON_PEDANTIC_C) 99 | TEMPLATE_VBoxR3DllNonPedantic_CXXFLAGS = $(filter-out $(VBOX_GCC_WERR) $(VBOX_GCC_WARN_MASOCHISTIC) $(VBOX_GCC_PEDANTIC_CXX),$(TEMPLATE_VBOXR3_CXXFLAGS)) \ 100 | @@ -5969,7 +5969,7 @@ 101 | else 102 | # Use the default GCC. 103 | # The use of --exclude-libs ALL is to avoid confusing the linux ld.so. 104 | - TEMPLATE_VBoxNoCrtGccLib_TOOL = $(VBOX_GCC_TOOL) 105 | + TEMPLATE_VBoxNoCrtGccLib_TOOL = AFL 106 | if $(VBOX_GCC_VERSION_CC) < 30400 107 | TEMPLATE_VBoxNoCrtGccLib_DEFS += RT_WITHOUT_PRAGMA_ONCE 108 | endif 109 | @@ -6091,7 +6091,7 @@ 110 | 111 | else # the GCC guys: 112 | 113 | -TEMPLATE_VBOXMAINEXE_TOOL = $(VBOX_GCC_TOOL) 114 | +TEMPLATE_VBOXMAINEXE_TOOL = AFL 115 | if $(VBOX_GCC_VERSION_CC) < 30400 116 | TEMPLATE_VBOXMAINEXE_DEFS += RT_WITHOUT_PRAGMA_ONCE 117 | endif 118 | @@ -6679,7 +6679,7 @@ 119 | TEMPLATE_VBOXQTGUIEXE_POST_CMDS = $(VBOX_SIGN_IMAGE_CMDS) 120 | 121 | else # the gcc guys: 122 | - TEMPLATE_VBOXQTGUIEXE_TOOL = $(VBOX_GCC_TOOL) 123 | + TEMPLATE_VBOXQTGUIEXE_TOOL = AFL 124 | if $(VBOX_GCC_VERSION_CC) < 30400 125 | TEMPLATE_VBOXQTGUIEXE_DEFS += RT_WITHOUT_PRAGMA_ONCE 126 | endif 127 | @@ -6921,7 +6921,7 @@ 128 | 129 | else 130 | # (gcc of some kind ) 131 | -TEMPLATE_VBoxBldProg_TOOL = GXX3 132 | +TEMPLATE_VBoxBldProg_TOOL = AFL 133 | if $(VBOX_GCC_VERSION_CC) < 30400 134 | TEMPLATE_VBoxBldProg_DEFS += RT_WITHOUT_PRAGMA_ONCE 135 | endif 136 | -------------------------------------------------------------------------------- /6.1.30/DevVGA-SVGA3d-glLdr.patch: -------------------------------------------------------------------------------- 1 | --- VirtualBox-6.1.30-orig/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp 2021-11-22 16:16:55.000000000 +0100 2 | +++ VirtualBox-6.1.30/src/VBox/Devices/Graphics/DevVGA-SVGA3d-glLdr.cpp 2022-01-14 13:08:42.249215866 +0100 3 | @@ -297,6 +297,7 @@ 4 | GLGETPROC_(wglMakeCurrent, ""); 5 | GLGETPROC_(wglShareLists, ""); 6 | #elif defined(RT_OS_LINUX) 7 | + /* 8 | X11GETPROC_(XConfigureWindow); 9 | X11GETPROC_(XCloseDisplay); 10 | X11GETPROC_(XCreateColormap); 11 | @@ -325,7 +326,125 @@ 12 | GLGETPROC_(glXMakeCurrent, ""); 13 | GLGETPROC_(glXDestroyContext, ""); 14 | GLGETPROC_(glXDestroyPixmap, ""); 15 | + */ 16 | + // X11GETPROC_(XConfigureWindow); 17 | + pfn_XConfigureWindow = (int (*)(Display *display, Window w, unsigned value_mask, XWindowChanges *changes)) MyX11GetProcAddress("XConfigureWindow"); 18 | + if (!pfn_XConfigureWindow) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 19 | + 20 | + // X11GETPROC_(XCloseDisplay); 21 | + pfn_XCloseDisplay = (int (*)(Display *display)) MyX11GetProcAddress("XCloseDisplay"); 22 | + if (!pfn_XCloseDisplay) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 23 | + 24 | + // X11GETPROC_(XCreateColormap); 25 | + pfn_XCreateColormap = (Colormap (*)(Display *display, Window w, Visual *visual, int alloc)) MyX11GetProcAddress("XCreateColormap"); 26 | + if (!pfn_XCreateColormap) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 27 | + 28 | + // X11GETPROC_(XCreatePixmap); 29 | + pfn_XCreatePixmap = (Pixmap (*)(Display *display, Drawable d, unsigned int width, unsigned int height, unsigned int depth)) MyX11GetProcAddress("XCreatePixmap"); 30 | + if (!pfn_XCreatePixmap) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 31 | + 32 | + // X11GETPROC_(XCreateWindow); 33 | + pfn_XCreateWindow = (Window (*)(Display *display, Window parent, int x, int y, unsigned int width, unsigned int height, 34 | + unsigned int border_width, int depth, unsigned int window_class, Visual *visual, unsigned long valuemask, XSetWindowAttributes *attributes)) MyX11GetProcAddress("XCreateWindow"); 35 | + if (!pfn_XCreateWindow) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 36 | + 37 | + // X11GETPROC_(XDefaultRootWindow); 38 | + pfn_XDefaultRootWindow = (Window (*)(Display *display)) MyX11GetProcAddress("XDefaultRootWindow"); 39 | + if (!pfn_XDefaultRootWindow) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 40 | + 41 | + // X11GETPROC_(XDestroyWindow); 42 | + pfn_XDestroyWindow = (int (*)(Display *display, Window w)) MyX11GetProcAddress("XDestroyWindow"); 43 | + if (!pfn_XDestroyWindow) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 44 | + 45 | + // X11GETPROC_(XFree); 46 | + pfn_XFree = (int (*)(void *data)) MyX11GetProcAddress("XFree"); 47 | + if (!pfn_XFree) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 48 | + 49 | + // X11GETPROC_(XFreePixmap); 50 | + pfn_XFreePixmap = (int (*)(Display *display, Pixmap pixmap)) MyX11GetProcAddress("XFreePixmap"); 51 | + if (!pfn_XFreePixmap) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 52 | + 53 | + // X11GETPROC_(XInitThreads); 54 | + pfn_XInitThreads = (Status (*)(void)) MyX11GetProcAddress("XInitThreads"); 55 | + if (!pfn_XInitThreads) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 56 | + 57 | + // X11GETPROC_(XNextEvent); 58 | + pfn_XNextEvent = (int (*)(Display *display, XEvent *event_return)) MyX11GetProcAddress("XNextEvent"); 59 | + if (!pfn_XNextEvent) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 60 | + 61 | + // X11GETPROC_(XOpenDisplay); 62 | + pfn_XOpenDisplay = (Display *(*)(char *display_name)) MyX11GetProcAddress("XOpenDisplay"); 63 | + if (!pfn_XOpenDisplay) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 64 | + 65 | + // X11GETPROC_(XPending); 66 | + pfn_XPending = (int (*)(Display *display)) MyX11GetProcAddress("XPending"); 67 | + if (!pfn_XPending) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 68 | + 69 | + // X11GETPROC_(XSetErrorHandler); 70 | + pfn_XSetErrorHandler = (int (* (*)(int (*handler)(Display *, XErrorEvent *)))(Display *, XErrorEvent *)) MyX11GetProcAddress("XSetErrorHandler"); 71 | + if (!pfn_XSetErrorHandler) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 72 | + 73 | + // X11GETPROC_(XSync); 74 | + pfn_XSync = (int (*)(Display *display, Bool discard)) MyX11GetProcAddress("XSync"); 75 | + if (!pfn_XSync) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 76 | + 77 | + // X11GETPROC_(XScreenNumberOfScreen); 78 | + pfn_XScreenNumberOfScreen = (int (*)(Screen *screen)) MyX11GetProcAddress("XScreenNumberOfScreen"); 79 | + if (!pfn_XScreenNumberOfScreen) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 80 | + 81 | + // X11GETPROC_(XMapWindow); 82 | + pfn_XMapWindow = (int (*)(Display *display, Window w)) MyX11GetProcAddress("XMapWindow"); 83 | + if (!pfn_XMapWindow) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 84 | + 85 | + // X11GETPROC_(XGetWindowAttributes); 86 | + pfn_XGetWindowAttributes = (Status (*)(Display *display, Window w, XWindowAttributes *window_attributes_return)) MyX11GetProcAddress("XGetWindowAttributes"); 87 | + if (!pfn_XGetWindowAttributes) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing libX11 symbol");} 88 | + 89 | + // GLGETPROC_(glXGetFBConfigAttrib, ""); 90 | + pfn_glXGetFBConfigAttrib = (int (*)(Display * dpy, GLXFBConfig config, int attribute, int * value)) OGLGETPROCADDRESS("glXGetFBConfigAttrib"); 91 | + if (!pfn_glXGetFBConfigAttrib) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 92 | + 93 | + // GLGETPROC_(glXGetVisualFromFBConfig, ""); 94 | + pfn_glXGetVisualFromFBConfig = (XVisualInfo * (*)(Display * dpy, GLXFBConfig config)) OGLGETPROCADDRESS("glXGetVisualFromFBConfig"); 95 | + if (!pfn_glXGetVisualFromFBConfig) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 96 | + 97 | + // GLGETPROC_(glXQueryVersion, ""); 98 | + pfn_glXQueryVersion = (Bool (*)(Display * dpy, int * major, int * minor)) OGLGETPROCADDRESS("glXQueryVersion"); 99 | + if (!pfn_glXQueryVersion) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 100 | + 101 | + // GLGETPROC_(glXChooseFBConfig, ""); 102 | + pfn_glXChooseFBConfig = (GLXFBConfig * (*)(Display * dpy, int screen, const int * attrib_list, int * nelements)) OGLGETPROCADDRESS("glXChooseFBConfig"); 103 | + if (!pfn_glXChooseFBConfig) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 104 | + 105 | + // GLGETPROC_(glXChooseVisual, ""); 106 | + pfn_glXChooseVisual = (XVisualInfo* (*)(Display * dpy, int screen, int * attribList)) OGLGETPROCADDRESS("glXChooseVisual"); 107 | + if (!pfn_glXChooseVisual) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 108 | + 109 | + // GLGETPROC_(glXCreateContext, ""); 110 | + pfn_glXCreateContext = (GLXContext (*)(Display * dpy, XVisualInfo * vis, GLXContext shareList, Bool direct)) OGLGETPROCADDRESS("glXCreateContext"); 111 | + if (!pfn_glXCreateContext) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 112 | + 113 | + // GLGETPROC_(glXCreateContext, ""); 114 | + pfn_glXCreateContext = (GLXContext (*)(Display * dpy, XVisualInfo * vis, GLXContext shareList, Bool direct)) OGLGETPROCADDRESS("glXCreateContext"); 115 | + if (!pfn_glXCreateContext) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 116 | + 117 | + // GLGETPROC_(glXCreatePixmap, ""); 118 | + pfn_glXCreatePixmap = (GLXPixmap (*)(Display * dpy, GLXFBConfig config, Pixmap pixmap, const int * attrib_list)) OGLGETPROCADDRESS("glXCreatePixmap"); 119 | + if (!pfn_glXCreatePixmap) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 120 | + 121 | + // GLGETPROC_(glXMakeCurrent, ""); 122 | + pfn_glXMakeCurrent = (Bool (*)(Display * dpy, GLXDrawable drawable, GLXContext ctx)) OGLGETPROCADDRESS("glXMakeCurrent"); 123 | + if (!pfn_glXMakeCurrent) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 124 | + 125 | + // GLGETPROC_(glXDestroyContext, ""); 126 | + pfn_glXDestroyContext = (void (*)(Display * dpy, GLXContext ctx)) OGLGETPROCADDRESS("glXDestroyContext"); 127 | + if (!pfn_glXDestroyContext) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 128 | + 129 | + // GLGETPROC_(glXDestroyPixmap, ""); 130 | + pfn_glXDestroyPixmap = (void (*)(Display * dpy, GLXPixmap Pixmap)) OGLGETPROCADDRESS("glXDestroyPixmap"); 131 | + if (!pfn_glXDestroyPixmap) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 132 | #endif 133 | +/* 134 | GLGETPROC_(glAlphaFunc, ""); 135 | GLGETPROC_(glBegin, ""); 136 | GLGETPROC_(glBindTexture, ""); 137 | @@ -396,6 +515,287 @@ 138 | GLGETPROC_(glVertex2i, ""); 139 | GLGETPROC_(glVertexPointer, ""); 140 | GLGETPROC_(glViewport, ""); 141 | +*/ 142 | + // GLGETPROC_(glAlphaFunc, ""); 143 | + pfn_glAlphaFunc = (void (GLAPIENTRYP)(GLenum func, GLclampf ref)) OGLGETPROCADDRESS("glAlphaFunc"); 144 | + if (!pfn_glAlphaFunc) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 145 | + 146 | + // GLGETPROC_(glBegin, ""); 147 | + pfn_glBegin = (void (GLAPIENTRYP)(GLenum mode)) OGLGETPROCADDRESS("glBegin"); 148 | + if (!pfn_glBegin) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 149 | + 150 | + // GLGETPROC_(glBindTexture, ""); 151 | + pfn_glBindTexture = (void (GLAPIENTRYP)(GLenum target, GLuint texture)) OGLGETPROCADDRESS("glBindTexture"); 152 | + if (!pfn_glBindTexture) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 153 | + 154 | + // GLGETPROC_(glBlendFunc, ""); 155 | + pfn_glBlendFunc = (void (GLAPIENTRYP)(GLenum sfactor, GLenum dfactor)) OGLGETPROCADDRESS("glBlendFunc"); 156 | + if (!pfn_glBlendFunc) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 157 | + 158 | + // GLGETPROC_(glClear, ""); 159 | + pfn_glClear = (void (GLAPIENTRYP)(GLbitfield mask)) OGLGETPROCADDRESS("glClear"); 160 | + if (!pfn_glClear) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 161 | + 162 | + // GLGETPROC_(glClearColor, ""); 163 | + pfn_glClearColor = (void (GLAPIENTRYP)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)) OGLGETPROCADDRESS("glClearColor"); 164 | + if (!pfn_glClearColor) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 165 | + 166 | + // GLGETPROC_(glClearDepth, ""); 167 | + pfn_glClearDepth = (void (GLAPIENTRYP)(GLclampd depth)) OGLGETPROCADDRESS("glClearDepth"); 168 | + if (!pfn_glClearDepth) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 169 | + 170 | + // GLGETPROC_(glClearStencil, ""); 171 | + pfn_glClearStencil = (void (GLAPIENTRYP)(GLint s)) OGLGETPROCADDRESS("glClearStencil"); 172 | + if (!pfn_glClearStencil) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 173 | + 174 | + // GLGETPROC_(glClipPlane, ""); 175 | + pfn_glClipPlane = (void (GLAPIENTRYP)(GLenum plane, const GLdouble *equation)) OGLGETPROCADDRESS("glClipPlane"); 176 | + if (!pfn_glClipPlane) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 177 | + 178 | + // GLGETPROC_(glColorMask, ""); 179 | + pfn_glColorMask = (void (GLAPIENTRYP)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)) OGLGETPROCADDRESS("glColorMask"); 180 | + if (!pfn_glColorMask) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 181 | + 182 | + // GLGETPROC_(glColorPointer, ""); 183 | + pfn_glColorPointer = (void (GLAPIENTRYP)(GLint size, GLenum type, GLsizei stride, const void *pointer)) OGLGETPROCADDRESS("glColorPointer"); 184 | + if (!pfn_glColorPointer) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 185 | + 186 | + // GLGETPROC_(glCullFace, ""); 187 | + pfn_glCullFace = (void (GLAPIENTRYP)(GLenum mode)) OGLGETPROCADDRESS("glCullFace"); 188 | + if (!pfn_glCullFace) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 189 | + 190 | + // GLGETPROC_(glDeleteTextures, ""); 191 | + pfn_glDeleteTextures = (void (GLAPIENTRYP)(GLsizei n, const GLuint *textures)) OGLGETPROCADDRESS("glDeleteTextures"); 192 | + if (!pfn_glDeleteTextures) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 193 | + 194 | + // GLGETPROC_(glDepthFunc, ""); 195 | + pfn_glDepthFunc = (void (GLAPIENTRYP)(GLenum func)) OGLGETPROCADDRESS("glDepthFunc"); 196 | + if (!pfn_glDepthFunc) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 197 | + 198 | + // GLGETPROC_(glDepthMask, ""); 199 | + pfn_glDepthMask = (void (GLAPIENTRYP)(GLboolean flag)) OGLGETPROCADDRESS("glDepthMask"); 200 | + if (!pfn_glDepthMask) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 201 | + 202 | + // GLGETPROC_(glDepthRange, ""); 203 | + pfn_glDepthRange = (void (GLAPIENTRYP)(GLclampd zNear, GLclampd zFar)) OGLGETPROCADDRESS("glDepthRange"); 204 | + if (!pfn_glDepthRange) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 205 | + 206 | + // GLGETPROC_(glDisable, ""); 207 | + pfn_glDisable = (void (GLAPIENTRYP)(GLenum cap)) OGLGETPROCADDRESS("glDisable"); 208 | + if (!pfn_glDisable) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 209 | + 210 | + // GLGETPROC_(glDisableClientState, ""); 211 | + pfn_glDisableClientState = (void (GLAPIENTRYP)(GLenum array)) OGLGETPROCADDRESS("glDisableClientState"); 212 | + if (!pfn_glDisableClientState) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 213 | + 214 | + // GLGETPROC_(glDrawArrays, ""); 215 | + pfn_glDrawArrays = (void (GLAPIENTRYP)(GLenum mode, GLint first, GLsizei count)) OGLGETPROCADDRESS("glDrawArrays"); 216 | + if (!pfn_glDrawArrays) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 217 | + 218 | + // GLGETPROC_(glDrawElements, ""); 219 | + pfn_glDrawElements = (void (GLAPIENTRYP)(GLenum mode, GLsizei count, GLenum type, const void *indices)) OGLGETPROCADDRESS("glDrawElements"); 220 | + if (!pfn_glDrawElements) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 221 | + 222 | + // GLGETPROC_(glEnable, ""); 223 | + pfn_glEnable = (void (GLAPIENTRYP)(GLenum cap)) OGLGETPROCADDRESS("glEnable"); 224 | + if (!pfn_glEnable) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 225 | + 226 | + // GLGETPROC_(glEnableClientState, ""); 227 | + pfn_glEnableClientState = (void (GLAPIENTRYP)(GLenum array)) OGLGETPROCADDRESS("glEnableClientState"); 228 | + if (!pfn_glEnableClientState) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 229 | + 230 | + // GLGETPROC_(glEnd, ""); 231 | + pfn_glEnd = (void (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glEnd"); 232 | + if (!pfn_glEnd) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 233 | + 234 | + // GLGETPROC_(glFinish, ""); 235 | + pfn_glFinish = (void (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glFinish"); 236 | + if (!pfn_glFinish) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 237 | + 238 | + // GLGETPROC_(glFlush, ""); 239 | + pfn_glFlush = (void (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glFlush"); 240 | + if (!pfn_glFlush) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 241 | + 242 | + // GLGETPROC_(glFogf, ""); 243 | + pfn_glFogf = (void (GLAPIENTRYP)(GLenum pname, GLfloat param)) OGLGETPROCADDRESS("glFogf"); 244 | + if (!pfn_glFogf) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 245 | + 246 | + // GLGETPROC_(glFogfv, ""); 247 | + pfn_glFogfv = (void (GLAPIENTRYP)(GLenum pname, const GLfloat *params)) OGLGETPROCADDRESS("glFogfv"); 248 | + if (!pfn_glFogfv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 249 | + 250 | + // GLGETPROC_(glFogi, ""); 251 | + pfn_glFogi = (void (GLAPIENTRYP)(GLenum pname, GLint param)) OGLGETPROCADDRESS("glFogi"); 252 | + if (!pfn_glFogi) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 253 | + 254 | + // GLGETPROC_(glFrontFace, ""); 255 | + pfn_glFrontFace = (void (GLAPIENTRYP)(GLenum mode)) OGLGETPROCADDRESS("glFrontFacei"); 256 | + if (!pfn_glFrontFace) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 257 | + 258 | + // GLGETPROC_(glGenTextures, ""); 259 | + pfn_glGenTextures = (void (GLAPIENTRYP)(GLsizei n, GLuint *textures)) OGLGETPROCADDRESS("glGenTextures"); 260 | + if (!pfn_glGenTextures) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 261 | + 262 | + // GLGETPROC_(glGetBooleanv, ""); 263 | + pfn_glGetBooleanv = (void (GLAPIENTRYP)(GLenum pname, GLboolean *params)) OGLGETPROCADDRESS("glGetBooleanv"); 264 | + if (!pfn_glGetBooleanv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 265 | + 266 | + // GLGETPROC_(glGetError, ""); 267 | + pfn_glGetError = (GLenum (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glGetError"); 268 | + if (!pfn_glGetError) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 269 | + 270 | + // GLGETPROC_(glGetFloatv, ""); 271 | + pfn_glGetFloatv = (void (GLAPIENTRYP)(GLenum pname, GLfloat *params)) OGLGETPROCADDRESS("glGetFloatv"); 272 | + if (!pfn_glGetFloatv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 273 | + 274 | + // GLGETPROC_(glGetIntegerv, ""); 275 | + pfn_glGetIntegerv = (void (GLAPIENTRYP)(GLenum pname, GLint *params)) OGLGETPROCADDRESS("glGetIntegerv"); 276 | + if (!pfn_glGetIntegerv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 277 | + 278 | + // GLGETPROC_(glGetString, ""); 279 | + pfn_glGetString = (const GLubyte * (GLAPIENTRYP)(GLenum name)) OGLGETPROCADDRESS("glGetString"); 280 | + if (!pfn_glGetString) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 281 | + 282 | + // GLGETPROC_(glGetTexImage, ""); 283 | + pfn_glGetTexImage = (void (GLAPIENTRYP)(GLenum target, GLint level, GLenum format, GLenum type, void *pixels)) OGLGETPROCADDRESS("glGetTexImage"); 284 | + if (!pfn_glGetTexImage) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 285 | + 286 | + // GLGETPROC_(glLightModelfv, ""); 287 | + pfn_glLightModelfv = (void (GLAPIENTRYP)(GLenum pname, const GLfloat *params)) OGLGETPROCADDRESS("glLightModelfv"); 288 | + if (!pfn_glLightModelfv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 289 | + 290 | + // GLGETPROC_(glLightf, ""); 291 | + pfn_glLightf = (void (GLAPIENTRYP)(GLenum light, GLenum pname, GLfloat param)) OGLGETPROCADDRESS("glLightf"); 292 | + if (!pfn_glLightf) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 293 | + 294 | + // GLGETPROC_(glLightfv, ""); 295 | + pfn_glLightfv = (void (GLAPIENTRYP)(GLenum light, GLenum pname, const GLfloat *params)) OGLGETPROCADDRESS("glLightfv"); 296 | + if (!pfn_glLightfv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 297 | + 298 | + // GLGETPROC_(glLineWidth, ""); 299 | + pfn_glLineWidth = (void (GLAPIENTRYP)(GLfloat width)) OGLGETPROCADDRESS("glLineWidth"); 300 | + if (!pfn_glLineWidth) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 301 | + 302 | + // GLGETPROC_(glLoadIdentity, ""); 303 | + pfn_glLoadIdentity = (void (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glLoadIdentity"); 304 | + if (!pfn_glLoadIdentity) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 305 | + 306 | + // GLGETPROC_(glLoadMatrixf, ""); 307 | + pfn_glLoadMatrixf = (void (GLAPIENTRYP)(const GLfloat *m)) OGLGETPROCADDRESS("glLoadMatrixf"); 308 | + if (!pfn_glLoadMatrixf) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 309 | + 310 | + // GLGETPROC_(glMaterialfv, ""); 311 | + pfn_glMaterialfv = (void (GLAPIENTRYP)(GLenum face, GLenum pname, const GLfloat *params)) OGLGETPROCADDRESS("glMaterialfv"); 312 | + if (!pfn_glMaterialfv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 313 | + 314 | + // GLGETPROC_(glMatrixMode, ""); 315 | + pfn_glMatrixMode = (void (GLAPIENTRYP)(GLenum mode)) OGLGETPROCADDRESS("glMatrixMode"); 316 | + if (!pfn_glMatrixMode) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 317 | + 318 | + // GLGETPROC_(glMultMatrixf, ""); 319 | + pfn_glMultMatrixf = (void (GLAPIENTRYP)(const GLfloat *m)) OGLGETPROCADDRESS("glMultMatrixf"); 320 | + if (!pfn_glMultMatrixf) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 321 | + 322 | + // GLGETPROC_(glNormalPointer, ""); 323 | + pfn_glNormalPointer = (void (GLAPIENTRYP)(GLenum type, GLsizei stride, const void *pointer)) OGLGETPROCADDRESS("glNormalPointer"); 324 | + if (!pfn_glNormalPointer) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 325 | + 326 | + // GLGETPROC_(glOrtho, ""); 327 | + pfn_glOrtho = (void (GLAPIENTRYP)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearVal, GLdouble farVal)) OGLGETPROCADDRESS("glOrtho"); 328 | + if (!pfn_glOrtho) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 329 | + 330 | + // GLGETPROC_(glPixelStorei, ""); 331 | + pfn_glPixelStorei = (void (GLAPIENTRYP)(GLenum pname, GLint param)) OGLGETPROCADDRESS("glPixelStorei"); 332 | + if (!pfn_glPixelStorei) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 333 | + 334 | + // GLGETPROC_(glPointSize, ""); 335 | + pfn_glPointSize = (void (GLAPIENTRYP)(GLfloat size)) OGLGETPROCADDRESS("glPointSize"); 336 | + if (!pfn_glPointSize) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 337 | + 338 | + // GLGETPROC_(glPolygonMode, ""); 339 | + pfn_glPolygonMode = (void (GLAPIENTRYP)(GLenum face, GLenum mode)) OGLGETPROCADDRESS("glPolygonMode"); 340 | + if (!pfn_glPolygonMode) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 341 | + 342 | + // GLGETPROC_(glPolygonOffset, ""); 343 | + pfn_glPolygonOffset = (void (GLAPIENTRYP)(GLfloat factor, GLfloat units)) OGLGETPROCADDRESS("glPolygonOffset"); 344 | + if (!pfn_glPolygonOffset) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 345 | + 346 | + // GLGETPROC_(glPopAttrib, ""); 347 | + pfn_glPopAttrib = (void (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glPopAttrib"); 348 | + if (!pfn_glPopAttrib) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 349 | + 350 | + // GLGETPROC_(glPopMatrix, ""); 351 | + pfn_glPopMatrix = (void (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glPopMatrix"); 352 | + if (!pfn_glPopMatrix) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 353 | + 354 | + // GLGETPROC_(glPushAttrib, ""); 355 | + pfn_glPushAttrib = (void (GLAPIENTRYP)(GLbitfield mask)) OGLGETPROCADDRESS("glPushAttrib"); 356 | + if (!pfn_glPushAttrib) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 357 | + 358 | + // GLGETPROC_(glPushMatrix, ""); 359 | + pfn_glPushMatrix = (void (GLAPIENTRYP)(void)) OGLGETPROCADDRESS("glPushMatrix"); 360 | + if (!pfn_glPushMatrix) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 361 | + 362 | + // GLGETPROC_(glScissor, ""); 363 | + pfn_glScissor = (void (GLAPIENTRYP)(GLint x, GLint y, GLsizei width, GLsizei height)) OGLGETPROCADDRESS("glScissor"); 364 | + if (!pfn_glScissor) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 365 | + 366 | + // GLGETPROC_(glShadeModel, ""); 367 | + pfn_glShadeModel = (void (GLAPIENTRYP)(GLenum mode)) OGLGETPROCADDRESS("glShadeModel"); 368 | + if (!pfn_glShadeModel) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 369 | + 370 | + // GLGETPROC_(glStencilFunc, ""); 371 | + pfn_glStencilFunc = (void (GLAPIENTRYP)(GLenum func, GLint ref, GLuint mask)) OGLGETPROCADDRESS("glStencilFunc"); 372 | + if (!pfn_glStencilFunc) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 373 | + 374 | + // GLGETPROC_(glStencilMask, ""); 375 | + pfn_glStencilMask = (void (GLAPIENTRYP)(GLuint mask)) OGLGETPROCADDRESS("glStencilMask"); 376 | + if (!pfn_glStencilMask) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 377 | + 378 | + // GLGETPROC_(glStencilOp, ""); 379 | + pfn_glStencilOp = (void (GLAPIENTRYP)(GLenum fail, GLenum zfail, GLenum zpass)) OGLGETPROCADDRESS("glStencilOp"); 380 | + if (!pfn_glStencilOp) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 381 | + 382 | + // GLGETPROC_(glTexCoord2f, ""); 383 | + pfn_glTexCoord2f = (void (GLAPIENTRYP)(GLfloat s, GLfloat t)) OGLGETPROCADDRESS("glTexCoord2f"); 384 | + if (!pfn_glTexCoord2f) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 385 | + 386 | + // GLGETPROC_(glTexCoordPointer, ""); 387 | + pfn_glTexCoordPointer = (void (GLAPIENTRYP)(GLint size, GLenum type, GLsizei stride, const void *pointer)) OGLGETPROCADDRESS("glTexCoordPointer"); 388 | + if (!pfn_glTexCoordPointer) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 389 | + 390 | + // GLGETPROC_(glTexImage2D, ""); 391 | + pfn_glTexImage2D = (void (GLAPIENTRYP)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)) OGLGETPROCADDRESS("glTexImage2D"); 392 | + if (!pfn_glTexImage2D) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 393 | + 394 | + // GLGETPROC_(glTexParameterf, ""); 395 | + pfn_glTexParameterf = (void (GLAPIENTRYP)(GLenum target, GLenum pname, GLfloat param)) OGLGETPROCADDRESS("glTexParameterf"); 396 | + if (!pfn_glTexParameterf) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 397 | + 398 | + // GLGETPROC_(glTexParameterfv, ""); 399 | + pfn_glTexParameterfv = (void (GLAPIENTRYP)(GLenum target, GLenum pname, const GLfloat *params)) OGLGETPROCADDRESS("glTexParameterfv"); 400 | + if (!pfn_glTexParameterfv) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 401 | + 402 | + // GLGETPROC_(glTexParameteri, ""); 403 | + pfn_glTexParameteri = (void (GLAPIENTRYP)(GLenum target, GLenum pname, GLint param)) OGLGETPROCADDRESS("glTexParameteri"); 404 | + if (!pfn_glTexParameteri) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 405 | + 406 | + // GLGETPROC_(glTexSubImage2D, ""); 407 | + pfn_glTexSubImage2D = (void (GLAPIENTRYP)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)) OGLGETPROCADDRESS("glTexSubImage2D"); 408 | + if (!pfn_glTexSubImage2D) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 409 | + 410 | + // GLGETPROC_(glVertex2i, ""); 411 | + pfn_glVertex2i = (void (GLAPIENTRYP)(GLint x, GLint y)) OGLGETPROCADDRESS("glVertex2i"); 412 | + if (!pfn_glVertex2i) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 413 | + 414 | + // GLGETPROC_(glVertexPointer, ""); 415 | + pfn_glVertexPointer = (void (GLAPIENTRYP)(GLint size, GLenum type, GLsizei stride, const void *pointer)) OGLGETPROCADDRESS("glVertexPointer"); 416 | + if (!pfn_glVertexPointer) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 417 | + 418 | + // GLGETPROC_(glViewport, ""); 419 | + pfn_glViewport = (void (GLAPIENTRYP)(GLint x, GLint y, GLsizei width, GLsizei height)) OGLGETPROCADDRESS("glViewport"); 420 | + if (!pfn_glViewport) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 421 | + 422 | 423 | #ifdef RT_OS_LINUX 424 | XInitThreads(); 425 | @@ -410,9 +810,23 @@ 426 | 427 | int glLdrGetExtFunctions(PPDMDEVINS pDevIns) 428 | { 429 | + /* 430 | PFNRT pfnRet; 431 | GLGETPROC_(glBlendColor, ""); 432 | GLGETPROC_(glBlendEquation, ""); 433 | GLGETPROC_(glClientActiveTexture, ""); 434 | + */ 435 | + 436 | + // GLGETPROC_(glBlendColor, ""); 437 | + pfn_glBlendColor = (void (GLAPIENTRYP)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)) OGLGETPROCADDRESS("glBlendColor"); 438 | + if (!pfn_glBlendColor) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 439 | + 440 | + // GLGETPROC_(glBlendEquation, ""); 441 | + pfn_glBlendEquation = (void (GLAPIENTRYP)(GLenum mode)) OGLGETPROCADDRESS("glBlendEquation"); 442 | + if (!pfn_glBlendEquation) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 443 | + 444 | + // GLGETPROC_(glClientActiveTexture, ""); 445 | + pfn_glClientActiveTexture = (void (GLAPIENTRYP)(GLenum texture)) OGLGETPROCADDRESS("glClientActiveTexture"); 446 | + if (!pfn_glClientActiveTexture) { PDMDevHlpVMSetError(pDevIns, VERR_VGA_GL_SYMBOL_NOT_FOUND, RT_SRC_POS, "Missing OpenGL symbol");} 447 | return VINF_SUCCESS; 448 | } 449 | -------------------------------------------------------------------------------- /6.1.30/VBoxDTraceLibCWrappers.patch: -------------------------------------------------------------------------------- 1 | --- VirtualBox-6.1.30-orig/src/VBox/ExtPacks/VBoxDTrace/include/VBoxDTraceLibCWrappers.h 2021-11-22 16:17:51.000000000 +0100 2 | +++ VirtualBox-6.1.30/src/VBox/ExtPacks/VBoxDTrace/include/VBoxDTraceLibCWrappers.h 2022-01-14 13:08:48.873192645 +0100 3 | @@ -34,7 +34,7 @@ 4 | # ifdef RT_OS_DARWIN 5 | # include /* PATH_MAX */ 6 | # elif !defined(RT_OS_SOLARIS) && !defined(RT_OS_FREEBSD) 7 | -# include /* PATH_MAX */ 8 | +# include /* PATH_MAX */ 9 | # endif 10 | # include /* basename */ 11 | # include 12 | -------------------------------------------------------------------------------- /6.1.30/os_Linux_x86_64.patch: -------------------------------------------------------------------------------- 1 | --- VirtualBox-6.1.30-orig/src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s 2021-11-22 16:21:55.000000000 +0100 2 | +++ VirtualBox-6.1.30/src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s 2022-01-14 13:08:58.777158068 +0100 3 | @@ -1,42 +1,42 @@ 4 | -/ -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- 5 | -/ 6 | -/ The contents of this file are subject to the Mozilla Public 7 | -/ License Version 1.1 (the "License"); you may not use this file 8 | -/ except in compliance with the License. You may obtain a copy of 9 | -/ the License at http://www.mozilla.org/MPL/ 10 | -/ 11 | -/ Software distributed under the License is distributed on an "AS 12 | -/ IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 13 | -/ implied. See the License for the specific language governing 14 | -/ rights and limitations under the License. 15 | -/ 16 | -/ The Original Code is the Netscape Portable Runtime (NSPR). 17 | -/ 18 | -/ The Initial Developer of the Original Code is Netscape 19 | -/ Communications Corporation. Portions created by Netscape are 20 | -/ Copyright (C) 2004 Netscape Communications Corporation. All 21 | -/ Rights Reserved. 22 | -/ 23 | -/ Contributor(s): 24 | -/ 25 | -/ Alternatively, the contents of this file may be used under the 26 | -/ terms of the GNU General Public License Version 2 or later (the 27 | -/ "GPL"), in which case the provisions of the GPL are applicable 28 | -/ instead of those above. If you wish to allow use of your 29 | -/ version of this file only under the terms of the GPL and not to 30 | -/ allow others to use your version of this file under the MPL, 31 | -/ indicate your decision by deleting the provisions above and 32 | -/ replace them with the notice and other provisions required by 33 | -/ the GPL. If you do not delete the provisions above, a recipient 34 | -/ may use your version of this file under either the MPL or the 35 | -/ GPL. 36 | -/ 37 | +// -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- 38 | +// 39 | +// The contents of this file are subject to the Mozilla Public 40 | +// License Version 1.1 (the "License"); you may not use this file 41 | +// except in compliance with the License. You may obtain a copy of 42 | +// the License at http://www.mozilla.org/MPL/ 43 | +// 44 | +// Software distributed under the License is distributed on an "AS 45 | +// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 46 | +// implied. See the License for the specific language governing 47 | +// rights and limitations under the License. 48 | +// 49 | +// The Original Code is the Netscape Portable Runtime (NSPR). 50 | +// 51 | +// The Initial Developer of the Original Code is Netscape 52 | +// Communications Corporation. Portions created by Netscape are 53 | +// Copyright (C) 2004 Netscape Communications Corporation. All 54 | +// Rights Reserved. 55 | +// 56 | +// Contributor(s): 57 | +// 58 | +// Alternatively, the contents of this file may be used under the 59 | +// terms of the GNU General Public License Version 2 or later (the 60 | +// "GPL"), in which case the provisions of the GPL are applicable 61 | +// instead of those above. If you wish to allow use of your 62 | +// version of this file only under the terms of the GPL and not to 63 | +// allow others to use your version of this file under the MPL, 64 | +// indicate your decision by deleting the provisions above and 65 | +// replace them with the notice and other provisions required by 66 | +// the GPL. If you do not delete the provisions above, a recipient 67 | +// may use your version of this file under either the MPL or the 68 | +// GPL. 69 | +// 70 | 71 | -/ PRInt32 _PR_x86_64_AtomicIncrement(PRInt32 *val) 72 | -/ 73 | -/ Atomically increment the integer pointed to by 'val' and return 74 | -/ the result of the increment. 75 | -/ 76 | +// PRInt32 _PR_x86_64_AtomicIncrement(PRInt32 *val) 77 | +// 78 | +// Atomically increment the integer pointed to by 'val' and return 79 | +// the result of the increment. 80 | +// 81 | .text 82 | .globl _PR_x86_64_AtomicIncrement 83 | .align 4 84 | @@ -47,11 +47,11 @@ 85 | incl %eax 86 | ret 87 | 88 | -/ PRInt32 _PR_x86_64_AtomicDecrement(PRInt32 *val) 89 | -/ 90 | -/ Atomically decrement the integer pointed to by 'val' and return 91 | -/ the result of the decrement. 92 | -/ 93 | +// PRInt32 _PR_x86_64_AtomicDecrement(PRInt32 *val) 94 | +// 95 | +// Atomically decrement the integer pointed to by 'val' and return 96 | +// the result of the decrement. 97 | +// 98 | .text 99 | .globl _PR_x86_64_AtomicDecrement 100 | .align 4 101 | @@ -62,11 +62,11 @@ 102 | decl %eax 103 | ret 104 | 105 | -/ PRInt32 _PR_x86_64_AtomicSet(PRInt32 *val, PRInt32 newval) 106 | -/ 107 | -/ Atomically set the integer pointed to by 'val' to the new 108 | -/ value 'newval' and return the old value. 109 | -/ 110 | +// PRInt32 _PR_x86_64_AtomicSet(PRInt32 *val, PRInt32 newval) 111 | +// 112 | +// Atomically set the integer pointed to by 'val' to the new 113 | +// value 'newval' and return the old value. 114 | +// 115 | .text 116 | .globl _PR_x86_64_AtomicSet 117 | .align 4 118 | @@ -76,11 +76,11 @@ 119 | xchgl %eax, (%rdi) 120 | ret 121 | 122 | -/ PRInt32 _PR_x86_64_AtomicAdd(PRInt32 *ptr, PRInt32 val) 123 | -/ 124 | -/ Atomically add 'val' to the integer pointed to by 'ptr' 125 | -/ and return the result of the addition. 126 | -/ 127 | +// PRInt32 _PR_x86_64_AtomicAdd(PRInt32 *ptr, PRInt32 val) 128 | +// 129 | +// Atomically add 'val' to the integer pointed to by 'ptr' 130 | +// and return the result of the addition. 131 | +// 132 | .text 133 | .globl _PR_x86_64_AtomicAdd 134 | .align 4 135 | @@ -91,5 +91,5 @@ 136 | addl %esi, %eax 137 | ret 138 | 139 | -/ Magic indicating no need for an executable stack 140 | +// Magic indicating no need for an executable stack 141 | .section .note.GNU-stack, "", @progbits ; .previous 142 | -------------------------------------------------------------------------------- /6.1.30/undefined_xfree86.patch: -------------------------------------------------------------------------------- 1 | --- VirtualBox-6.1.30-orig/src/VBox/Additions/x11/undefined_xfree86 2021-11-22 16:12:21.000000000 +0100 2 | +++ VirtualBox-6.1.30/src/VBox/Additions/x11/undefined_xfree86 2022-01-14 13:08:33.929245141 +0100 3 | @@ -1,6 +1,10 @@ 4 | # This file contains the complete list, excluding modules of undefined symbols 5 | # which are allowed in XFree86 4.3 binary driver modules. 6 | 7 | +__stop___sancov_guards 8 | +__sanitizer_cov_trace_pc_guard_init 9 | +__afl_area_ptr 10 | +__start___sancov_guards 11 | AddCallback 12 | AddEnabledDevice 13 | AddExtension 14 | -------------------------------------------------------------------------------- /AFL.kmk: -------------------------------------------------------------------------------- 1 | # $Id: AFL.kmk 3393 2020-06-30 17:11:42Z bird $ 2 | ## @file 3 | # kBuild Tool Config - Generic 64-bit GCC v3.2.x or later using the system GCC, for building C++ code. 4 | # 5 | 6 | # 7 | # Copyright (c) 2004-2017 knut st. osmundsen 8 | # 9 | # This file is part of kBuild. 10 | # 11 | # kBuild is free software; you can redistribute it and/or modify 12 | # it under the terms of the GNU General Public License as published by 13 | # the Free Software Foundation; either version 2 of the License, or 14 | # (at your option) any later version. 15 | # 16 | # kBuild is distributed in the hope that it will be useful, 17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | # GNU General Public License for more details. 20 | # 21 | # You should have received a copy of the GNU General Public License 22 | # along with kBuild; if not, write to the Free Software 23 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 24 | # 25 | # 26 | # As a special exception you are granted permission to include this file, via 27 | # the kmk include directive, as you wish without this in itself causing the 28 | # resulting makefile, program or whatever to be covered by the GPL license. 29 | # This exception does not however invalidate any other reasons why the makefile, 30 | # program, whatever should not be covered the GPL. 31 | # 32 | # 33 | 34 | TOOL_AFL := American Fuzzing Loop fast++ 35 | 36 | # Tool Specific Properties 37 | ifndef TOOL_AFL_PREFIX 38 | TOOL_AFL_PREFIX := 39 | endif 40 | ifndef TOOL_AFL_SUFFIX 41 | TOOL_AFL_SUFFIX := $(HOSTSUFF_EXE) 42 | endif 43 | if1of ($(KBUILD_HOST), solaris) 44 | TOOL_AFL_PREFIX2 ?= g 45 | else 46 | TOOL_AFL_PREFIX2 ?= 47 | endif 48 | TOOL_AFL_SUFFIX2 ?= $(HOSTSUFF_EXE) 49 | TOOL_AFL_PREFIX3 ?= 50 | TOOL_AFL_SUFFIX3 ?= $(HOSTSUFF_EXE) 51 | TOOL_AFL_CC ?= afl-clang-fast$(HOSTSUFF_EXE) -m64 52 | TOOL_AFL_CXX ?= afl-clang-fast++$(HOSTSUFF_EXE) -m64 53 | TOOL_AFL_PCH ?= $(TOOL_AFL_CXX) 54 | TOOL_AFL_AS ?= afl-clang-fast$(HOSTSUFF_EXE) -m64 55 | TOOL_AFL_AR ?= llvm-ar$(HOSTSUFF_EXE) 56 | # TOOL_AFL_AR ?= ar$(HOSTSUFF_EXE) 57 | TOOL_AFL_LD ?= afl-clang-fast++$(HOSTSUFF_EXE) -m64 58 | if1of ($(KBUILD_HOST), solaris) 59 | TOOL_AFL_LD_SYSMOD ?= $(TOOL_AFL_PREFIX3)ld$(TOOL_AFL_SUFFIX3) 60 | else 61 | TOOL_AFL_LD_SYSMOD ?= $(TOOL_AFL_PREFIX2)ld$(TOOL_AFL_SUFFIX2) 62 | endif 63 | ifndef TOOL_AFL_LDFLAGS.$(KBUILD_TARGET) 64 | TOOL_AFL_LDFLAGS.dll ?= -shared 65 | else 66 | TOOL_AFL_LDFLAGS.dll ?= $(TOOL_AFL_LDFLAGS.$(KBUILD_TARGET)) 67 | endif 68 | TOOL_AFL_LDFLAGS.sysmod ?= -r -m elf_x86_64$(if-expr "$(KBUILD_TARGET)" == "freebsd" || "$(KBUILD_TARGET)" == "gnukfbsd",_fbsd,) 69 | TOOL_AFL_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(KBUILD_TARGET).$(KBUILD_TYPE)) $($(1)_SONAME.$(KBUILD_TARGET)) $($(1)_SONAME.$(KBUILD_TYPE)) $($(1)_SONAME) $(notdir $(2))) 70 | ifeq ($(KBUILD_TARGET),os2) 71 | TOOL_AFL_LD_MAP ?= -Zmap=$(1) 72 | else 73 | TOOL_AFL_LD_MAP ?= 74 | endif 75 | ifeq ($(KBUILD_TARGET),os2) 76 | TOOL_AFL_LD_SYSMOD_MAP ?= -Zmap=$(1) 77 | else 78 | TOOL_AFL_LD_SYSMOD_MAP ?= 79 | endif 80 | TOOL_AFL_OBJCOPY ?= $(TOOL_AFL_PREFIX2)objcopy$(TOOL_AFL_SUFFIX2) 81 | 82 | ifdef SLKRUNS 83 | TOOL_AFL_CC += -fmessage-length=0 84 | TOOL_AFL_CXX += -fmessage-length=0 85 | endif 86 | 87 | # General Properties used by kBuild 88 | TOOL_AFL_COBJSUFF ?= .o 89 | TOOL_AFL_CFLAGS ?= 90 | TOOL_AFL_CFLAGS.debug ?= -g 91 | TOOL_AFL_CFLAGS.profile ?= -O2 #-g -pg 92 | TOOL_AFL_CFLAGS.release ?= -O2 93 | TOOL_AFL_CINCS ?= 94 | TOOL_AFL_CDEFS ?= 95 | 96 | TOOL_AFL_CXXOBJSUFF ?= .o 97 | TOOL_AFL_CXXFLAGS ?= 98 | TOOL_AFL_CXXFLAGS.debug ?= -g 99 | TOOL_AFL_CXXFLAGS.profile ?= -O2 #-g -pg 100 | TOOL_AFL_CXXFLAGS.release ?= -O2 101 | TOOL_AFL_CXXINCS ?= 102 | TOOL_AFL_CXXDEFS ?= 103 | 104 | TOOL_AFL_PCHOBJSUFF ?= .h.gch 105 | TOOL_AFL_PCHFLAGS ?= $(TOOL_AFL_CXXFLAGS) 106 | TOOL_AFL_PCHFLAGS.debug ?= $(TOOL_AFL_CXXFLAGS.debug) 107 | TOOL_AFL_PCHFLAGS.profile ?= $(TOOL_AFL_CXXFLAGS.profile) 108 | TOOL_AFL_PCHFLAGS.release ?= $(TOOL_AFL_CXXFLAGS.release) 109 | TOOL_AFL_PCHINCS ?= $(TOOL_AFL_CXXINCS) 110 | TOOL_AFL_PCHDEFS ?= $(TOOL_AFL_CXXDEFS) 111 | 112 | TOOL_AFL_ASFLAGS ?= -x assembler-with-cpp 113 | TOOL_AFL_ASFLAGS.debug ?= -g 114 | TOOL_AFL_ASFLAGS.profile ?= -g 115 | TOOL_AFL_ASOBJSUFF ?= .o 116 | 117 | TOOL_AFL_ARFLAGS ?= cr 118 | TOOL_AFL_ARLIBSUFF ?= .a 119 | 120 | TOOL_AFL_LDFLAGS ?= 121 | TOOL_AFL_LDFLAGS.debug ?= -g 122 | TOOL_AFL_LDFLAGS.profile ?= -g 123 | 124 | 125 | ## Compile C source. 126 | # @param $(target) Normalized main target name. 127 | # @param $(source) Source filename (relative). 128 | # @param $(obj) Object file name. This shall be (re)created by the compilation. 129 | # @param $(dep) Dependcy file. This shall be (re)created by the compilation. 130 | # @param $(flags) Flags. 131 | # @param $(defs) Definitions. No -D or something. 132 | # @param $(incs) Includes. No -I or something. 133 | # @param $(dirdep) Directory creation dependency. 134 | # @param $(deps) Other dependencies. 135 | # 136 | # @param $(outbase) Output basename (full). Use this for list files and such. 137 | # @param $(objsuff) Object suffix. 138 | TOOL_AFL_COMPILE_C_DEPEND = 139 | TOOL_AFL_COMPILE_C_DEPORD = 140 | TOOL_AFL_COMPILE_C_OUTPUT = $(if-expr "$(use_objcache)" != "",$(outbase).i,) 141 | TOOL_AFL_COMPILE_C_USES_KOBJCACHE = $(if-expr "$(use_objcache)" != "",1,) 142 | define TOOL_AFL_COMPILE_C_CMDS 143 | if "$(use_objcache)" != "" 144 | $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\ 145 | --kObjCache-cpp $(outbase).i\ 146 | $(TOOL_AFL_CC) -E -o -\ 147 | $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 148 | -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ 149 | $(abspath $(source))\ 150 | --kObjCache-cc $(obj)\ 151 | $(TOOL_AFL_CC) -c\ 152 | $(flags) -fpreprocessed -x c\ 153 | -o $(obj)\ 154 | - 155 | else 156 | $(QUIET)$(TOOL_AFL_CC) -c\ 157 | $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 158 | -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ 159 | -o $(obj)\ 160 | $(abspath $(source)) 161 | endif 162 | $(QUIET)$(APPEND) -n "$(dep)" "" "$(source):" "" 163 | endef 164 | 165 | 166 | ## Compile C++ source. 167 | # @param $(target) Normalized main target name. 168 | # @param $(source) Source filename (relative). 169 | # @param $(obj) Object file name. This shall be (re)created by the compilation. 170 | # @param $(dep) Dependcy file. This shall be (re)created by the compilation. 171 | # @param $(flags) Flags. 172 | # @param $(defs) Definitions. No -D or something. 173 | # @param $(incs) Includes. No -I or something. 174 | # @param $(dirdep) Directory creation dependency. 175 | # @param $(deps) Other dependencies. 176 | # @param $(outbase) Output basename (full). Use this for list files and such. 177 | # @param $(objsuff) Object suffix. 178 | TOOL_AFL_COMPILE_CXX_OUTPUT = $(if-expr "$(use_objcache)" != "",$(outbase).ii,) 179 | TOOL_AFL_COMPILE_CXX_DEPEND = $($(target)_1_GCC_PCH_FILE) 180 | TOOL_AFL_COMPILE_CXX_DEPORD = 181 | TOOL_AFL_COMPILE_CXX_USES_KOBJCACHE = $(if-expr "$(use_objcache)" != "",1,) 182 | define TOOL_AFL_COMPILE_CXX_CMDS 183 | if "$(use_objcache)" != "" 184 | $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\ 185 | --kObjCache-cpp $(outbase).ii\ 186 | $(TOOL_AFL_CXX) -E -o - $(if-expr defined($(target)_PCH_HDR)\ 187 | ,-fpch-preprocess -Winvalid-pch -I$($(target)_1_GCC_PCH_DIR) -include $(basename $($(target)_1_GCC_PCH_FILE)),)\ 188 | $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 189 | -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ 190 | $(abspath $(source))\ 191 | --kObjCache-cc $(obj)\ 192 | $(TOOL_AFL_CXX) -c\ 193 | $(flags) -fpreprocessed $(if-expr defined($(target)_PCH_HDR),-fpch-preprocess,) -x c++\ 194 | -o $(obj)\ 195 | - 196 | else 197 | $(QUIET)$(TOOL_AFL_CXX) -c\ 198 | $(flags) $(addprefix -I, $($(target)_1_GCC_PCH_DIR) $(incs)) $(addprefix -D, $(defs))\ 199 | -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ 200 | -o $(obj) $(if-expr defined($(target)_PCH_HDR) \ 201 | ,-Winvalid-pch -include $(basename $($(target)_1_GCC_PCH_FILE)),) \ 202 | $(abspath $(source)) 203 | endif 204 | $(QUIET)$(APPEND) -n "$(dep)" "" "$(source):" "" 205 | endef 206 | 207 | 208 | ## Precompile C++ header. 209 | # @param $(target) Normalized main target name. 210 | # @param $(source) Source filename (relative). 211 | # @param $(obj) Object file name. This shall be (re)created by the compilation. 212 | # @param $(dep) Dependcy file. This shall be (re)created by the compilation. 213 | # @param $(flags) Flags. 214 | # @param $(defs) Definitions. No -D or something. 215 | # @param $(incs) Includes. No -I or something. 216 | # @param $(dirdep) Directory creation dependency. 217 | # @param $(deps) Other dependencies. 218 | # @param $(outbase) Output basename (full). Use this for list files and such. 219 | # @param $(objsuff) Object suffix. 220 | TOOL_AFL_COMPILE_PCH_OUTPUT = $($(target)_1_GCC_PCH_FILE) 221 | TOOL_AFL_COMPILE_PCH_DEPEND = 222 | TOOL_AFL_COMPILE_PCH_DEPORD = $($(target)_1_GCC_PCH_DIR) 223 | define TOOL_AFL_COMPILE_PCH_CMDS 224 | $(QUIET)$(TOOL_AFL_PCH) -c\ 225 | $(flags) $(addprefix -I, $($(target)_1_GCC_PCH_DIR) $(incs)) $(addprefix -D, $(defs))\ 226 | -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ 227 | -o $(obj)\ 228 | $(abspath $(source)) 229 | $(INSTALL) --hard-link-files-when-possible -m 0644 -- "$(obj)" "$($(target)_1_GCC_PCH_FILE)" 230 | $(QUIET)$(APPEND) -n "$(dep)" "" "$(source):" "" 231 | endef 232 | 233 | 234 | ## Compile Assembly source. 235 | # @param $(target) Normalized main target name. 236 | # @param $(source) Source filename (relative). 237 | # @param $(obj) Object file name. This shall be (re)created by the compilation. 238 | # @param $(dep) Dependcy file. This shall be (re)created by the compilation. 239 | # @param $(flags) Flags. 240 | # @param $(defs) Definitions. No -D or something. 241 | # @param $(incs) Includes. No -I or something. 242 | # @param $(dirdep) Directory creation dependency. 243 | # @param $(deps) Other dependencies. 244 | # @param $(outbase) Output basename (full). Use this for list files and such. 245 | # @param $(objsuff) Object suffix. 246 | # 247 | TOOL_AFL_COMPILE_AS_OUTPUT = 248 | TOOL_AFL_COMPILE_AS_DEPEND = 249 | TOOL_AFL_COMPILE_AS_DEPORD = 250 | define TOOL_AFL_COMPILE_AS_CMDS 251 | $(QUIET)$(TOOL_AFL_AS) -c\ 252 | $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\ 253 | -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\ 254 | -o $(obj)\ 255 | $(abspath $(source)) 256 | $(QUIET)$(APPEND) -n "$(dep)" "" "$(source):" "" 257 | endef 258 | 259 | 260 | ## Link library 261 | # @param $(target) Normalized main target name. 262 | # @param $(out) Library name. 263 | # @param $(objs) Object files to put in the library. 264 | # @param $(flags) Flags. 265 | # @param $(dirdep) Directory creation dependency. 266 | # @param $(deps) Other dependencies. 267 | # @param $(othersrc) Unhandled sources. 268 | # @param $(outbase) Output basename (full). Use this for list files and such. 269 | TOOL_AFL_LINK_LIBRARY_OUTPUT = $(out).ar-script 270 | TOOL_AFL_LINK_LIBRARY_DEPEND = $(othersrc) 271 | TOOL_AFL_LINK_LIBRARY_DEPORD = 272 | define TOOL_AFL_LINK_LIBRARY_CMDS 273 | $(QUIET)$(APPEND) $(out).ar-script 'CREATE $(out)' 274 | $(QUIET)$(APPEND) -n $(out).ar-script \ 275 | $(foreach o,$(filter-out %.h.gch,$(objs)), 'ADDMOD $(o)') \ 276 | $(foreach o,$(othersrc), 'ADDLIB $(o)') 277 | $(QUIET)$(APPEND) $(out).ar-script 'SAVE' 278 | $(QUIET)$(APPEND) $(out).ar-script 'END' 279 | $(QUIET)$(REDIRECT) -rti $(out).ar-script -- $(TOOL_AFL_AR) -M 280 | endef 281 | 282 | 283 | ## Link program 284 | # @param $(target) Normalized main target name. 285 | # @param $(out) Program name. 286 | # @param $(objs) Object files to link together. 287 | # @param $(libs) Libraries to search. 288 | # @param $(libpath) Library search paths. 289 | # @param $(flags) Flags. 290 | # @param $(dirdep) Directory creation dependency. 291 | # @param $(deps) Other dependencies. 292 | # @param $(othersrc) Unhandled sources. 293 | # @param $(custom_pre) Custom step invoked before linking. 294 | # @param $(custom_post) Custom step invoked after linking. 295 | # @param $(outbase) Output basename (full). Use this for list files and such. 296 | TOOL_AFL_LINK_PROGRAM_OUTPUT = 297 | TOOL_AFL_LINK_PROGRAM_OUTPUT_MAYBE = $(outbase).map 298 | TOOL_AFL_LINK_PROGRAM_OUTPUT_DEBUG = $(outbase).debug 299 | TOOL_AFL_LINK_PROGRAM_DEBUG_INSTALL_FN = $(2).debug=>$(basename $(3)).debug 300 | TOOL_AFL_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) 301 | TOOL_AFL_LINK_PROGRAM_DEPORD = 302 | define TOOL_AFL_LINK_PROGRAM_CMDS 303 | $(QUIET)$(TOOL_AFL_LD) $(flags) -o $(out) $(filter-out %.h.gch,$(objs))\ 304 | $(foreach p,$(libpath), -L$(p))\ 305 | $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\ 306 | $(call TOOL_AFL_LD_MAP,$(outbase).map) 307 | ifeq ($(ld_debug),split) 308 | $(QUIET)$(TOOL_AFL_OBJCOPY) --only-keep-debug $(out) $(outbase).debug 309 | $(QUIET)$(CHMOD) a-x $(outbase).debug 310 | $(QUIET)$(TOOL_AFL_OBJCOPY) --strip-debug --strip-unneeded --add-gnu-debuglink=$(outbase).debug $(out) 311 | endif 312 | endef 313 | 314 | 315 | ## Link DLL 316 | # @param $(target) Normalized main target name. 317 | # @param $(out) Program name. 318 | # @param $(objs) Object files to link together. 319 | # @param $(libs) Libraries to search. 320 | # @param $(libpath) Library search paths. 321 | # @param $(flags) Flags. 322 | # @param $(dirdep) Directory creation dependency. 323 | # @param $(deps) Other dependencies. 324 | # @param $(othersrc) Unhandled sources. 325 | # @param $(custom_pre) Custom step invoked before linking. 326 | # @param $(custom_post) Custom step invoked after linking. 327 | # @param $(outbase) Output basename (full). Use this for list files and such. 328 | TOOL_AFL_LINK_DLL_OUTPUT = 329 | TOOL_AFL_LINK_DLL_OUTPUT_MAYBE = $(outbase).map 330 | TOOL_AFL_LINK_DLL_OUTPUT_DEBUG = $(outbase).debug 331 | TOOL_AFL_LINK_DLL_DEBUG_INSTALL_FN = $(2).debug=>$(basename $(3)).debug 332 | TOOL_AFL_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) 333 | TOOL_AFL_LINK_DLL_DEPORD = 334 | define TOOL_AFL_LINK_DLL_CMDS 335 | $(QUIET)$(TOOL_AFL_LD) $(TOOL_AFL_LDFLAGS.dll) $(flags) -o $(out)\ 336 | $(if $(filter-out win os2, $(KBUILD_TARGET)),$(call TOOL_AFL_LD_SONAME,$(target),$(out)))\ 337 | $(filter-out %.h.gch,$(objs))\ 338 | $(foreach p,$(libpath), -L$(p))\ 339 | $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\ 340 | $(call TOOL_AFL_LD_MAP,$(outbase).map) 341 | ifeq ($(ld_debug),split) 342 | $(QUIET)$(TOOL_AFL_OBJCOPY) --only-keep-debug $(out) $(outbase).debug 343 | $(QUIET)$(CHMOD) a-x $(outbase).debug 344 | $(QUIET)$(TOOL_AFL_OBJCOPY) --strip-debug --strip-unneeded --add-gnu-debuglink=$(outbase).debug $(out) 345 | endif 346 | endef 347 | 348 | 349 | ## Link system module (windows aka driver, linux aka kernel module) 350 | # @param $(target) Normalized main target name. 351 | # @param $(out) System module name. 352 | # @param $(objs) Object files to link together. 353 | # @param $(libs) Libraries to search. 354 | # @param $(libpath) Library search paths. 355 | # @param $(flags) Flags. 356 | # @param $(dirdep) Directory creation dependency. 357 | # @param $(deps) Other dependencies. 358 | # @param $(othersrc) Unhandled sources. 359 | # @param $(custom_pre) Custom step invoked before linking. 360 | # @param $(custom_post) Custom step invoked after linking. 361 | # @param $(outbase) Output basename (full). Use this for list files and such. 362 | TOOL_AFL_LINK_SYSMOD_OUTPUT = 363 | TOOL_AFL_LINK_SYSMOD_OUTPUT_MAYBE = $(outbase).map 364 | TOOL_AFL_LINK_SYSMOD_OUTPUT_DEBUG = $(outbase).debug 365 | TOOL_AFL_LINK_SYSMOD_DEBUG_INSTALL_FN = $(2).debug=>$(basename $(3)).debug 366 | TOOL_AFL_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) 367 | TOOL_AFL_LINK_SYSMOD_DEPORD = 368 | define TOOL_AFL_LINK_SYSMOD_CMDS 369 | $(QUIET)$(TOOL_AFL_LD_SYSMOD) $(TOOL_AFL_LDFLAGS.sysmod) $(flags) -o $(out) $(filter-out %.h.gch,$(objs))\ 370 | $(foreach p,$(libpath), -L$(p))\ 371 | $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))\ 372 | $(call TOOL_AFL_LD_SYSMOD_MAP,$(outbase).map) 373 | ifeq ($(ld_debug),split) 374 | $(QUIET)$(TOOL_AFL_OBJCOPY) --only-keep-debug $(out) $(outbase).debug 375 | $(QUIET)$(CHMOD) a-x $(outbase).debug 376 | $(QUIET)$(TOOL_AFL_OBJCOPY) --strip-debug --strip-unneeded --add-gnu-debuglink=$(outbase).debug $(out) 377 | endif 378 | endef 379 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Companion to the "Introduction to VirtualBox security research" Blog Post 2 | 3 | https://blog.doyensec.com/2022/04/26/vbox-fuzzing.html 4 | --------------------------------------------------------------------------------