[libc] Add wasm support for some submodules in llvm-libc. (#154383)

Introducing several emscripten-specific changes to the llvm-libc headers
as well as adding a wasm sigsetjmp.cpp.
This commit is contained in:
google-yfyang
2025-09-04 11:26:21 -04:00
committed by GitHub
parent 8d5b81ae9b
commit f6e8b26eab
3 changed files with 23 additions and 1 deletions

View File

@@ -9,7 +9,7 @@
#ifndef LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_PLATFORM_ERRORS_H
#define LLVM_LIBC_SRC___SUPPORT_STRINGUTIL_PLATFORM_ERRORS_H
#if defined(__linux__) || defined(__Fuchsia__)
#if defined(__linux__) || defined(__Fuchsia__) || defined(__EMSCRIPTEN__)
#include "tables/linux_platform_errors.h"
#else
#include "tables/minimal_platform_errors.h"

View File

@@ -41,6 +41,10 @@
#define LIBC_TARGET_ARCH_IS_ARM
#endif
#if defined(__wasm__)
#define LIBC_TARGET_ARCH_IS_WASM
#endif
#if defined(__aarch64__) || defined(__arm64__) || defined(_M_ARM64)
#define LIBC_TARGET_ARCH_IS_AARCH64
#endif

View File

@@ -0,0 +1,18 @@
//===-- Implementation of sigsetjmp ---------------------------------------===//
//
// Part of the LLVM Project, 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
//
//===----------------------------------------------------------------------===//
#include "src/setjmp/sigsetjmp.h"
#include "hdr/offsetof_macros.h"
#include "src/__support/common.h"
namespace LIBC_NAMESPACE_DECL {
[[gnu::returns_twice]] int sigsetjmp(jmp_buf sigjmp_buf,
[[maybe_unused]] int savesigs) {
return setjmp(sigjmp_buf);
}
} // namespace LIBC_NAMESPACE_DECL