SUMMARY: Library confusion (libXmu, mcount, lib*_p.a)

From: V.Sander (zdv123@zam092.zam.kfa-juelich.de)
Date: Fri Jul 16 1993 - 01:51:12 CDT


My original message was:

> compiling an X-program (I've gotten it via ftp)
> under Solaris 1.1 and OpenWindow 3.0
> I run into problems with the libraries.
>
> Using the libraries needed (in my opinion)
> -lXaw -lXmu -lXext -lXt -lX11 -lm
> I get the undefined symbols
> _get_wmShellWidgetClass
> _get_applicationShellWidgetClass
>
> though "nm /usr/openwin/lib/libXmu.a" displays these symbols as
> text segment symbol and the related .o routine is included in the loader's
> output.
>
> Looking through openwin's libraries I recognized that/usr/openwin/lib/libXmu_p.a
> has the same symbols. Adding this library to the "cc" I get the message
> that now the mcount symbol is missing.
>
> Trying to figure out the library with "nm lib*.a | grep mcount"
> in the related Library-directories I only see undefined references
> in libraries named lib*_p.a
>
> Maybe someone is able to explain me, what's the sense of the
> lib*_p.a libraries and why there is no definition of the symbol
> mcount in the whole system (or where it is)?
>
> And why are the ShellWidgetClass symbols undefined though they occur
> in sharedlib.o of libXmu.a and is included in loader output as text segment?

------------------------------------------------------------------------------

Many thanks to everyone who has responded!

What I'm seeing is a bug in the X11 libraries, especially in the Xmu lib.
There are two solutions:
    - link the Xmu library statically
         ... -Bstatic -lXmu -Bdynamic ..

    - Include the following patches as mentioned in the FAQ (48)
         There are two "fixes". One is to get the Openwindows patches
         that apply to this problem and the other is to "statically" link
         the Xmu library into the executable.
         The patches you will need are as follows:

         Patch i.d. Bug i.d.'s O/S Description
         ---------- ------------------------------------------------------- 100512-02 1086793 1086912 4.1.x OpenWindows 3.0 libXt
                        1074766 Jumbo patch

         100573-03 1087332 4.1.x OpenWindows 3.0 undefined

The answer to my mcount-question and the lib*_p.a libraries is:
   The p.a libraries are the profiled versions. When you compile with -p,
   you get some added code (which includes mcount) that profiles. IF
   you haven't compiled with the -p option, this code (and mcount) is not
   present.

  
Again, many thanks to all who have responed,

Volker Sander
Central Institute for Applied Mathematics
Research Center Juelich
52425 Juelich
Germany



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:08:01 CDT