Commit 825a6cf3 authored by jan.koester's avatar jan.koester
Browse files

test

parent 18e01c52
Loading
Loading
Loading
Loading
+47 −42
Original line number Diff line number Diff line
@@ -237,62 +237,67 @@ setup_toolchain() {
        ninja install

        # Create musl-clang wrapper that uses libc++ and compiler-rt
        cat > /usr/local/musl/bin/musl-clang++ << 'WRAPPER'
        # Find compiler-rt lib path
        RT_PATH=\$(dirname \$(find /usr/lib/llvm-${LLVM_VERSION} -name 'libclang_rt.builtins-x86_64.a' | head -1))
        CLANG_RESOURCE=\$(clang-${LLVM_VERSION} -print-resource-dir)

        cat > /usr/local/musl/bin/musl-clang++ << WRAPPER
#!/bin/sh
exec clang++ \
    --target=x86_64-linux-musl \
    --sysroot=/usr/local/musl \
    -isystem /usr/local/musl/include \
    -isystem /usr/include/c++/v1 \
    -nostdinc++ \
    -stdlib=libc++ \
    -rtlib=compiler-rt \
    -fuse-ld=lld \
    -L/usr/local/musl/lib \
    -L/usr/lib/llvm-${LLVM_VERSION}/lib \
    -lc++abi \
    -lunwind \
    -static \
    \"\$@\"
exec clang++-${LLVM_VERSION} \\
    --target=x86_64-linux-musl \\
    --sysroot=/usr/local/musl \\
    -stdlib=libc++ \\
    -nostdinc++ \\
    -isystem /usr/local/musl/include/c++/v1 \\
    -isystem \${CLANG_RESOURCE}/include \\
    -isystem /usr/local/musl/include \\
    -fPIC \\
    -fuse-ld=lld \\
    -L/usr/local/musl/lib \\
    -L/usr/local/lib \\
    -L\${RT_PATH} \\
    --unwindlib=none \\
    -nostdlib \\
    -lc++ -lc++abi -lunwind \\
    -lc \\
    -lclang_rt.builtins-x86_64 \\
    -Wl,-rpath,/usr/local/musl/lib \\
    -Wl,-rpath,/usr/local/lib \\
    "\\\$@"
WRAPPER
        chmod +x /usr/local/musl/bin/musl-clang++

        cat > /usr/local/musl/bin/musl-clang << 'WRAPPER'
        cat > /usr/local/musl/bin/musl-clang << WRAPPER
#!/bin/sh
exec clang \
    --target=x86_64-linux-musl \
    --sysroot=/usr/local/musl \
    -isystem /usr/local/musl/include \
    -rtlib=compiler-rt \
    -fuse-ld=lld \
    -L/usr/local/musl/lib \
    -static \
    \"\$@\"
exec clang-${LLVM_VERSION} \\
    --target=x86_64-linux-musl \\
    --sysroot=/usr/local/musl \\
    -isystem \${CLANG_RESOURCE}/include \\
    -isystem /usr/local/musl/include \\
    -fPIC \\
    -fuse-ld=lld \\
    -L/usr/local/musl/lib \\
    -L/usr/local/lib \\
    -L\${RT_PATH} \\
    -nostdlib \\
    -lc \\
    -lclang_rt.builtins-x86_64 \\
    -Wl,-rpath,/usr/local/musl/lib \\
    -Wl,-rpath,/usr/local/lib \\
    "\\\$@"
WRAPPER
        chmod +x /usr/local/musl/bin/musl-clang

        # Create CMake toolchain file
        # Create CMake toolchain file that uses the wrapper compilers
        mkdir -p /usr/local/musl/share

        # Find compiler-rt lib path
        RT_PATH=\$(dirname \$(find /usr/lib/llvm-${LLVM_VERSION} -name 'libclang_rt.builtins-x86_64.a' | head -1))
        CLANG_RESOURCE=\$(clang-${LLVM_VERSION} -print-resource-dir)

        cat > /usr/local/musl/share/musl-llvm-toolchain.cmake << CMAKE
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR x86_64)

set(CMAKE_C_COMPILER clang-${LLVM_VERSION})
set(CMAKE_CXX_COMPILER clang++-${LLVM_VERSION})
set(CMAKE_LINKER lld-${LLVM_VERSION})

set(CMAKE_C_FLAGS_INIT \"--target=x86_64-linux-musl --sysroot=/usr/local/musl -isystem \${CLANG_RESOURCE}/include -isystem /usr/local/musl/include -fPIC\")
set(CMAKE_CXX_FLAGS_INIT \"--target=x86_64-linux-musl --sysroot=/usr/local/musl -stdlib=libc++ -nostdinc++ -isystem /usr/local/musl/include/c++/v1 -isystem \${CLANG_RESOURCE}/include -isystem /usr/local/musl/include -fPIC\")

set(CMAKE_EXE_LINKER_FLAGS_INIT \"-fuse-ld=lld -L/usr/local/musl/lib -L/usr/local/lib -L\${RT_PATH} --unwindlib=none --target=x86_64-linux-musl -nostdlib -lc -lclang_rt.builtins-x86_64 -Wl,-rpath,/usr/local/musl/lib -Wl,-rpath,/usr/local/lib\")
set(CMAKE_SHARED_LINKER_FLAGS_INIT \"-fuse-ld=lld -L/usr/local/musl/lib -L/usr/local/lib -L\${RT_PATH} --unwindlib=none --target=x86_64-linux-musl -nostdlib -lc -lclang_rt.builtins-x86_64 -Wl,-rpath,/usr/local/musl/lib -Wl,-rpath,/usr/local/lib\")

set(CMAKE_CXX_STANDARD_LIBRARIES \"-lc++ -lc++abi -lunwind\")
set(CMAKE_C_COMPILER /usr/local/musl/bin/musl-clang)
set(CMAKE_CXX_COMPILER /usr/local/musl/bin/musl-clang++)
set(CMAKE_LINKER /usr/bin/ld.lld-${LLVM_VERSION})

set(CMAKE_FIND_ROOT_PATH /usr/local/musl /usr/local)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)