Skip to content

toolchain install llvm: payload patchelf'd against xim-x-glibc but the runtime dep is not installed — clang exec 127 on bare runners (gcc path provides it) #259

Description

@Sunrisepeak

Summary

mcpp toolchain install llvm 22.1.8 on a bare machine produces binaries that cannot exec: the xim llvm payload is patchelf'd with an ELF interpreter (and RUNPATH) pointing into …/registry/data/xpkgs/xim-x-glibc/2.39/…, but the install does not pull the xim-x-glibc runtime package. First use then fails with exit 127 (ENOENT on the interpreter):

error: 'env LD_LIBRARY_PATH=…/xim-x-llvm/22.1.8/lib:… …/xim-x-llvm/22.1.8/bin/clang++ --version 2>&1' exited with status 127

Seen on GitHub ubuntu-latest (opencv-m CI, mcpp 0.0.101 release tarball flow — run 29822673295, job linux-llvm-22). Local machines never notice because something else (e.g. an earlier mcpp toolchain install gcc) already parked the glibc runtime.

Evidence (local, same payloads):

$ file -L …/xpkgs/xim-x-llvm/22.1.8/bin/clang++
ELF 64-bit LSB pie executable … interpreter …/xpkgs/xim-x-glibc/2.39/lib64/ld-linux-x86-64.so.2
$ readelf -d clang | grep RUNPATH
…/xim-x-llvm/22.1.8/lib:…/xim-x-glibc/2.39/lib64:…/xim-x-zlib/1.3.1/lib:…/xim-x-libxml2/2.13.5/lib:…

xim-x-gcc binaries have the same interpreter, and the gcc install path evidently DOES provide the runtime (the long-standing gcc CI legs work on bare runners) — so this looks like a missing runtime dependency in the llvm xim package (glibc, possibly zlib/libxml2 from the RUNPATH too), not an engine problem.

Repro

# bare linux runner, mcpp 0.0.101 release tarball on PATH
mcpp toolchain install llvm 22.1.8
mcpp toolchain default llvm@22.1.8
mcpp build          # -> clang++ --version probe exits 127

Workaround

Install gcc first (mcpp toolchain install gcc 16.1.0) — it parks xim-x-glibc and the llvm binaries start working. opencv-m CI does this now (comment links here).

Environment: mcpp 0.0.101 release tarball, ubuntu-latest (24.04).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions