This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How to set a system-wide library path policy?

On 6/11/19 3:56 PM, Jeffrey Walton wrote:
> On Sun, Jun 9, 2019 at 5:34 PM Jeffrey Walton <> wrote:
>> On Fri, Jun 7, 2019 at 4:46 PM Carlos O'Donell <> wrote:
>>> On 6/7/19 10:53 AM, Jeffrey Walton wrote:
>>>> I'm having trouble figuring out how to setup library path policy on Fedora 29.
>>> The system loader is in glibc. Adding libc-help to the CC.
>>>> I need to articulate to the system loader:
>>>> 1. programs in /bin must only link to libs in /lib64
>>>> 2. programs in /usr/bin must only link to libs in /usr/lib64
>>>> 3. programs in /usr/local/bin may use libraries in /usr/local/lib64 or
>>>> /usr/lib64
>>> OK.
>>>> As far as I know, the distro supplies (1) and (2). They know nothing
>>>> about my libraries in /usr/local. When the distro is ready, it will
>>>> push updated programs and libraries as needed. The distro binaries
>>>> should not use my libraries.
>>> Why would your distro binaries use your libraries? Such libraries are
>>> not present at static link time when they are built in the Feodra builders.
>>> The only reason your distro libraries would be used is if you used
>>> LD_LIBRARY_PATH that pointed to them, in which case you would be altering
>>> the global search order.
>> Thanks Carlos,
>> Here is a Solaris example because I'm updating Git for the 2.20.0
>> release. Linux behaves the same way as Solaris, so there' no material
>> difference here.
>> ...
> Here's a Ubuntu Bionic Aarch64 example when running apt-get. The stuff
> in /usr/local was built for GnuTLS testing. Guile 2.2 was built from
> sources:
> Calculating upgrade... Done
> The following packages will be upgraded:
>   dbus dbus-x11 libdbus-1-3 libglib2.0-0 libglib2.0-data libpython2.7
>   libpython2.7-minimal libpython2.7-stdlib libpython3.6 libpython3.6-minimal
>   libpython3.6-stdlib libssl-dev libssl1.1 openssl python2.7 python2.7-minimal
>   python3.6 python3.6-minimal vim vim-common vim-runtime vim-tiny xxd
> ...
> Processing triggers for libc-bin (2.27-3ubuntu1) ...
> /sbin/ldconfig.real: /usr/local/lib/ is
> not an ELF file - it has the wrong magic bytes at the start.
> ...

The dynamic loader does not normally search /usr/local/lib.

The use of ldconfig does not normally scan non-DSOs.

Why is it searching /usr/local/lib?

Do you have entries in /etc/ to force it to look
for libraries in /usr/local/lib?

Have extra patches been applied to this glibc to change the behaviour?

You should be taking this up with Ubuntu.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]