DOCUMENT ID:  0912-02

SYNOPSIS:     Library problems on Solaris x86

OS RELEASE:   2.x

PRODUCT:      Solaris x86

KEYWORDS:     library wabi Libm 


DESCRIPTION:

Library problems on Solaris x86.


SOLUTION:

Q: What does the message "Can't find libm.so.1" mean?

A: Libm is the name of the Unix "math" library, which is an extension to
Unix's "stdC" library.  The Wabi 1.0 font server process "wabifs"
expects to be able to find a dynamically loadable version of library,
probably in /usr/lib/libm.so.1. 

The Solaris x86 "end user" cluster may not include this library.  The
Wabi 1.0 main process "wabiprog" includes a satirically linked version
of this library and so doesn't require that a dynamically loadable
version of the library exist on the system.  In other words, you'll only
experience this problem if

   i) you're running Wabi on an x86 machine, and

   ii) only the "end user" Solaris cluster was installed on the
       x86 machine, and

  iii) you're displaying Wabi windows on a machine running
       Solaris 2.3 (or any other Xserver that supports the font
       service protocol).

To fix the problem, simply load the required library down onto the
system.  You can copy /usr/lib/libm.so.1 from a Solaris x86 system that
has it installed.  Or you can load the Solaris "developer" cluster onto
the machine.  Or you can attempt to copy just that one file from the
Solaris distribution CD onto your machine (you'll probably prefer to use
one of the other options). 


Q: How can I know that I've got the right library available to Wabi?

A: When the right libm.so.1 is available to Wabi, you should be able to
run from the same environment Wabi will be started from ldd
/opt/SUNWwabi/bin/wabifs and get a list of library references and
locations that doesn't include the words "(not found)". 


Q: What does the message "Can't find libXext.so.0" mean?

A: With both Wabi 1.0 and Wabi 1.1 for Solaris x86, environment variable
LD_LIBRARY_PATH should include the path to the X11 libraries (probably
$OPENWINHOME/lib). 

The environment variable will usually be set automatically if you run
OpenWindows on a Solaris 2.1 x86 system.  That version of
$OPENWINHOME/bin/openwin will set LD_LIBRARY_PATH when it starts up the
window system. 

This will not happen automatically on a Solaris 2.4 x86 system, not even
if you run OpenWindows.  The new version of $OPENWINHOME/bin/openwin no
longer sets the environment variable by default.  The intention is that
the great majority of applications should run without requiring any
setting of LD_LIBRARY_PATH. 

If you run a window system other than OpenWindows under either Solaris
2.1 x86 or Solaris 2.4 x86, you may see this problem.  You can work
around it by setting the environment variable as required by Wabi. 
Almost all the time the same setting that works for Wabi will also work
for (or at least not do any harm to) other applications.  So you may
want to set the environment variable system-wide. 


Q: Where should I set this environment variable?

A: This environment variable needs to be set in the parent process that
will launch Wabi.  If you're launching Wabi from your root window, one
place to set it is in your openwin startup script.  If you're launching
Wabi from a cmdtool, one place to set it is in your ~/.cshrc. 


Q: How do I set this environment variable?

A: If the environment variable isn't yet defined, define it.  C-shell
example:

 setenv LD_LIBRARY_PATH $OPENWINHOME/lib
 Bourne/Korn shell example:
 LD_LIBRARY_PATH=$OPENWINHOME/lib; export LD_LIBRARY_PATH

If the environment variable is already defined, and doesn't yet include
$OPENWINHOME/lib, redefine it to include both its existing value and the
new value. 

C-shell example:

 setenv LD_LIBRARY_PATH $OPENWINHOME/lib:$LD_LIBRARY_PATH

 Bourne/Korn shell example:

 LD_LIBRARY_PATH=$OPENWINHOME/lib:$LD_LIBRARY_PATH; export 
 LD_LIBRARY_PATH


Q: Is there a way I can set this environment variable just for Wabi in
my OpenWindows root menu?

A: Yes.  Use Bourne shell syntax to add commands to your
~/.openwin-menu.  Change Wabi's line to look something like this:

 "Wabi..."  LD_LIBRARY_PATH=$OPENWINHOME/lib; export
 LD_LIBRARY_PATH; exec wabi


Q: How can I know that I've got LD_LIBRARY_PATH set correctly for Wabi?

A: When LD_LIBRARY_PATH is set correctly for Wabi, you should be able to
run from the same environment Wabi will be started from ldd
/opt/SUNWwabi/bin/wabiprog and get a list of library references and
locations that doesn't include the words "(not found)". 


Q: Isn't some of this due to a "dlopen()" problem in Solaris 2.4 EA1?

A: No, we no longer think so.  If you find that Wabi won't run yet ldd`
says all libraries needed by "wabiprog" can be found, please let us
know. 


DATE APPROVED: 09/28/95