cygwin.rules - Enabling shared libXt finally?

Harold L Hunt II huntharo@msu.edu
Wed Oct 1 00:51:00 GMT 2003


With the release of Cygwin 1.5.x and newer versions of binutils, can we 
finally make libXt a shared library?

I have been working with Alan to try to build a shared version of the 
library, but I keep getting the following message upon startup of 
Xt-dependent apps:

Error: Unresolved inheritance operation


This error message comes from xc/lib/Xt/Initialize.c/XtInitialize(). 
This function has been the root of our problems for some time now.  IBM 
and Sun have ways to work around similar problems with XtInitialize, 
thus the file xc/lib/Xt/sharedlib.c.  Also, looking in 
xc/config/cf/ibmLib.rules/SharedLibraryTarget shows that they manually 
call 'ar' to link sharedlib.o into the equivalent of libXt-6.dll.a.

I have been able to manually add sharedlib.o to libXt-6.dll.a by running 
the following command:

ar cq libXt-6.dll.a sharedlib.o


I am looking for some help at finding a pragmatic solution to this.

First of all, I want to take a survey of whether anyone thinks we 
actually have the necessary support in binutils to do this yet. 
Secondly, I want to know if anyone can help me to figure out how to do this.

Note that the first thing to do is edit xc/config/cf/cygwin.rules and 
change the Xt, Xaw, Xmu, etc. shared lib flags from NO to YES.  After 
that, you can add $(UNSHAREDOBJS) to your 
cygwin.rules/SharedLibraryTarget dependencies.  This will cause 
xc/lib/Xt/sharedlib.o to be built automatically, but it will not be 
linked by default.

Awaiting some input,

Harold



More information about the Cygwin-xfree mailing list