Skip to content

[Install] Linux AppImage: ld.lld fails to start on non-Ubuntu-22.04 hosts (libicui18n.so.70 missing) #150

Closed as duplicate

Description

@thomasczer

Before you continue

  • I'm on the latest version (latest WheelWizard, or the latest MarioKartWiiCompiled-Setup.exe from the Releases page).
  • I searched the existing issues and nobody has reported this yet.
  • I have a legally obtained copy of the game and it works in Dolphin.

Where does it go wrong?

During compilation / translation

How did you install?

Downloaded the setup exe myself (the WiiCompiled-Setup-x86_64.AppImage v0.2.27 from the Releases page, run from a terminal)

What happens?

./WiiCompiled-Setup-x86_64.appimage install --game ./MarioKart.iso gets through disc validation and translation, then dies at "Configuring the compiler" because the bundled linker cannot start:

/tmp/.mount_WiiComccOGHk/usr/toolchain/bin/ld.lld: error while loading shared libraries: libicui18n.so.70: cannot open shared object file: No such file or directory

Root cause. The lld binary in the official llvm.org Linux release tarball that Launcher/prepare-portable-tools.sh prunes is dynamically linked against Ubuntu 22.04's ICU, and neither the tarball nor the AppImage ships those libraries:

$ ldd squashfs-root/usr/toolchain/bin/ld.lld
        libicui18n.so.70 => not found
        libicuuc.so.70 => not found
        libicudata.so.70 => not found
        libz.so.1 => /usr/lib/libz.so.1
        ...

Every other distro has a different ICU major (Arch/CachyOS 78, Fedora and Debian 13 76, Ubuntu 24.04 74) and no icu70 compat package, so the linker cannot start anywhere but on Ubuntu 22.04 and its derivatives. The other bundled binaries (clang-23, llvm-ar, cmake, ninja) only need the glibc baseline and are fine. The smoke test in prepare-portable-tools.sh does not catch this because the package.yml runner is ubuntu-22.04, which has ICU 70 installed. The aarch64 AppImage is built the same way and should be affected identically.

Workaround. Extract libicui18n.so.70, libicuuc.so.70 and libicudata.so.70 from Ubuntu's libicu70 .deb into a directory and run the AppImage with LD_LIBRARY_PATH pointing at it. With that, the full install completes and check-products reports the base game.

Fix. lld already has a $ORIGIN/../lib RUNPATH, so bundling the ICU libraries into toolchain/lib/ is enough: #151.

Setup log

[ 49%] Preparing the native build
MKWCBUILD: Reusing the incremental native build directory
[ 53%] Configuring the compiler
-- Check for working C compiler: /home/thomas/.local/share/WiiCompiled/workspace/toolchain/bin/clang - broken
CMake Error at /home/thomas/.local/share/WiiCompiled/workspace/toolchain/share/cmake-4.3/Modules/CMakeTestCCompiler.cmake:67 (message):
  The C compiler

    "/home/thomas/.local/share/WiiCompiled/workspace/toolchain/bin/clang"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: '/home/thomas/.local/share/WiiCompiled/workspace/native-build/CMakeFiles/CMakeScratch/TryCompile-yTdYzE'

    Run Build Command(s): /home/thomas/.local/share/WiiCompiled/workspace/toolchain/bin/ninja -v cmTC_2ead4
    [1/2] /home/thomas/.local/share/WiiCompiled/workspace/toolchain/bin/clang    -MD -MT CMakeFiles/cmTC_2ead4.dir/testCCompiler.c.o -MF CMakeFiles/cmTC_2ead4.dir/testCCompiler.c.o.d -o CMakeFiles/cmTC_2ead4.dir/testCCompiler.c.o -c /home/thomas/.local/share/WiiCompiled/workspace/native-build/CMakeFiles/CMakeScratch/TryCompile-yTdYzE/testCCompiler.c
    [2/2] : && /home/thomas/.local/share/WiiCompiled/workspace/toolchain/bin/clang  -fuse-ld=lld CMakeFiles/cmTC_2ead4.dir/testCCompiler.c.o -o cmTC_2ead4   && :
    FAILED: [code=1] cmTC_2ead4
    : && /home/thomas/.local/share/WiiCompiled/workspace/toolchain/bin/clang  -fuse-ld=lld CMakeFiles/cmTC_2ead4.dir/testCCompiler.c.o -o cmTC_2ead4   && :
    /tmp/.mount_WiiComccOGHk/usr/toolchain/bin/ld.lld: error while loading shared libraries: libicui18n.so.70: cannot open shared object file: No such file or directory
    clang: error: unable to execute command: No such file or directory
    clang: error: linker command failed with exit code -1 (use -v to see invocation)
    ninja: build stopped: subcommand failed.

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:2 (project)

-- Configuring incomplete, errors occurred!
error: local-build.sh failed (exit 1). See diagnostics above.

Windows version

Not Windows: CachyOS (Arch Linux), kernel 7.2.3, x86_64, system ICU 78

Antivirus (if any besides Windows Defender)

none

Activity

  1. changed the title [-]Linux AppImage: ld.lld fails to start on non-Ubuntu-22.04 hosts (libicui18n.so.70 missing)[/-] [+][Install] Linux AppImage: ld.lld fails to start on non-Ubuntu-22.04 hosts (libicui18n.so.70 missing)[/+] on Sep 5, 2026
  2. patchzyy commented on Sep 7, 2026

    @patchzyy
    Owner

    Duplicate of #136

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions