[comp.windows.x] Xt/uil problem

jeremy@EIK.II.UIB.NO (12/03/90)

I hope someone can help me to fix a problem I am having with installing
uil from Motif1.1 source. Compiling and linking goes fine, but whenever
I try to execute uil I get the following error message (Sun SPARCStation,
SunOS4.1) (I have applied all patches up to fix 18):

ld.so: Undefined symbol: __XtInherit
*** Error code 127

running nm on libXt.so gives the following output:

nm libXt.so.4.0 | grep XtInherit
000356c8 D __XtInheritTranslations
0000c154 T ___XtInherit

and on libXt.a:

 nm libXt.a | grep XtInherit
         U __XtInherit
         U __XtInherit
         U __XtInherit
000004d8 D __XtInheritTranslations
0000002c T __XtInherit
         U __XtInherit
         U __XtInherit
         U __XtInheritTranslations
         U __XtInherit

So why does libXt.so have ___XtInherit, and why haven't I seen the problem
with anything other than uil ?


-------------------------------------------------------------------------------
 Jeremy Cook                      .----.
 Parallel Processing Laboratory  /    /                      /  /        /
 University of Bergen           /    /                      /  /        /
 Thormoehlensgate 55           /----' .----. .----. .----. /  / .----. /----.
 N-5008 Bergen                /      _____/ /      _____/ /  / _____/ /    / 
 Norway                      /      (____/ /      (____/ /  / (____/ (____/
-------------------------------------------------------------------------------
 email : jeremy@eik.ii.uib.no    | "My other computer is a MasPar MP1208"
 phone : +47 5 54 41 74 (direct) |
 fax   : +47 5 54 41 99          |
-------------------------------------------------------------------------------

brock@SUMEX-AIM.STANFORD.EDU (12/04/90)

I ran into the same problem.  It seems to be a shared library problem (there
was a discussion of a related problem on the xpert bulletin board
recently).  The UIL code uses Xt functions, such as XtMalloc, but never 
initializes the toolkit, and the linker doesn't link in all of the 
necessary parts of the library. 

If you add a call to XtInitialize() at the very end of main() in
UilMain.c, *after* the program calls exit(), it should work just fine.

Since the program *always* exits before this, the call
to XtInitialize is never reached, but the linker sees the reference and
gets the apropriate parts of the library.

OSF mentions in the release notes that Motif 1.1 was never tested with
shared libraries, so I guess we can expect little things like this to
pop up (:-D) 

Kevin Brock
brock@sumex-aim.stanford.edu


-------