On Sep 12, Boris Kolpackov <bo...@codesynthesis.com> wrote:

> Indeed. A bit more digging revealed that this is systemd-nspawn's
> "helpful" hand. Specifically, there is no /lib64 before I run
> systemd-nspawn, it is present during, and it disappears again after
> systemd-nspawn exits.
This is caused by src/shared/base-filesystem.c, we are still trying to 
figure out if and what needs to be changed.

        /* Various architecture ABIs define the path to the dynamic loader via 
the /lib64/ subdirectory of
         * the root directory. When booting from an otherwise empty root file 
system (where only /usr/ has
         * been mounted into) it is thus necessary to create a symlink pointing 
to the right subdirectory of
         * /usr/ first — otherwise we couldn't invoke any dynamic binary. Let's 
detect this case here, and
         * create the symlink as needed should it be missing. We prefer doing 
this consistently with Debian's
         * multiarch logic, but support Fedora-style multilib too.*/
#if defined(__aarch64__)
        /* aarch64 ELF ABI actually says dynamic loader is in /lib/, but Fedora 
puts it in /lib64/ anyway and
         * just symlinks /lib/ld-linux-aarch64.so.1 to 
../lib64/ld-linux-aarch64.so.1. For this to work
         * correctly, /lib64/ must be symlinked to /usr/lib64/. */
        { "lib64",    0, "usr/lib/"LIB_ARCH_TUPLE"\0"
                         "usr/lib64\0",                "ld-linux-aarch64.so.1" 
},
#  define KNOW_LIB64_DIRS 1
#elif defined(__alpha__)
...

-- 
ciao,
Marco

Attachment: signature.asc
Description: PGP signature

Reply via email to