summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArshia Ghafoori <arshia001@live.com>2024-06-14 12:31:22 +0400
committerArshia001 <Arshia001@users.noreply.github.com>2024-06-14 16:36:26 +0330
commit96a41cc7758327f2ffdbbd6f15777a0aa348cef3 (patch)
treec616eac314e52696c2aded684181b74284f7ad51
parente787159e29f9bd04b9c82a1606a0f57d0ecac51f (diff)
Always build cxx as part of build32.sh
-rw-r--r--.github/workflows/build_cxx_sysroot.yml75
-rw-r--r--.gitmodules3
-rwxr-xr-xbuild32.sh42
-rw-r--r--tools/clang-wasix.cmake_toolchain (renamed from .github/workflows/files/clang-wasix.cmake_toolchain)0
4 files changed, 46 insertions, 74 deletions
diff --git a/.github/workflows/build_cxx_sysroot.yml b/.github/workflows/build_cxx_sysroot.yml
index b8f0074..9f309c9 100644
--- a/.github/workflows/build_cxx_sysroot.yml
+++ b/.github/workflows/build_cxx_sysroot.yml
@@ -26,7 +26,7 @@ jobs:
uses: actions/checkout@v3
with:
submodules: true
-
+
- name: Build
run: |
git config --global --add safe.directory $(pwd)
@@ -35,79 +35,6 @@ jobs:
cp -r sysroot /opt/wasix-sysroot
cp .github/workflows/files/clang-wasix.cmake_toolchain /opt/wasix-sysroot/clang-wasix.cmake_toolchain
- - name: Determine LLVM revision
- run: |
- export LLVM_TAG=$(echo "llvmorg-$(llvm-ar --version | grep -i "LLVM version" | sed -r 's/.*version ([0-9\.]+).*/\1/')")
- echo "LLVM tag: $LLVM_TAG"
- echo "LLVM_REV=$(git ls-remote --tags https://github.com/llvm/llvm-project.git $LLVM_TAG | sed -r 's/([^ \t]*).*/\1/')" | tee -a $GITHUB_ENV
- echo "LLVM_TAG=$LLVM_TAG" | tee -a $GITHUB_ENV
-
- - name: Cache LLVM
- uses: actions/cache@v3
- if: ${{ !env.ACT }}
- with:
- path: llvm-project
- key: llvm-${{ env.LLVM_REV }}
-
- - name: Checkout LLVM
- run: |
- if [ ! -d "llvm-project" ]; then git clone https://github.com/llvm/llvm-project.git; fi
- cd llvm-project
- git fetch origin refs/tags/${{ env.LLVM_TAG }}
- if [ "$(git rev-parse ${{ env.LLVM_TAG }})" != "$(git rev-parse HEAD)" ]; then echo "Checkout ($(git rev-parse ${{ env.LLVM_TAG }}) != $(git rev-parse HEAD))" && git reset --hard ${{ env.LLVM_TAG }} && echo "checked out $(git rev-parse HEAD)"; fi
-
- - name: Build and install compiler_rt builtins
- run: |
- mkdir -p build-compiler-rt-builtins
- cd build-compiler-rt-builtins
- cmake --fresh -DCOMPILER_RT_BAREMETAL_BUILD=On -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCOMPILER_RT_OS_DIR=wasm32-wasi -DCOMPILER_RT_DEFAULT_TARGET_ONLY:BOOL=ON -DCMAKE_TOOLCHAIN_FILE=/opt/wasix-sysroot/clang-wasix.cmake_toolchain -DCMAKE_SYSROOT=/opt/wasix-sysroot -DCMAKE_INSTALL_PREFIX=/opt/wasix-sysroot ../llvm-project/compiler-rt/lib/builtins
- cmake --build . --target install --parallel 4
- export CLANG_MAJOR_VERSION=$(clang --version | grep -i "clang version" | sed -r 's/.*version ([0-9]+).*/\1/')
- mkdir -p /usr/lib/clang/$CLANG_MAJOR_VERSION/lib/wasi
- cp /opt/wasix-sysroot/lib/wasm32-wasi/libclang_rt.builtins-wasm32.a /usr/lib/clang/$CLANG_MAJOR_VERSION/lib/wasi/libclang_rt.builtins-wasm32.a
-
- - name: Build and install LLVM libc++
- run: >
- mkdir -p build-libcxx &&
- cd build-libcxx &&
- cmake
- --fresh
- -DCMAKE_TOOLCHAIN_FILE=/opt/wasix-sysroot/clang-wasix.cmake_toolchain
- -DCMAKE_SYSROOT=/opt/wasix-sysroot
- -DCMAKE_INSTALL_PREFIX=/opt/wasix-sysroot
- -DCXX_SUPPORTS_CXX23=ON
- -DLIBCXX_ENABLE_THREADS:BOOL=ON
- -DLIBCXX_HAS_PTHREAD_API:BOOL=ON
- -DLIBCXX_HAS_EXTERNAL_THREAD_API:BOOL=OFF
- -DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF
- -DLIBCXX_HAS_WIN32_THREAD_API:BOOL=OFF
- -DCMAKE_BUILD_TYPE=RelWithDebugInfo
- -DLIBCXX_ENABLE_SHARED:BOOL=OFF
- -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY:BOOL=OFF
- -DLIBCXX_ENABLE_EXCEPTIONS:BOOL=OFF
- -DLIBCXX_ENABLE_FILESYSTEM:BOOL=OFF
- -DLIBCXX_CXX_ABI=libcxxabi
- -DLIBCXX_HAS_MUSL_LIBC:BOOL=ON
- -DLIBCXX_ABI_VERSION=2
- -DLIBCXXABI_ENABLE_EXCEPTIONS:BOOL=OFF
- -DLIBCXXABI_ENABLE_SHARED:BOOL=OFF
- -DLIBCXXABI_SILENT_TERMINATE:BOOL=ON
- -DLIBCXXABI_ENABLE_THREADS:BOOL=ON
- -DLIBCXXABI_HAS_PTHREAD_API:BOOL=ON
- -DLIBCXXABI_HAS_EXTERNAL_THREAD_API:BOOL=OFF
- -DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF
- -DLIBCXXABI_HAS_WIN32_THREAD_API:BOOL=OFF
- -DLIBCXXABI_ENABLE_PIC:BOOL=OFF
- -DCMAKE_C_COMPILER_WORKS=ON
- -DCMAKE_CXX_COMPILER_WORKS=ON
- -DLLVM_COMPILER_CHECKED=ON
- -DUNIX:BOOL=ON
- -DLIBCXX_LIBDIR_SUFFIX=/wasm32-wasi
- -DLIBCXXABI_LIBDIR_SUFFIX=/wasm32-wasi
- -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi"
- ../llvm-project/runtimes
- && cmake --build . --target install --parallel 4
-
- name: Upload sysroot
if: ${{ !env.ACT }}
uses: actions/upload-artifact@v2
diff --git a/.gitmodules b/.gitmodules
index c116f3c..5a39181 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -4,3 +4,6 @@
[submodule "tools/wasix-headers/WASI"]
path = tools/wasix-headers/WASI
url = https://github.com/wasix-org/wasix-witx.git
+[submodule "tools/llvm-project"]
+ path = tools/llvm-project
+ url = https://github.com/llvm/llvm-project.git
diff --git a/build32.sh b/build32.sh
index c83af62..421cbdb 100755
--- a/build32.sh
+++ b/build32.sh
@@ -29,4 +29,46 @@ EOF
make -j 14
rm -f sysroot/lib/wasm32-wasi/libc-printscan-long-double.a
+
+# Build C++ sysroot
+mkdir -p build/libcxx
+cd build/libcxx
+cmake \
+ -DCMAKE_TOOLCHAIN_FILE=$(pwd)/../../tools/clang-wasix.cmake_toolchain \
+ -DCMAKE_SYSROOT=$(pwd)/../../sysroot \
+ -DCMAKE_INSTALL_PREFIX=$(pwd)/../../sysroot \
+ -DCXX_SUPPORTS_CXX23=ON \
+ -DLIBCXX_ENABLE_THREADS:BOOL=ON \
+ -DLIBCXX_HAS_PTHREAD_API:BOOL=ON \
+ -DLIBCXX_HAS_EXTERNAL_THREAD_API:BOOL=OFF \
+ -DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF \
+ -DLIBCXX_HAS_WIN32_THREAD_API:BOOL=OFF \
+ -DCMAKE_BUILD_TYPE=RelWithDebugInfo \
+ -DLIBCXX_ENABLE_SHARED:BOOL=OFF \
+ -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY:BOOL=OFF \
+ -DLIBCXX_ENABLE_EXCEPTIONS:BOOL=OFF \
+ -DLIBCXX_ENABLE_FILESYSTEM:BOOL=OFF \
+ -DLIBCXX_CXX_ABI=libcxxabi \
+ -DLIBCXX_HAS_MUSL_LIBC:BOOL=ON \
+ -DLIBCXX_ABI_VERSION=2 \
+ -DLIBCXXABI_ENABLE_EXCEPTIONS:BOOL=OFF \
+ -DLIBCXXABI_ENABLE_SHARED:BOOL=OFF \
+ -DLIBCXXABI_SILENT_TERMINATE:BOOL=ON \
+ -DLIBCXXABI_ENABLE_THREADS:BOOL=ON \
+ -DLIBCXXABI_HAS_PTHREAD_API:BOOL=ON \
+ -DLIBCXXABI_HAS_EXTERNAL_THREAD_API:BOOL=OFF \
+ -DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF \
+ -DLIBCXXABI_HAS_WIN32_THREAD_API:BOOL=OFF \
+ -DLIBCXXABI_ENABLE_PIC:BOOL=OFF \
+ -DCMAKE_C_COMPILER_WORKS=ON \
+ -DCMAKE_CXX_COMPILER_WORKS=ON \
+ -DLLVM_COMPILER_CHECKED=ON \
+ -DUNIX:BOOL=ON \
+ -DLIBCXX_LIBDIR_SUFFIX=/wasm32-wasi \
+ -DLIBCXXABI_LIBDIR_SUFFIX=/wasm32-wasi \
+ -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
+ ../../tools/llvm-project/runtimes
+cmake --build . --target install --parallel 14
+cd ../..
+
rsync -Lrtv --delete ./sysroot/ ./sysroot32/
diff --git a/.github/workflows/files/clang-wasix.cmake_toolchain b/tools/clang-wasix.cmake_toolchain
index f0807e7..f0807e7 100644
--- a/.github/workflows/files/clang-wasix.cmake_toolchain
+++ b/tools/clang-wasix.cmake_toolchain