Torrey Lyons wrote (in a message from Saturday 25) > The issue on Mac OS X is that most shared libraries want to be built > as "two-level namespace" images. Two-level namespace images have > significant advantages in loading speed, but they require that they > have no unresolved symbols when linking the library. This is why the > darwinLib.tmpl contains a complete list of every library's > dependencies. Unfortunately this causes a problem with two shared > libraries, Xt and Xfont. The problem is that these libraries are > designed to have certain symbols undefined and to have theses > references resolved at application link time by one of various other > library choices. In the case of Xt, SM and ICE provide the default > resolution of these symbols in darwinLib.tmpl (and cygwin.tmpl), but > symbols with the same names from lesstif should be used instead when > the application is linked with it. Two-level namespace libraries > don't allow you to do that since all symbols get resolved at library > link time, not application link time. Thus we fixed this problem by > building libXt and libXfont as flat namespace images, which have the > same linking semantics that most people on other *nixes are used to.
Weak symbols can be used on systems that support them to solve this kind of issues. Does cygwin support them ? If so libXt and libXfont can be patched to provide weak definitions of the SM/ICE functions it needs instead of linking libXt against those libs. Matthieu