FAQ
Some platforms (OSF/cc, HPUX) are already using -rpath or equivalent, so
you don't have to specify a shared library search path at runtime. I think
that a lot more platforms could use this. Can people comment on whether
and how it works on their platform? Essentially,

LDFLAGS+=-rpath '$(libdir)'

might do the trick for most.


--
Peter Eisentraut Sernanders väg 10:115
peter_e@gmx.net 75262 Uppsala
http://yi.org/peter-e/ Sweden

Search Discussions

  • Mark Dalphin at Jul 18, 2000 at 9:54 pm
    For the SGI Irix 6.5, "man ld" gives:

    ....

    -rpath library_path
    Adds the library_path to the search path for DSOs. Each
    library path is appended to the list of directories at the
    time the executable or DSO is loaded. This option directs
    rld(5) to look in the named directories, but to look only
    for DSOs, and to stop looking when the correct one is found.

    This option can be specified only when the -shared or
    -call_shared options are also in effect. For more
    information, see the rld(5) man page. (C, C++, F77, F90)

    ....

    -shared Produces a DSO, creates all of the tables for run-time
    linking, and resolves references to other specified shared
    objects. The object created can be used by the linker to
    make dynamic executables. (C, C++, F77, F90)

    ....

    Hope this helps.
    Mark

    Peter Eisentraut wrote:
    Some platforms (OSF/cc, HPUX) are already using -rpath or equivalent, so
    you don't have to specify a shared library search path at runtime. I think
    that a lot more platforms could use this. Can people comment on whether
    and how it works on their platform? Essentially,

    LDFLAGS+=-rpath '$(libdir)'

    might do the trick for most.

    --
    Peter Eisentraut Sernanders väg 10:115
    peter_e@gmx.net 75262 Uppsala
    http://yi.org/peter-e/ Sweden
    --
    Mark Dalphin email: mdalphin@amgen.com
    Mail Stop: 29-2-A phone: +1-805-447-4951 (work)
    One Amgen Center Drive +1-805-375-0680 (home)
    Thousand Oaks, CA 91320 fax: +1-805-499-9955 (work)
  • The Hermit Hacker at Jul 19, 2000 at 1:50 am
    for all the stuff I'm doign lately, I just do:

    setenv LDFLAGS "-R/usr/local/pgsql/lib -R/usr/local/lib"

    and let configure handle the rest ...

    On Tue, 18 Jul 2000, Mark Dalphin wrote:

    For the SGI Irix 6.5, "man ld" gives:

    ....

    -rpath library_path
    Adds the library_path to the search path for DSOs. Each
    library path is appended to the list of directories at the
    time the executable or DSO is loaded. This option directs
    rld(5) to look in the named directories, but to look only
    for DSOs, and to stop looking when the correct one is found.

    This option can be specified only when the -shared or
    -call_shared options are also in effect. For more
    information, see the rld(5) man page. (C, C++, F77, F90)

    ....

    -shared Produces a DSO, creates all of the tables for run-time
    linking, and resolves references to other specified shared
    objects. The object created can be used by the linker to
    make dynamic executables. (C, C++, F77, F90)

    ....

    Hope this helps.
    Mark

    Peter Eisentraut wrote:
    Some platforms (OSF/cc, HPUX) are already using -rpath or equivalent, so
    you don't have to specify a shared library search path at runtime. I think
    that a lot more platforms could use this. Can people comment on whether
    and how it works on their platform? Essentially,

    LDFLAGS+=-rpath '$(libdir)'

    might do the trick for most.

    --
    Peter Eisentraut Sernanders väg 10:115
    peter_e@gmx.net 75262 Uppsala
    http://yi.org/peter-e/ Sweden
    --
    Mark Dalphin email: mdalphin@amgen.com
    Mail Stop: 29-2-A phone: +1-805-447-4951 (work)
    One Amgen Center Drive +1-805-375-0680 (home)
    Thousand Oaks, CA 91320 fax: +1-805-499-9955 (work)

    Marc G. Fournier ICQ#7615664 IRC Nick: Scrappy
    Systems Administrator @ hub.org
    primary: scrappy@hub.org secondary: scrappy@{freebsd|postgresql}.org
  • Oliver Elphick at Jul 18, 2000 at 10:48 pm

    Peter Eisentraut wrote:
    Some platforms (OSF/cc, HPUX) are already using -rpath or equivalent, so
    you don't have to specify a shared library search path at runtime. I think
    that a lot more platforms could use this. Can people comment on whether
    and how it works on their platform? Essentially, >
    LDFLAGS+=-rpath '$(libdir)' >
    might do the trick for most.
    As far as Debian is concerned, use of rpath is a bug. Here's a quote from
    some Debian system documentation:

    libtool automatically inserts `-rpath' settings when compiling your
    program. But `-rpath' can cause big problems if the referenced
    libraries get updated. Therefore, no Debian package should use the
    `-rpath' option.

    libtool also refuses to link shared libraries against other shared
    libraries. Debian packages have to at least link against libc (with
    "-lc"), so that the dynamic linker knows whether to use the
    libc5-compat libraries or not.

    --
    Oliver Elphick Oliver.Elphick@lfix.co.uk
    Isle of Wight http://www.lfix.co.uk/oliver
    PGP: 1024R/32B8FAA1: 97 EA 1D 47 72 3F 28 47 6B 7E 39 CC 56 E4 C1 47
    GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
    ========================================
    "For God so loved the world, that he gave his only
    begotten Son, that whosoever believeth in him should
    not perish, but have everlasting life." John 3:16
  • Peter Eisentraut at Jul 19, 2000 at 10:45 pm

    Oliver Elphick writes:

    As far as Debian is concerned, use of rpath is a bug. Here's a quote from
    some Debian system documentation:

    libtool automatically inserts `-rpath' settings when compiling your
    program.
    I don't think so.
    But `-rpath' can cause big problems if the referenced
    libraries get updated. Therefore, no Debian package should use the
    `-rpath' option.
    I'm not sure I buy that. All -rpath does is add a directory to the search
    path that the program consults at runtime for its shared libraries. So
    it's just an alternative in place of

    hard-coded into dynamic linker
    /etc/ld.so.conf
    LD_LIBRARY_PATH

    but it's the terminally accurate alternative.

    What does happen if the referenced library gets updated? Nothing. -rpath
    doesn't reference any libraries, it just suggests to the runtime linker
    where it might look for one. I don't want to use it to find system
    libraries, I just want psql to find libpq, and the right libpq, and I want
    to relieve installers from having to fiddle around with these settings.
    libtool also refuses to link shared libraries against other shared
    libraries.
    I don't think so.


    --
    Peter Eisentraut Sernanders väg 10:115
    peter_e@gmx.net 75262 Uppsala
    http://yi.org/peter-e/ Sweden
  • Thomas Lockhart at Jul 19, 2000 at 1:46 am

    Some platforms (OSF/cc, HPUX) are already using -rpath or equivalent, so
    you don't have to specify a shared library search path at runtime. I think
    that a lot more platforms could use this. Can people comment on whether
    and how it works on their platform? Essentially,
    LDFLAGS+=-rpath '$(libdir)'
    For linux (at least gcc 2.7.x and 2.95.2 systems):

    if specified in the compilation step,

    -Wl,-rpath $(libdir)

    or if specified directly to the linker

    -rpath $(libdir)

    - Thomas

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppgsql-ports @
categoriespostgresql
postedJul 18, '00 at 6:17p
activeJul 19, '00 at 10:45p
posts6
users5
websitepostgresql.org
irc#postgresql

People

Translate

site design / logo © 2022 Grokbase