Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d7b3180cbfe81056d109ad298b3c901645e89908
https://github.com/WebKit/WebKit/commit/d7b3180cbfe81056d109ad298b3c901645e89908
Author: Zak Ridouh <[email protected]>
Date: 2026-04-22 (Wed, 22 Apr 2026)
Changed paths:
M Source/bmalloc/libpas/src/libpas/bmalloc_heap_iso.c
M Source/bmalloc/libpas/src/libpas/hotbit_heap.h
M Source/bmalloc/libpas/src/libpas/hotbit_heap_inlines.h
M Source/bmalloc/libpas/src/libpas/iso_heap_inlines.h
M Source/bmalloc/libpas/src/libpas/pas_mte.h
M Source/bmalloc/libpas/src/libpas/pas_utils.h
Log Message:
-----------
[libpas] Fix libpas standalone build
https://bugs.webkit.org/show_bug.cgi?id=312733
rdar://175129910
Reviewed by Yusuke Suzuki.
311133@main removed includes from headers whose macro bodies are guarded
by PAS_ENABLE_ISO / PAS_ENABLE_HOTBIT. These macros are 0 in WebKit
(PAS_BMALLOC=1) but 1 in the libpas standalone build, so the includes
were silently required by the standalone build. Restore them inside the
Also fix several pre-existing issues that surface once the standalone
build gets past the include errors:
- Guard <stdatomic.h> in pas_utils.h for C-only. It conflicts with C++
<atomic> before C++23 and breaks Verifier.cpp. The macros that use
atomics (PAS_ATOMIC_TYPE / PAS_ATOMIC_LOAD_RELAXED) only use the
_Atomic keyword and __c11_atomic_* clang builtins, neither of which
needs the header.
- Restore <pthread/tsd_private.h> in pas_utils.h. TSDTests.cpp and
pas_fast_tls.h depend on pthread_key_init_np,
_pthread_setspecific_direct, and __PTK_FRAMEWORK_* keys from it.
- Add missing bmalloc_iso_allocate_array_by_size and
bmalloc_try_iso_allocate_array_by_size definitions to
bmalloc_heap_iso.c. They're declared in bmalloc_heap.h but were lost
in db6887c9076e when bmalloc_heap.c was split.
- Add 'static' to the 9 PAS_ALWAYS_INLINE functions in pas_mte.h. C99
inline semantics require an external definition when the compiler
chooses not to inline (which happens in Debug, where PAS_ALWAYS_INLINE
drops __attribute__((always_inline))). The codebase convention is
'static PAS_ALWAYS_INLINE' for header-only inline functions (489
occurrences across 87 files); the pas_mte.h functions are anomalies.
* Source/bmalloc/libpas/src/libpas/bmalloc_heap_iso.c:
(bmalloc_try_iso_allocate_array_by_size):
(bmalloc_iso_allocate_array_by_size):
* Source/bmalloc/libpas/src/libpas/hotbit_heap.h:
* Source/bmalloc/libpas/src/libpas/hotbit_heap_inlines.h:
* Source/bmalloc/libpas/src/libpas/iso_heap_inlines.h:
* Source/bmalloc/libpas/src/libpas/pas_mte.h:
(pas_mte_exclude_tag):
* Source/bmalloc/libpas/src/libpas/pas_utils.h:
Canonical link: https://commits.webkit.org/311770@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications