From: Gerd Stolpmann <info@gerd-stolpmann.de>
To: Narayanan Krishnamurthy <Narayanan.Krishnamurthy@motorola.com>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Having problems with '-rpath' or '-rpath-link' to ocamlopt
Date: 22 Sep 2003 23:23:10 +0200 [thread overview]
Message-ID: <1064265789.961.45.camel@ice.gerd-stolpmann.de> (raw)
In-Reply-To: <3F6F367E.C0E7B250@motorola.com>
Am Mon, 2003-09-22 um 19.50 schrieb Narayanan Krishnamurthy:
> Hi,
>
> All the following discussions pertain to SunOS 5.8
> the gnu linker 'ld 2.9.1', the gcc compiler 'gcc 2.95.2' and
> ocaml 3.06.
>
> I have two versions of the PCRE "C" libpcre.so
> libraries. Let us say that the locations
> of the "C" libraries are as follows.
>
> a) v1.0 : /usr/local/lib/libpcre.so
> b) v2.0 : /mylocal/libpcre.so
>
> I've built the ocaml pcre package (5.02: pcre.cmxa and pcre.cma)
> using the "C" v2.0 shared library /mylocal/libpcre.so.
> I have pcre.cmxa in my current working directory.
>
> With my LD_LIBRARY_PATH set as
> LD_LIBRARY_PATH = /lib:/usr/lib:/usr/local/lib
No chance. LD_LIBRARY_PATH is searched before any RPATH that is recorded
in the .so file.
> I now run
> a) ocamlopt -o myexec pcre.cmxa myexec.o \
> -cclib -rpath/mylocal -cclib -lpcre
>
> and find that 'myexec' has the /usr/local/lib/libpcre.so
> as the run-time shared library instead of
> /mylocal/libpcre.so (I use 'ldd' on 'myexec')
>
> I tried the following as well and am unable to get
> ocamlopt to link in the run-time library /mylocal/libpcre.so.
>
> b) ocamlopt -o myexec pcre.cmxa myexec.o \
> -cclib -R/mylocal -cclib -lpcre
> c) ocamlopt -o myexec pcre.cmxa myexec.o \
> -cclib -rpath-link/mylocal -cclib -lpcre
If you do "dump -Lv myexec" you will see that the effect is the same:
The RPATH section of the file is set to /mylocal.
> If I unset my LD_LIBRARY_PATH, everything works fine
> and the correct library is linked in (I tried
> 'strings pcre.cmxa' and see the path /mylocal hard-coded
> in there).
> If I set LD_LIBRARY_PATH as
> /lib:/usr/lib:/mylocal:/usr/local/lib
> it works fine.
>
> It seems like I am unable to override the LD_LIBRARY_PATH
> environment variable using '-rpath' for the linker.
> So, what am I doing wrong with the '-rpath' or '-rpath-link'
> commands that I'm passing through 'ocamlopt'?
> Any information would be greatly appreciated.
> Thanks.
Because of the phenomenons you have found it is a very bad idea to set
LD_LIBRARY_PATH. This variable is a debugging aid, and no substitute for
a proper system setup.
Fortunately you run Solaris 8. For previous versions, the only way out
is to drop the idea of extending the system search path for libraries,
and to use RPATH all the time. For Solaris 8, you can modify the system
search path with the crle utility:
crle -l /usr/lib -l /usr/local/lib
Note that using crle is dangerous, and wrong usage may corrupt your
system (you can end up that you cannot start any program), so read the
man page.
Gerd
--
------------------------------------------------------------
Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany
gerd@gerd-stolpmann.de http://www.gerd-stolpmann.de
------------------------------------------------------------
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
next prev parent reply other threads:[~2003-09-22 21:23 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-22 17:50 Narayanan Krishnamurthy
2003-09-22 21:07 ` Olivier Andrieu
2003-09-22 21:23 ` Gerd Stolpmann [this message]
2003-09-24 2:44 ` Jacques Garrigue
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1064265789.961.45.camel@ice.gerd-stolpmann.de \
--to=info@gerd-stolpmann.de \
--cc=Narayanan.Krishnamurthy@motorola.com \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox