Bug: https://bugs.gentoo.org/945519

Patch copied from Alpine Linux.
https://gitlab.alpinelinux.org/strophy/aports/-/commit/10d31cd725f131693153f003893f8a9c41fec5d9

--- a/nx-X11/programs/Xserver/dbe/dbe.c
+++ b/nx-X11/programs/Xserver/dbe/dbe.c
@@ -56,7 +56,7 @@
 /* GLOBALS */
 
 /* Per-screen initialization functions [init'ed by DbeRegisterFunction()] */
-static Bool	(* DbeInitFunct[MAXSCREENS])();	/* pScreen, pDbeScreenPriv */
+static Bool	(* DbeInitFunct[MAXSCREENS])(ScreenPtr, DbeScreenPrivPtr);	/* pScreen, pDbeScreenPriv */
 
 /* These are static globals copied to DBE's screen private for use by DDX */
 static int	dbeScreenPrivIndex;
@@ -89,7 +89,7 @@ static Bool	firstRegistrationPass = TRUE;
  *****************************************************************************/
 
 void
-DbeRegisterFunction(ScreenPtr pScreen, Bool (*funct) (/* ??? */))
+DbeRegisterFunction(ScreenPtr pScreen, Bool (*funct) (ScreenPtr, DbeScreenPrivPtr))
 {
     int	i;
 
--- a/nx-X11/programs/Xserver/dix/window.c
+++ b/nx-X11/programs/Xserver/dix/window.c
@@ -375,7 +375,7 @@ AllocateWindow(ScreenPtr pScreen)
 	    else
 		ppriv->ptr = (void *)NULL;
 	}
-#if _XSERVER64
+#ifdef _XSERVER64
 	pWin->drawable.pad0 = 0;
         pWin->drawable.pad1 = 0;
 #endif
--- a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.h
@@ -26,6 +26,15 @@
 #ifndef __Clipboard_H__
 #define __Clipboard_H__
 
+#ifndef _XSERVER64
+typedef unsigned long XlibAtom;
+#else
+typedef unsigned long Atom64;
+#define XlibAtom Atom64
+#endif
+
+typedef union _XEvent XEvent;
+
 /*
  * Queried at clipboard initialization.
  */
@@ -58,17 +67,10 @@ extern int nxagentConvertSelection(ClientPtr client, WindowPtr pWin, Atom select
                                       Window requestor, Atom property, Atom target, Time time);
 
 extern void nxagentHandleSelectionClearFromXServerByIndex(int index);
-#ifdef XEvent
 extern void nxagentHandleSelectionClearFromXServerByAtom(XlibAtom sel);
 extern void nxagentHandleSelectionClearFromXServer(XEvent *X);
 extern void nxagentHandleSelectionRequestFromXServer(XEvent *X);
 extern void nxagentHandleSelectionNotifyFromXServer(XEvent *X);
-#else
-extern void nxagentHandleSelectionClearFromXServerByAtom();
-extern void nxagentHandleSelectionClearFromXServer();
-extern void nxagentHandleSelectionRequestFromXServer();
-extern void nxagentHandleSelectionNotifyFromXServer();
-#endif
 
 extern int nxagentFindCurrentSelectionIndex(Atom sel);
 /*
--- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
@@ -1533,8 +1533,8 @@ N/A
     pScreen->SaveScreen = nxagentSaveScreen;
     pScreen->GetImage = nxagentGetImage;
     pScreen->GetSpans = nxagentGetSpans;
-    pScreen->PointerNonInterestBox = (void (*)()) 0;
-    pScreen->SourceValidate = (void (*)()) 0;
+    pScreen->PointerNonInterestBox = NULL;
+    pScreen->SourceValidate = NULL;
 
     pScreen->CreateScreenResources = nxagentCreateScreenResources;
 
@@ -1610,12 +1610,12 @@ N/A
      * Backing store procedures.
      */
 
-    pScreen->SaveDoomedAreas = (void (*)()) 0;
-    pScreen->RestoreAreas = (RegionPtr (*)()) 0;
-    pScreen->ExposeCopy = (void (*)()) 0;
-    pScreen->TranslateBackingStore = (RegionPtr (*)()) 0;
-    pScreen->ClearBackingStore = (RegionPtr (*)()) 0;
-    pScreen->DrawGuarantee = (void (*)()) 0;
+    pScreen->SaveDoomedAreas = NULL;
+    pScreen->RestoreAreas = NULL;
+    pScreen->ExposeCopy = NULL;
+    pScreen->TranslateBackingStore = NULL;
+    pScreen->ClearBackingStore = NULL;
+    pScreen->DrawGuarantee = NULL;
 
     if (enableBackingStore)
     {
