emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: master 3d38d1d: Add sqlite3 support to Emacs


From: Po Lu
Subject: Re: master 3d38d1d: Add sqlite3 support to Emacs
Date: Wed, 15 Dec 2021 15:26:12 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.60 (gnu/linux)

Richard Stallman <rms@gnu.org> writes:

> Lars metioned something called LD_PRELOAD.  I don't know what that is,
> and I can't find it in the documentation I have here.  I don't know
> whether it makes a difference for this issue, and I would like to
> study that question.
>
> Would someone please point me at an explanation of what LD_PRELOAD
> does, with docs for how to use it?  Also, which part of the GNU/Linux
> system implements it?

It's implemented by the dynamic linker component of the GNU C Library.

See the sections "environment" and "files" of the manual page for ld.so,
but if that's not on your system, here are the relevant parts for your
convenience.


       LD_PRELOAD
              A  list  of additional, user-specified, ELF shared objects to be
              loaded before all others.  This feature can be  used  to  selec‐
              tively override functions in other shared objects.

              The  items of the list can be separated by spaces or colons, and
              there is no support for escaping either separator.  The  objects
              are  searched  for using the rules given under DESCRIPTION.  Ob‐
              jects are searched for and added to the link map in the left-to-
              right order specified in the list.

              In  secure-execution  mode, preload pathnames containing slashes
              are ignored.  Furthermore, shared  objects  are  preloaded  only
              from  the standard search directories and only if they have set-
              user-ID mode bit enabled (which is not typical).

              Within the names specified in the LD_PRELOAD list,  the  dynamic
              linker  understands  the tokens $ORIGIN, $LIB, and $PLATFORM (or
              the versions using curly braces around the names)  as  described
              above  in  Dynamic  string  tokens.  (See also the discussion of
              quoting under the description of LD_LIBRARY_PATH.)

              There are various methods of specifying  libraries  to  be  pre‐
              loaded, and these are handled in the following order:

              (1) The LD_PRELOAD environment variable.

              (2) The  --preload command-line option when invoking the dynamic
                  linker directly.

              (3) The /etc/ld.so.preload file (described below).

       /etc/ld.so.preload
              File  containing  a  whitespace-separated list of ELF shared ob‐
              jects to be loaded before the program.  See  the  discussion  of
              LD_PRELOAD above.  If both LD_PRELOAD and /etc/ld.so.preload are
              employed, the libraries specified by  LD_PRELOAD  are  preloaded
              first.  /etc/ld.so.preload has a system-wide effect, causing the
              specified libraries to be preloaded for all  programs  that  are
              executed  on  the  system.  (This is usually undesirable, and is
              typically employed only as an emergency remedy, for example,  as
              a temporary workaround to a library misconfiguration issue.)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]