#50463 closed defect (fixed)
ddd @3.3.12: Xt error (Unresolved inheritance operation)
Reported by: | ewout+keyword+macports.8d331b@… | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.4 |
Keywords: | Cc: | mohd-akram (Mohamed Akram) | |
Port: | ddd |
Description (last modified by mf2k (Frank Schima))
Hi,
after upgrading to El Capitan recently, I got this error in a previously working DDD setup, after upgrading a few X11 ports:
Warning: No type converter registered for 'String' to 'Orientation' conversion. Warning: No type converter registered for 'String' to 'Orientation' conversion. Warning: No type converter registered for 'String' to 'Orientation' conversion. Error: Unresolved inheritance operation Xt error (Unresolved inheritance operation). Oops! You have found a bug in DDD. If you can reproduce this bug, please send a bug report to <ddd@gnu.org>, giving a subject like DDD 3.3.12 (i386-apple-darwin15.2.0) gets Xt error To enable us to fix the bug, you should include the following information: * What you were doing to get this message. Report all the facts. * The contents of the `~/.ddd/log' file as generated by this session. Please read also the section "Reporting Bugs" in the DDD manual. We thank you for your support. ddd: Cannot save options
I searched through trac.macports.org and found out this error was last detected in 2009 on OS X Tiger. Previously I was running Snow Leopard and I didn't have any problems there.
A little research showed that the culprit for this error most likely is xorg-libXaw, because that after upgrading that port, DDD would not execute properly anymore.
However, I am no expert in X11 so I could not find out exactly what dependency was missing. The DDD code itself is archaic, but the program is very useful - I use it as a GUI frontend to arm-none-eabi-gdb for embedded software development.
I can confirm that DDD3.3.12 works on other X11 platforms without a problem (FreeBSD 10.2 and CentOS Linux).
Change History (12)
comment:1 Changed 9 years ago by mf2k (Frank Schima)
Keywords: | xorg-libXt xorg-libXaw removed |
---|---|
Port: | ddd added; DDD removed |
comment:2 Changed 9 years ago by mf2k (Frank Schima)
Description: | modified (diff) |
---|
comment:3 follow-up: 4 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Did you send the bug report to the email address indicated in the error message?
comment:4 Changed 9 years ago by ewout+keyword+macports.8d331b@…
Replying to ryandesign@…:
Did you send the bug report to the email address indicated in the error message?
Indeed, but no response from the GNU people.
comment:5 Changed 8 years ago by ken-cunningham-webuse
+1 for this error. 10.6 with libcxx installed. tried upgrading deps to universal sudo port -v -f install xorg-libXaw +universal
but no go.
did you ever find a solution to this?
comment:6 follow-up: 7 Changed 7 years ago by zacaway (Mike Talbot)
I also have this same problem. I tried this suggestion, repeated here:
sudo mv /opt/X11/lib/libXt.6.dylib{,.bak} sudo cp /opt/X11/lib{/flat_namespace,}/libXt.6.dylib
but this didn't work for me.
When I first tried to install ddd I got this message:
Error: Failed to archivefetch openmotif: xorg-libXt must be installed with +flat_namespace.
So I installed xorg-libXt with +flat_namespace and then the ddd installation completed.
port install xorg-libXt +flat_namespace port install ddd
Any other suggestions would be welcome.
comment:7 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)
Summary: | DDD 3.3.12 (i386-apple-darwin15.2.0) gets Xt error → ddd @3.3.12: Xt error (Unresolved inheritance operation) |
---|
Replying to zacaway:
I also have this same problem. I tried this suggestion, repeated here:
sudo mv /opt/X11/lib/libXt.6.dylib{,.bak} sudo cp /opt/X11/lib{/flat_namespace,}/libXt.6.dylibbut this didn't work for me.
/opt/X11 is where XQuartz installs its files. Following the above instructions will presumably replace the default two-level namespace version of libXt with the flat-namespace version of libXt, which is what Motif, a dependency of ddd, requires. If you are using the MacPorts xorg ports instead of the XQuartz package, the below instructions would be equivalent.
When I first tried to install ddd I got this message:
Error: Failed to archivefetch openmotif: xorg-libXt must be installed with +flat_namespace.So I installed xorg-libXt with +flat_namespace and then the ddd installation completed.
port install xorg-libXt +flat_namespace port install ddd
I have xorg-libXt installed with the +flat_namespace variant and I still see the problem, which is not that ddd does not build or install, but rather that after installation it does not run.
Any other suggestions would be welcome.
Here is the upstream bug report:
https://savannah.gnu.org/bugs/index.php?50156
The developers have not responded.
comment:8 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)
The ddd mailing list archives are also full of reports of this problem, going back to the release of El Capitan, with no solution mentioned.
comment:9 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Here's a good summary from Tim Mooney:
ddd hasn't had anyone actively maintaining it for many years, so although it's still packaged in brew for Mac and in various package formats for different Linux distributions, it doesn't work reliably for many users. I'm actually really surprised it still compiles on so many different systems.
ddd was written in the 90s and was designed to use the Motif graphical toolkit. In the intervening time, the C++ language has changed, the Motif toolkit has advanced (and is now opensource), and even the underlying X toolkit has changed.
The "Unresolved inheritance operation" is happening because of one of those changes. It's possible that an expert in C++ and either X or Motif (Motif experts are becoming exceedingly rare, sadly) could diagnose the problem and maybe even easily fix it, but no one has invested the time to do so.
Since ddd probably isn't going to work for you, your best bet is to learn the commands you need to directly interact with the underlying debugger (what DDD documentation calls the "inferior" debugger).
Good luck!
comment:10 Changed 20 months ago by hgrey
This error and the "_XmGetDefaultDisplay cannot be used prior to VendorS.Initialize, returns NULL" variant can be overcome by linking ddd with the static version of libXm. On MacOs Ventura 13.2, MacPorts 2.8.1, ddd 3.3.12 and xorg-server 1.20.11_1 the Makefile in the ddd subdirectory controls the linking with the variable LIBXM. Changing this from -lXm to
/opt/local/lib/libXm.a /opt/local/lib/libjpeg.a /opt/local/lib/libpng16.a /opt/local/lib/libz.a /opt/local/lib/libiconv.a /opt/local/lib/libXft.a /opt/local/lib/libXrender.a /opt/local/lib/libfontconfig.a /opt/local/lib/libexpat.a /opt/local/lib/libfreetype.a /opt/local/lib/libbz2.a /opt/local/lib/libbrotlidec-static.a /opt/local/lib/libbrotlicommon-static.a /opt/local/lib/libintl.a -framework Foundation
will build a working version. (manual build with port build -k ddd, cd /opt/local/var/macports/builds..../ddd-3.3.12, change file, rm ddd/ddd, make)
comment:11 Changed 6 months ago by mohd-akram (Mohamed Akram)
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:12 Changed 6 months ago by ryandesign (Ryan Carsten Schmidt)
Cc: | mohd-akram added |
---|
Wow, thanks! I'm so pleased you found a solution other than using the static libraries.
I see you also filed an upstream issue which I want to link here: https://savannah.gnu.org/bugs/?65738
In the future, please use WikiFormatting.