| # Copyright 2026 The IREE Authors |
| # |
| # Licensed under the Apache License v2.0 with LLVM Exceptions. |
| # See https://llvm.org/LICENSE.txt for license information. |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| |
| # Freestanding libc for wasm32. |
| # |
| # Provides C standard library headers and implementations for building the |
| # IREE runtime as a standalone wasm module. No system libc, no Emscripten — |
| # just enough to compile and link C code targeting wasm32-unknown-unknown. |
| # |
| # Headers are in include/ and are exposed via -isystem in the wasm32 toolchain |
| # file (build_tools/cmake/wasm32.cmake). The implementations are compiled here |
| # into iree_wasm_libc. |
| |
| # JS implementation of the iree_syscall wasm imports. |
| iree_wasm_cc_library( |
| NAME |
| syscall_imports |
| SRCS |
| "src/syscall_imports.js" |
| MODULE |
| "iree_syscall" |
| PUBLIC |
| ) |
| |
| add_library(iree_wasm_libc STATIC |
| src/abort.c |
| src/aligned_alloc.c |
| src/ctype.c |
| src/dlmalloc.c |
| src/errno.c |
| src/sbrk.c |
| src/stdio.c |
| src/stdlib.c |
| src/strtol.c |
| src/string.c |
| src/unistd.c |
| ) |
| |
| target_include_directories(iree_wasm_libc PUBLIC |
| "${CMAKE_CURRENT_SOURCE_DIR}/include" |
| ) |
| |
| # dlmalloc.c textually #includes "malloc.c" from third_party/dlmalloc/. |
| target_link_libraries(iree_wasm_libc PRIVATE dlmalloc::dlmalloc) |