Re: LD_LIBRARY_PATH_RPATH

From: Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: LD_LIBRARY_PATH_RPATH
Date: 2019-02-01 10:46:35
Message-ID: 87o97v94ge.fsf@news-spur.riddles.org.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

>>>>> "Tom" == Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:

>> At least on my FreeBSD 11 box, the current definition of
>> $(with_temp_install) is not sufficient to ensure that the various .so
>> files are loaded from tmp_install and not from the compiled rpath (which
>> will be the final install dir, which may of course contain old
>> libraries).

>> LD_LIBRARY_PATH_RPATH=1 fixes this (by giving LD_LIBRARY_PATH priority
>> over the DT_RPATH tag in the object).

>> Is this also an issue on any other platforms?

Tom> Hm. Can't reproduce that on current NetBSD or macOS; don't have
Tom> OpenBSD booted up to try right now.

Tom> However, if it helps on some platforms, I can't see much harm in
Tom> adding it in the relevant places. It should be a no-op everywhere
Tom> else.

Oh, I see why it hasn't previously been an issue - the behavior varies
according to whether both DT_RPATH and DT_RUNPATH, or just DT_RPATH, are
defined in the program header; and when I build using default cc
(clang), I get both tags (which makes LD_LIBRARY_PATH_RPATH
unnecessary), whereas when I build using ports gcc using the recommended
additional -Wl,-R option, for whatever reason that ends up setting only
DT_RPATH.

Confusing. Probably safest to add the env var anyway.

--
Andrew (irc:RhodiumToad)

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Dmitry Dolgov 2019-02-01 11:02:28 Re: [HACKERS] [PATCH] Generic type subscripting
Previous Message amul sul 2019-02-01 10:37:47 Re: where clause not working through psql command line client