Commit 651b9998 authored by jan.koester's avatar jan.koester
Browse files

test

parent 4dc8ea25
Loading
Loading
Loading
Loading
+10 −37
Original line number Diff line number Diff line
@@ -140,65 +140,38 @@ setup_toolchain() {
        make install

        # Build libc++, libc++abi and libunwind against musl from LLVM source
        # LLVM 18 requires the unified runtimes build
        cd /tmp
        LLVM_TAG=llvmorg-${LLVM_VERSION}.1.8
        wget -q https://github.com/llvm/llvm-project/archive/refs/tags/\${LLVM_TAG}.tar.gz -O llvm-project.tar.gz
        tar xf llvm-project.tar.gz
        LLVM_SRC=/tmp/llvm-project-\${LLVM_TAG}

        # Build libunwind (no C++ deps)
        mkdir -p /tmp/build-libunwind && cd /tmp/build-libunwind
        cmake \${LLVM_SRC}/libunwind -G Ninja \
        # Unified runtimes build: libunwind + libc++abi + libc++
        mkdir -p /tmp/build-runtimes && cd /tmp/build-runtimes
        cmake \${LLVM_SRC}/runtimes -G Ninja \
            -DCMAKE_C_COMPILER=clang-${LLVM_VERSION} \
            -DCMAKE_CXX_COMPILER=clang++-${LLVM_VERSION} \
            -DCMAKE_C_COMPILER_WORKS=TRUE \
            -DCMAKE_CXX_COMPILER_WORKS=TRUE \
            -DCMAKE_C_FLAGS=\"--target=x86_64-linux-musl --sysroot=/usr/local/musl -fPIC\" \
            -DCMAKE_CXX_FLAGS=\"--target=x86_64-linux-musl --sysroot=/usr/local/musl -fPIC -nostdinc++\" \
            -DCMAKE_CXX_FLAGS=\"--target=x86_64-linux-musl --sysroot=/usr/local/musl -fPIC\" \
            -DCMAKE_EXE_LINKER_FLAGS=\"-fuse-ld=lld --target=x86_64-linux-musl -L/usr/local/musl/lib -rtlib=compiler-rt -nostdlib -lc\" \
            -DCMAKE_SHARED_LINKER_FLAGS=\"-fuse-ld=lld --target=x86_64-linux-musl -L/usr/local/musl/lib -rtlib=compiler-rt\" \
            -DCMAKE_INSTALL_PREFIX=/usr/local/musl \
            -DLLVM_ENABLE_RUNTIMES=\"libunwind;libcxxabi;libcxx\" \
            -DLIBUNWIND_ENABLE_SHARED=OFF \
            -DLIBUNWIND_USE_COMPILER_RT=ON \
            -DLLVM_PATH=\${LLVM_SRC}/llvm
        ninja
        ninja install

        # Build libc++abi (depends on libunwind)
        mkdir -p /tmp/build-libcxxabi && cd /tmp/build-libcxxabi
        cmake \${LLVM_SRC}/libcxxabi -G Ninja \
            -DCMAKE_C_COMPILER=clang-${LLVM_VERSION} \
            -DCMAKE_CXX_COMPILER=clang++-${LLVM_VERSION} \
            -DCMAKE_C_COMPILER_WORKS=TRUE \
            -DCMAKE_CXX_COMPILER_WORKS=TRUE \
            -DCMAKE_C_FLAGS=\"--target=x86_64-linux-musl --sysroot=/usr/local/musl -fPIC\" \
            -DCMAKE_CXX_FLAGS=\"--target=x86_64-linux-musl --sysroot=/usr/local/musl -fPIC -nostdinc++ -I\${LLVM_SRC}/libcxx/include\" \
            -DCMAKE_EXE_LINKER_FLAGS=\"-fuse-ld=lld --target=x86_64-linux-musl -L/usr/local/musl/lib -rtlib=compiler-rt -nostdlib -lc -lunwind\" \
            -DCMAKE_INSTALL_PREFIX=/usr/local/musl \
            -DLIBCXXABI_ENABLE_SHARED=OFF \
            -DLIBCXXABI_USE_COMPILER_RT=ON \
            -DLIBCXXABI_USE_LLVM_UNWINDER=ON \
            -DLIBCXXABI_LIBUNWIND_PATH=\${LLVM_SRC}/libunwind \
            -DLLVM_PATH=\${LLVM_SRC}/llvm
        ninja
        ninja install

        # Build libc++ (depends on libc++abi)
        mkdir -p /tmp/build-libcxx && cd /tmp/build-libcxx
        cmake \${LLVM_SRC}/libcxx -G Ninja \
            -DCMAKE_C_COMPILER=clang-${LLVM_VERSION} \
            -DCMAKE_CXX_COMPILER=clang++-${LLVM_VERSION} \
            -DCMAKE_C_COMPILER_WORKS=TRUE \
            -DCMAKE_CXX_COMPILER_WORKS=TRUE \
            -DCMAKE_C_FLAGS=\"--target=x86_64-linux-musl --sysroot=/usr/local/musl -fPIC\" \
            -DCMAKE_CXX_FLAGS=\"--target=x86_64-linux-musl --sysroot=/usr/local/musl -fPIC -nostdinc++ -I\${LLVM_SRC}/libcxx/include\" \
            -DCMAKE_EXE_LINKER_FLAGS=\"-fuse-ld=lld --target=x86_64-linux-musl -L/usr/local/musl/lib -rtlib=compiler-rt -nostdlib -lc -lunwind -lc++abi\" \
            -DCMAKE_INSTALL_PREFIX=/usr/local/musl \
            -DLIBCXX_ENABLE_SHARED=OFF \
            -DLIBCXX_USE_COMPILER_RT=ON \
            -DLIBCXX_CXX_ABI=libcxxabi \
            -DLIBCXX_CXX_ABI_INCLUDE_PATHS=\${LLVM_SRC}/libcxxabi/include \
            -DLIBCXX_HAS_MUSL_LIBC=ON \
            -DLLVM_PATH=\${LLVM_SRC}/llvm
            -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON
        ninja
        ninja install
        ninja
        ninja install