[RFC 0/3] Use multiple ld.so caches to separate execution environments

Łukasz Stelmach l.stelmach@samsung.com
Tue Apr 21 09:00:17 GMT 2026


The following series of patches is our take on contenerization with
as little overhead as possible. We developed this code to use in
embedded devices where parts of the platform are delivered by a hardware
vendor. Rather than integrating these parts with the rest of our platform
we keep them separate in a separate directory (e.g. /vendor) and make
the runtime linker collect dependencies of binaries from the directory
in that directory (like chroot but without restricting access to data
stored outside the directory).

More detailed description is provided in the following commit messages.

Mateusz Moscicki (3):
  dlconf: Add support for config file for ld.so
  ldconfig: Add an option to ignore standard path during ld.so.cache
    generation
  Add a solution to prevent conflict between symbols loaded from
    dependencies

 config.h.in                                   |    9 +
 config.make.in                                |    4 +
 configure                                     |   58 +
 configure.ac                                  |   28 +
 elf/Makefile                                  |    9 +
 elf/dl-cache.c                                |  192 +-
 elf/dl-call-libc-early-init.c                 |    3 +
 elf/dl-close.c                                |    9 +
 elf/dl-deps.c                                 |   21 +
 elf/dl-load.c                                 |   75 +-
 elf/dl-lookup.c                               |   24 +
 elf/dl-main.h                                 |    3 +
 elf/dl-object.c                               |    5 +
 elf/dl-open.c                                 |   13 +
 elf/dl-usage.c                                |    9 +-
 elf/dlconf-getexecutable.c                    |   20 +
 elf/dlconf-print.c                            |  268 ++
 elf/dlconf.c                                  | 2517 +++++++++++++++++
 elf/dlconf.h                                  |  182 ++
 elf/ldconfig.c                                |   21 +-
 elf/rtld.c                                    |   47 +
 include/link.h                                |   18 +
 scripts/ld_so_cache_maker.py                  |   76 +
 .../unix/sysv/linux/dlconf-getexecutable.c    |   61 +
 24 files changed, 3596 insertions(+), 76 deletions(-)
 create mode 100644 elf/dlconf-getexecutable.c
 create mode 100644 elf/dlconf-print.c
 create mode 100644 elf/dlconf.c
 create mode 100644 elf/dlconf.h
 create mode 100644 scripts/ld_so_cache_maker.py
 create mode 100644 sysdeps/unix/sysv/linux/dlconf-getexecutable.c

-- 
2.47.3



More information about the Libc-alpha mailing list