Opened 8 years ago

Last modified 14 months ago

#50463 new defect

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:
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 (10)

comment:1 Changed 8 years ago by mf2k (Frank Schima)

Keywords: xorg-libXt xorg-libXaw removed
Port: ddd added; DDD removed

In the future, please use WikiFormatting.

comment:2 Changed 8 years ago by mf2k (Frank Schima)

Description: modified (diff)

comment:3 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)

Did you send the bug report to the email address indicated in the error message?

comment:4 in reply to:  3 Changed 8 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 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 in reply to:  6 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)

Summary: DDD 3.3.12 (i386-apple-darwin15.2.0) gets Xt errorddd @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.dylib

but 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 6 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 14 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)

Note: See TracTickets for help on using tickets.