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

Reply via email to