Required to override libXt symbols when using two-level namespace.
--- lib/Xm/VendorS.c.orig	2017-08-31 07:12:38
+++ lib/Xm/VendorS.c	2024-05-23 00:06:39
@@ -48,10 +48,6 @@
 #include <Xm/VendorSP.h>
 #include <Xm/XmosP.h>		/* for bzero */
 #include <Xm/ToolTipCT.h>
-#if defined(__APPLE__)
-#include <Xm/GrabShell.h>
-#include <Xm/DragOverS.h>
-#endif
 #include "BaseClassI.h"
 #include "CallbackI.h"
 #include "ExtObjectI.h"
@@ -295,24 +291,6 @@
 
 static Display * _XmDisplayHandle = NULL ;
 static XtErrorMsgHandler previousWarningHandler = NULL;
-
-
-#if defined(__APPLE__)
-/* Hack necessary to handle Apple two-level namespaces */
-extern WidgetClass vendorShellWidgetClass; /* from Xt/Vendor.c */
-extern VendorShellClassRec xmVendorShellClassRec;
-#define vendorShellClassRec xmVendorShellClassRec
-
-__attribute__((constructor))
-static void __VendorShellHack(void)
-{
-    vendorShellWidgetClass = (WidgetClass)(&xmVendorShellClassRec);
-    transientShellWidgetClass->core_class.superclass = vendorShellWidgetClass;
-    topLevelShellWidgetClass->core_class.superclass = vendorShellWidgetClass;
-    xmGrabShellWidgetClass->core_class.superclass = vendorShellWidgetClass;
-    xmDragOverShellWidgetClass->core_class.superclass = vendorShellWidgetClass;
-}
-#endif
 
 
 /***************************************************************************
@@ -475,6 +453,9 @@
     GetValuesPosthook,				/* get_values_posthook  */
 };
 
+#if defined(__APPLE__)
+__attribute__((weak))
+#endif
 externaldef(vendorshellclassrec)
 VendorShellClassRec vendorShellClassRec = {
     {	
@@ -529,6 +510,9 @@
     }                            
 };	   
 
+#if defined(__APPLE__)
+__attribute__((weak))
+#endif
 externaldef(vendorshellwidgetclass) WidgetClass 
   vendorShellWidgetClass = (WidgetClass) (&vendorShellClassRec);
 
