wasi-compiler-rt: initial import

This commit is contained in:
Danny Rawlins 2021-12-11 22:13:36 +11:00
parent b42748c74d
commit d267caa36e
6 changed files with 83 additions and 0 deletions

View File

@ -0,0 +1,7 @@
drwxr-xr-x root/root usr/
drwxr-xr-x root/root usr/lib/
drwxr-xr-x root/root usr/lib/clang/
drwxr-xr-x root/root usr/lib/clang/13.0.0/
drwxr-xr-x root/root usr/lib/clang/13.0.0/lib/
drwxr-xr-x root/root usr/lib/clang/13.0.0/lib/wasi/
-rw-r--r-- root/root usr/lib/clang/13.0.0/lib/wasi/libclang_rt.builtins-wasm32.a

View File

@ -0,0 +1 @@
usr/lib/clang/.*/lib/wasi/libclang_rt.builtins-wasm32.a

View File

@ -0,0 +1,8 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF3yXcO6IZejuxACzD5J4YHMZpGYfq50IlRzhUFObpkDIpnOStCsP8feHqft/5xqmyvRRvxBOR3MXsn+qFIcNTbwk=
SHA256 (Pkgfile) = 6c28d7c8837217d45fdbcd7df6f14923127abc8dd5c32b7ad1421f6007ff93c8
SHA256 (.footprint) = 6164631c8a99d377fde871cdc930e474db2d08092114b9de3f50fd205972503c
SHA256 (compiler-rt-13.0.0.src.tar.xz) = 4c3602d76c7868a96b30c36165c4b7643e2a20173fced7e071b4baeb2d74db3f
SHA256 (llvm-13.0.0.src.tar.xz) = 408d11708643ea826f519ff79761fcdfc12d641a2510229eec459e72f8163020
SHA256 (WASI.cmake) = e9e87d4781d6a999ee73a1e2c19754de01415124d0cd9746898f5ee7726dc1e1
SHA256 (wasi-toolchain.cmake) = 52957ee81622bc22adcf0968cbb124a0595fa38e70549a355d42c6e487818edd

37
wasi-compiler-rt/Pkgfile Normal file
View File

@ -0,0 +1,37 @@
# Description: WASI LLVM compiler runtime
# URL: https://compiler-rt.llvm.org/
# Maintainer: CRUX System Team, core-ports at crux dot nu
# Depends on: cmake ninja wasi-libc
name=wasi-compiler-rt
version=13.0.0
release=1
source=(https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/compiler-rt-$version.src.tar.xz
https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/llvm-$version.src.tar.xz
WASI.cmake wasi-toolchain.cmake)
build() {
# Platform files have been copied from https://github.com/WebAssembly/wasi-sdk
mkdir -p cmake/Platform
cp WASI.cmake cmake/Platform
mv llvm-$version.src llvm
cmake -S compiler-rt-$version.src/lib/builtins -B build -G Ninja \
-D CMAKE_INSTALL_PREFIX="/usr/lib/clang/$version" \
-D COMPILER_RT_INSTALL_PATH="/usr/lib/clang/$version" \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_C_FLAGS_RELEASE='-O3 -DNDEBUG -fno-exceptions --sysroot=/usr/share/wasi-sysroot' \
-D CMAKE_MODULE_PATH="$SRC/make" \
-D CMAKE_TOOLCHAIN_FILE="$SRC/wasi-toolchain.cmake" \
-D COMPILER_RT_BAREMETAL_BUILD=ON \
-D COMPILER_RT_INCLUDE_TESTS=OFF \
-D COMPILER_RT_HAS_FPIC_FLAG=OFF \
-D COMPILER_RT_DEFAULT_TARGET_ONLY=ON \
-D COMPILER_RT_OS_DIR=wasi \
-D WASI_SDK_PREFIX=/usr
cmake --build build
DESTDIR=$PKG cmake --install build
/usr/bin/llvm-strip --strip-debug $PKG/usr/lib/clang/$version/lib/wasi/libclang_rt.builtins-wasm32.a
}

View File

@ -0,0 +1 @@
set(WASI 1)

View File

@ -0,0 +1,29 @@
# Cmake toolchain description file for the Makefile
# This is arbitrary, AFAIK, for now.
cmake_minimum_required(VERSION 3.4.0)
set(CMAKE_SYSTEM_NAME WASI)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR wasm32)
set(triple wasm32-wasi)
if(WIN32)
set(WASI_HOST_EXE_SUFFIX ".exe")
else()
set(WASI_HOST_EXE_SUFFIX "")
endif()
set(CMAKE_C_COMPILER ${WASI_SDK_PREFIX}/bin/clang${WASI_HOST_EXE_SUFFIX})
set(CMAKE_CXX_COMPILER ${WASI_SDK_PREFIX}/bin/clang++${WASI_HOST_EXE_SUFFIX})
set(CMAKE_AR ${WASI_SDK_PREFIX}/bin/llvm-ar${WASI_HOST_EXE_SUFFIX})
set(CMAKE_RANLIB ${WASI_SDK_PREFIX}/bin/llvm-ranlib${WASI_HOST_EXE_SUFFIX})
set(CMAKE_C_COMPILER_TARGET ${triple})
set(CMAKE_CXX_COMPILER_TARGET ${triple})
# Don't look in the sysroot for executables to run during the build
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# Only look in the sysroot (not in the host paths) for the rest
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)