Yes, openmotif is buggy here and needs to be fixed. libXt used to build with -flat_namespace in order to support buggy coding paradigms used by OpenMotif and libXaw. libXt was fixed to use proper namspacing and libXaw and libXaw3d were updated as well to not require that buggy hack (eg: https://cgit.freedesktop.org/xorg/lib/libXaw/commit/?id=b3049d9b13333c0e67f1f23959227020741f486b). Openmotif needs to follow suit with a similar change.
Note that XQuartz continues to ship libXt.6.dylib built with -Wl,-flat_namespace in order to maintain binary compatibility with existing openmotif binaries. The 2-level-namespace version was shipped as libXt.7.dylib. Unfortunately, executables that make use of openmotif and libXaw sometimes don't work at all because they pull in both versions of libXt and end up with library cross-talk. I really regret that wasn't discovered in the months of beta and rc testing in which this change was available. Had it been known before release, I probably would've scrapped the version bump and stayed with a single libXt version (the one with the 2-level namespace), informing OpenMotif users to stay on an older version of XQuartz until OpenMotif released a fix. This was discussed in IRC back in January (see https://echelog.com/logs/browse/macports/1452121200) and do some other google searches for vendorShellClassRec and vendorShellWidgetClass. Here's a snippit of that conversation that is relevant: [08:32:38] <jeremyhu_> howarth: FWIW, you should spend your effort trying to fix openmotif instead. [08:32:41] <howarth> doesn't force the replacement of the existing tcl/tk ports that are installed when building pymol [08:32:59] <jeremyhu_> See http://pastebin.com/vdaq1gwD as a suggested starting point. It looks like it needs additional work though because nedit doesn't launch with it. [08:35:45] <jeremyhu_> howarth: A quick look through looks like there are a bunch of vendorShellClassRec references that I need to get pointed at _XmVendorShellClassRec instead. > On Sep 7, 2016, at 14:37, Tom Roberts <[email protected]> wrote: > > This is Mac OS X 10.11.6 (El Capitan) with XQuartz 2.7.9. I installed > OpenMotif 2.3.4 using HomeBrew (so it's in /usr/local). I have a very large > program that uses Motif, which fails now, but worked when built on Mavericks > with an older XQuartz; I traced its problem to Motif, and Motif's problem > seems to be related to libXt. > > I found a simple Motif example here (attached, after fixing two trivial > warnings in this old code) > https://www.cs.cf.ac.uk/Dave/X_lecture/node5.html > > It builds in the usual way: > gcc -I/usr/local/include -I/opt/X11/include push.c > /usr/local/lib/libXm.dylib \ > /opt/X11/lib/libXt.dylib > > But it does not run, with an error similar to my large program: > a.out > Error: attempt to add non-widget child "dsm" to parent "a.out" which > supports only widgets > > BTW I have also seen these error messages from my large program when trying > different combinations: > Error: Couldn't find per display information > Warning: XmManager ClassInitialize: XmeTraitSet failed > Error: attempt to add non-widget child "DropSiteManager" to parent "main" > which \ > supports only widgets > _XmGetDefaultDisplay cannot be used prior to VendorS.Initialize, returns > NULL > (I believe this last is from incorrectly linking libXt before > libXm.) > > In desperation I went back to the old versions of libXm and libXt (that work > in my large program, built on Mavericks and runs now on El Capitan; > libXm.2.dylib came from its bundle): > gcc -I/usr/local/include -I/opt/X11/include push.c > /usr/local/lib/libXm.2.dylib \ > /opt/X11/lib/libXt.6.dylib > a.out > Warning: Cannot find callback list in XtAddCallback > A window pops up with the push button, but pushing the button does not print > the message (as the warning suggests). That's why I suspect the problem is in > XQuartz and not OpenMotif. (It's possible my large program does not use this > feature of libXt.) > > Help, please! > > (I also have an inquiry in homebrew-discuss with subject "openmotif fails to > run".) > <push.c> _______________________________________________ > Do not post admin requests to the list. They will be ignored. > X11-users mailing list ([email protected]) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/x11-users/jeremyhu%40freedesktop.org > > This email sent to [email protected]
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Do not post admin requests to the list. They will be ignored. X11-users mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/x11-users/archive%40mail-archive.com This email sent to [email protected]
