*BSD News Article 99047


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!lucy.cc.swin.edu.au!news.rmit.EDU.AU!news.unimelb.edu.au!munnari.OZ.AU!spool.mu.edu!uwm.edu!vixen.cso.uiuc.edu!howland.erols.net!newsxfer.itd.umich.edu!sol.ctr.columbia.edu!startide.ctr.columbia.edu!wpaul
From: wpaul@ctr.columbia.edu (Bill Paul)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: Missing libX?
Date: 30 Jun 1997 15:03:09 GMT
Organization: Columbia University Center for Telecommunications Research
Lines: 73
Message-ID: <5p8hre$4jh$1@sol.ctr.columbia.edu>
References: <33B3CB20.33DF6B24@INnet.be> <5p17ml$8n9@nntp02.primenet.com> <5p1rao$f9c@lace.colorado.edu>
NNTP-Posting-Host: startide.ctr.columbia.edu
X-Newsreader: TIN [version 1.2 PL2]
Xref: euryale.cc.adfa.oz.au comp.unix.bsd.freebsd.misc:43985

Daring to challenge the will of the almighty Leviam00se, Frank Crary
(fcrary@rintintin.Colorado.EDU) had the courage to say:

: In article <5p17ml$8n9@nntp02.primenet.com>,
: Bryan Ogawa <bkogawa@primenet.com> wrote:
: >>I have a lot of program (emacs, xemacs, clients from the RSA challenge,
: >>...) that won't work because of missing libraries: for example, xemacs
: >>says:
: >>"ld.so failed: can't find shared library libXm.so.2.0"

: >Do you have these libraries installed?  This looks like an X library: do
: >you have XFree installed?

If xemacs from the FreeBSD packages collection is complaining that it
wants libXm.so, then this is a problem with the package and you should
report it. LibXm is Motif. Motif is a commercial product; it does not
come with XFree86 and you can't just download it from somewhere. Whoever
compiled the xemacs executable you're using did so on a system with
Motif installed, but forgot to link libXm statically. This makes the
executable much larger, but then you don't need the Motif shared library
on your system.

There is an effort underway to develop a clone of Motif called Lesstif,
which will be available under the GNU copyleft (hence you'll be able to
get it for free, and with source). Lesstif is not done yet as far as I
know, but it may still be worth investigating.

If other non-X programs are complaining about missing libraries (like
the RSA challenge binaries), then the reason is likely not that the
libraries a missing but that you have a different version of FreeBSD
than the one used to build the executables. FreeBSD 2.1.x for example
has libc.so.2.2. FreeBSD-current has libc.so.3.0. If you compile a
program on FreeBSD-current, it will want to link libc.so.3.0 at runtime;
since you don't have libc.so.2.2 on a 2.1.x system, the dynamic linker
will complain about the 'missing' library and abort the program.

The things to do here are:

- Upgrade to a newer version of FreeBSD
- Get a different executable for your version of FreeBSD
- Cheat by making a symlink from /usr/lib/libc.so.3.0 to libc.so.2.2
- Recompile the program on your system (assuming you have source)

: I'm not sure about libXm.so.2.0, but I recently ran into a similar
: problem. If someone installed the Xuser rather than Xdeveloper 
: distribution, some X libraries are not be installed. As I understand
: it, programs (ports) installed with sysinstall should have everything
: they need to run, but programs installed in other ways may not. That
: could give you a machine with a working X environment, but a few
: problems with missing libraries. But I don't know if that applies
: to this problem: I hit this compiling a program, not running one
: that was already complied. 

The 'runtime' XFree86 distribution should included all the shared
libraries, since those are needed to run other X11-based executables.
However, there are a couple of libraries that are provided in archive
form only; to get these, you need to install the 'prog' distribution
too. This also gives you the archive versions of the shared libraries
provided with the runtime kit. (So you would have both libX11.so.6.x
and libX11.a.) The static libraries are not provided with the runtime
kit to save space; if you never actually intend to do any X11 programming,
then you don't need the static libraries and the include files.

-Bill

--
=============================================================================
-Bill Paul            (212) 854-6020 | System Manager, Master of Unix-Fu
Work:         wpaul@ctr.columbia.edu | Center for Telecommunications Research
Home:  wpaul@skynet.ctr.columbia.edu | Columbia University, New York City
=============================================================================
  "Now, that's "Open" as used in the sentence "Open your wallet", right?"
=============================================================================