Problems with shared lesstif and shared Xt on Cygwin/XFree86
Harold L Hunt II
huntharo@msu.edu
Sat Oct 25 22:15:00 GMT 2003
Thanks Torrey.
I tried a build without $(SMLIB) and $(ICELIB) in SharedXtReqs, but it
fails to link due to unresolved symbols (all symbols must be resolved at
library link time in DLLs on Windows).
I will have to consult with the rest of the Cygwin people to see what we
should do now.
Thanks again,
Harold
Torrey Lyons wrote:
> 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.
>
> In your case, I suspect that including $(SMLIB) and $(ICELIB) in the
> following line from cygwin.tmpl is causing your problem:
>
> #define SharedXtReqs $(LDPRELIB) $(SMLIB) $(ICELIB) $(XLIBONLY)
>
> If Cygwin's linker does not complain when you removed these two, you
> should be fine. As it is all of the references which are supposed to
> remain undefined are likely being satisfied at library link time so
> nothing from lesstif is being included at application link time.
>
> --Torrey
>
> At 2:43 AM -0400 10/25/03, Harold L Hunt II wrote:
>
>> Torrey,
>>
>> Looks like you may have had the same sort of trouble that we are now
>> having with regards to building a shared version of the lesstif
>> libraries that link to a shared version of the Xt library. The
>> particular error message, when starting a lesstif app is:
>>
>> XmManager ClassInitialize: XmeTraitSet failed
>>
>>
>> Nicholas Wourms has been looking into this problem (his notes are
>> below) and he seems to think that an OS/X-specific fix may have been
>> made to one of the XFree86 libs to alleviate this problem with lesstif.
>>
>> Do you recall anything related to this problem? If so, could you
>> describe the fix or point us to a message describing the fix?
>>
>> Thanks in advance,
>>
>> Harold
>>
>>
>>
>>
>> *SIGH* I spoke too soon, after building nedit and trying some other
>> tests, I'm experiencing the "XmManager ClassInitialize: XmeTraitSet
>> failed" problem. Apparently the MacOSX people went through this ordeal
>> last year, but unfortunately that doesn't help us. They had two
>> solutions:
>> 1) Pass "-force_flat_namespace" which is part of OSX's proprietary
>> linker.
>> 2) Downgrade to XFree86-4.1 libs of some sort or upgrade to latest cvs.
>>
>> Of course, in-depth information on why this is happening is nonexistant,
>> all I could find were:
>> http://oroborosx.sourceforge.net/faq.html#q5p1
>> http://www.geocrawler.com/mail/msg.php3?msg_id=8230372&list=8629
>>
>> Given that information, I'm willing to bet that an OSX-only fix was
>> checked in sometime after July of last year to resolve this. Finding
>> out what it is will be difficult I'm willing to bet. Of course it could
>> just be Xt misbehaving or an auto-import/psuedo-ops failure. Heh, oh
>> well, I'm going to further investigate this tommorrow... Sorry that it
>> isn't working properly :-(.
>>
>> One last thought, perhaps we should CC Brian Ford in on this since
>> another fresh perspective might be good.
>>
>> Cheers,
>> Nicholas
>
>
More information about the Cygwin-xfree
mailing list