Re: Eximon on SunOS/OpenWindows

Página superior
Eliminar este mensaje
Responder a este mensaje
Autor: Richard Gilbert
Fecha:  
A: exim-users
Cc: Richard Gilbert, Ian OSullivan
Asunto: Re: Eximon on SunOS/OpenWindows
> Has anyone built eximon on SunOS with OpenWindows? I have exim 1.62
> running on SunOS 4.1.3_U1 but could not compile eximon when I originally
> installed it. I am now having another look at it. I think I have made
> some progress...
>
> 1. Xfuncs.h is not available but I found that the only use of this was
>    for bcopy.  I was able to proceed by commenting out the 
>    #include <X11/Xfuncs.h> because there is a bcopy in the C library. 

>
> 2. XawChain{Left|Right|Top|Bottom} were not defined but looking at the
>    Motif stuff on another machine it looks as though these are the same as
>    the equivalent XtChain objects(?).

>
> The source now compiles and I am now at the stage where I have just two
> missing routines:
>
> ld: Undefined symbol
>    _get_wmShellWidgetClass
>    _get_applicationShellWidgetClass

>
> These appear to be at the end of library Xmu -- I looked at libXmu.a with
> more, but there must be a better way! This library is already searched.
> I tried putting -lXmu last and I tried searching it twice but to no avail.


I came into work this morning hoping that an answer to the above problem
would be waiting for me, but I was disappointed. But I have now got
Eximon running, but the solution seems a bit dirty. Perhaps some Unix
guru can comment on what I have done...

There is a better way of looking at the symbols in a library or object
file: it is nm. nm confirms that the above two routines are defined in
libXmu.a:

mbone{exim}: nm libXmu.a | tail -5
sharedlib.o:
         U _applicationShellWidgetClass
00000000 T _get_applicationShellWidgetClass
0000000c T _get_wmShellWidgetClass
         U _wmShellWidgetClass


But there are also libXmu.sa and libXmu.so which are searched in
preference to the static library, libXmu.a. Interestingly, libXmu.sa only
contains the sharedlib.o module:

mbone{exim}: nm libXmu.sa

sharedlib.o:
         U _applicationShellWidgetClass
00000000 T _get_applicationShellWidgetClass
0000000c T _get_wmShellWidgetClass
         U _wmShellWidgetClass


All the rest of the library is in libXmu.so. (This is probably obvious to
people who understand shared libraries.) But this doesn't explain why the
symbols remain undefined.

Anyway, to cut a long story short, I created a symbolic link in
/usr/openwin/lib to libXmu.a called libXmu_static.a and searched this as
an extra library (along with the math library which was also necessary) by
adding:

EXTRALIBS_EXIMON=-lXmu_static -lm

to Local/Makefile-SunOS4.

Does this make sense? Comments appreciated.

--
Richard Gilbert
Corporate Information and Computing Services
University of Sheffield, Sheffield, S10 2TN, UK
Phone: +44 114 222 3028 Fax: +44 114 222 3040