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 #include /* for bzero */ #include -#if defined(__APPLE__) -#include -#include -#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);