set_property(DIRECTORY . PROPERTY FOLDER "bmalloc") set(bmalloc_PRIVATE_INCLUDE_DIRECTORIES "${BMALLOC_DIR}" "${BMALLOC_DIR}/bmalloc" "${BMALLOC_DIR}/libpas/src/libpas" ) set(bmalloc_SOURCES bmalloc/AllIsoHeaps.cpp bmalloc/Allocator.cpp bmalloc/AvailableMemory.cpp bmalloc/Cache.cpp bmalloc/CryptoRandom.cpp bmalloc/Deallocator.cpp bmalloc/SystemHeap.cpp bmalloc/Environment.cpp bmalloc/FreeList.cpp bmalloc/Gigacage.cpp bmalloc/Heap.cpp bmalloc/HeapConstants.cpp bmalloc/HeapKind.cpp bmalloc/IsoHeap.cpp bmalloc/IsoHeapImpl.cpp bmalloc/IsoMallocFallback.cpp bmalloc/IsoPage.cpp bmalloc/IsoSharedHeap.cpp bmalloc/IsoSharedPage.cpp bmalloc/IsoTLS.cpp bmalloc/IsoTLSEntry.cpp bmalloc/IsoTLSLayout.cpp bmalloc/LargeMap.cpp bmalloc/Logging.cpp bmalloc/Mutex.cpp bmalloc/ObjectType.cpp bmalloc/ObjectTypeTable.cpp bmalloc/PerProcess.cpp bmalloc/Scavenger.cpp bmalloc/TZoneHeap.cpp bmalloc/TZoneHeapManager.cpp bmalloc/bmalloc.cpp libpas/src/libpas/bmalloc_heap.c libpas/src/libpas/bmalloc_heap_config.c libpas/src/libpas/jit_heap.c libpas/src/libpas/pas_bitfit_page_config_kind.c libpas/src/libpas/pas_heap_config_kind.c libpas/src/libpas/pas_segregated_page_config_kind.c ) set_source_files_properties( libpas/src/libpas/bmalloc_heap.c libpas/src/libpas/bmalloc_heap_config.c libpas/src/libpas/jit_heap.c libpas/src/libpas/pas_bitfit_page_config_kind.c libpas/src/libpas/pas_heap_config_kind.c libpas/src/libpas/pas_segregated_page_config_kind.c PROPERTIES LANGUAGE CXX ) set(bmalloc_C_SOURCES libpas/src/libpas/bmalloc_type.c libpas/src/libpas/hotbit_heap.c libpas/src/libpas/hotbit_heap_config.c libpas/src/libpas/iso_heap.c libpas/src/libpas/iso_heap_config.c libpas/src/libpas/iso_test_heap.c libpas/src/libpas/iso_test_heap_config.c libpas/src/libpas/jit_heap_config.c libpas/src/libpas/minalign32_heap.c libpas/src/libpas/minalign32_heap_config.c libpas/src/libpas/pagesize64k_heap.c libpas/src/libpas/pagesize64k_heap_config.c libpas/src/libpas/pas_alignment.c libpas/src/libpas/pas_all_heaps.c libpas/src/libpas/pas_all_shared_page_directories.c libpas/src/libpas/pas_allocation_callbacks.c libpas/src/libpas/pas_allocation_result.c libpas/src/libpas/pas_baseline_allocator.c libpas/src/libpas/pas_baseline_allocator_table.c libpas/src/libpas/pas_basic_heap_config_enumerator_data.c libpas/src/libpas/pas_bitfit_allocator.c libpas/src/libpas/pas_bitfit_directory.c libpas/src/libpas/pas_bitfit_heap.c libpas/src/libpas/pas_bitfit_page.c libpas/src/libpas/pas_bitfit_size_class.c libpas/src/libpas/pas_bitfit_view.c libpas/src/libpas/pas_bootstrap_free_heap.c libpas/src/libpas/pas_bootstrap_heap_page_provider.c libpas/src/libpas/pas_coalign.c libpas/src/libpas/pas_commit_span.c libpas/src/libpas/pas_committed_pages_vector.c libpas/src/libpas/pas_compact_bootstrap_free_heap.c libpas/src/libpas/pas_compact_expendable_memory.c libpas/src/libpas/pas_compact_heap_reservation.c libpas/src/libpas/pas_compact_large_utility_free_heap.c libpas/src/libpas/pas_compute_summary_object_callbacks.c libpas/src/libpas/pas_create_basic_heap_page_caches_with_reserved_memory.c libpas/src/libpas/pas_deallocate.c libpas/src/libpas/pas_debug_spectrum.c libpas/src/libpas/pas_deferred_decommit_log.c libpas/src/libpas/pas_designated_intrinsic_heap.c libpas/src/libpas/pas_dyld_state.c libpas/src/libpas/pas_dynamic_primitive_heap_map.c libpas/src/libpas/pas_ensure_heap_forced_into_reserved_memory.c libpas/src/libpas/pas_ensure_heap_with_page_caches.c libpas/src/libpas/pas_enumerable_page_malloc.c libpas/src/libpas/pas_enumerable_range_list.c libpas/src/libpas/pas_enumerate_bitfit_heaps.c libpas/src/libpas/pas_enumerate_initially_unaccounted_pages.c libpas/src/libpas/pas_enumerate_large_heaps.c libpas/src/libpas/pas_enumerate_segregated_heaps.c libpas/src/libpas/pas_enumerate_unaccounted_pages_as_meta.c libpas/src/libpas/pas_enumerator.c libpas/src/libpas/pas_enumerator_region.c libpas/src/libpas/pas_epoch.c libpas/src/libpas/pas_exclusive_view_template_memo_table.c libpas/src/libpas/pas_expendable_memory.c libpas/src/libpas/pas_extended_gcd.c libpas/src/libpas/pas_fast_large_free_heap.c libpas/src/libpas/pas_fast_megapage_cache.c libpas/src/libpas/pas_fast_megapage_table.c libpas/src/libpas/pas_fd_stream.c libpas/src/libpas/pas_free_granules.c libpas/src/libpas/pas_heap.c libpas/src/libpas/pas_heap_config.c libpas/src/libpas/pas_heap_config_utils.c libpas/src/libpas/pas_heap_for_config.c libpas/src/libpas/pas_heap_lock.c libpas/src/libpas/pas_heap_ref.c libpas/src/libpas/pas_heap_runtime_config.c libpas/src/libpas/pas_heap_summary.c libpas/src/libpas/pas_heap_table.c libpas/src/libpas/pas_immortal_heap.c libpas/src/libpas/pas_large_expendable_memory.c libpas/src/libpas/pas_large_free_heap_deferred_commit_log.c libpas/src/libpas/pas_large_free_heap_helpers.c libpas/src/libpas/pas_large_heap.c libpas/src/libpas/pas_large_heap_physical_page_sharing_cache.c libpas/src/libpas/pas_large_map.c libpas/src/libpas/pas_large_sharing_pool.c libpas/src/libpas/pas_large_utility_free_heap.c libpas/src/libpas/pas_lenient_compact_unsigned_ptr.c libpas/src/libpas/pas_local_allocator.c libpas/src/libpas/pas_local_allocator_scavenger_data.c libpas/src/libpas/pas_local_view_cache.c libpas/src/libpas/pas_lock.c libpas/src/libpas/pas_lock_free_read_ptr_ptr_hashtable.c libpas/src/libpas/pas_log.c libpas/src/libpas/pas_malloc_stack_logging.c libpas/src/libpas/pas_medium_megapage_cache.c libpas/src/libpas/pas_megapage_cache.c libpas/src/libpas/pas_monotonic_time.c libpas/src/libpas/pas_page_base.c libpas/src/libpas/pas_page_base_config.c libpas/src/libpas/pas_page_header_table.c libpas/src/libpas/pas_page_malloc.c libpas/src/libpas/pas_page_sharing_participant.c libpas/src/libpas/pas_page_sharing_pool.c libpas/src/libpas/pas_payload_reservation_page_list.c libpas/src/libpas/pas_physical_memory_transaction.c libpas/src/libpas/pas_primitive_heap_ref.c libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c libpas/src/libpas/pas_ptr_worklist.c libpas/src/libpas/pas_race_test_hooks.c libpas/src/libpas/pas_random.c libpas/src/libpas/pas_red_black_tree.c libpas/src/libpas/pas_redundant_local_allocator_node.c libpas/src/libpas/pas_report_crash.c libpas/src/libpas/pas_reserved_memory_provider.c libpas/src/libpas/pas_root.c libpas/src/libpas/pas_scavenger.c libpas/src/libpas/pas_segregated_directory.c libpas/src/libpas/pas_segregated_exclusive_view.c libpas/src/libpas/pas_segregated_heap.c libpas/src/libpas/pas_segregated_page.c libpas/src/libpas/pas_segregated_page_config.c libpas/src/libpas/pas_segregated_page_config_kind_and_role.c libpas/src/libpas/pas_segregated_partial_view.c libpas/src/libpas/pas_segregated_shared_handle.c libpas/src/libpas/pas_segregated_shared_page_directory.c libpas/src/libpas/pas_segregated_shared_view.c libpas/src/libpas/pas_segregated_size_directory.c libpas/src/libpas/pas_segregated_view.c libpas/src/libpas/pas_shared_page_directory_by_size.c libpas/src/libpas/pas_simple_free_heap_helpers.c libpas/src/libpas/pas_simple_large_free_heap.c libpas/src/libpas/pas_simple_type.c libpas/src/libpas/pas_small_medium_bootstrap_free_heap.c libpas/src/libpas/pas_small_medium_bootstrap_heap_page_provider.c libpas/src/libpas/pas_status_reporter.c libpas/src/libpas/pas_stream.c libpas/src/libpas/pas_string_stream.c libpas/src/libpas/pas_thread.c libpas/src/libpas/pas_thread_local_cache.c libpas/src/libpas/pas_thread_local_cache_layout.c libpas/src/libpas/pas_thread_local_cache_layout_node.c libpas/src/libpas/pas_thread_local_cache_node.c libpas/src/libpas/pas_thread_suspend_lock.c libpas/src/libpas/pas_utility_heap.c libpas/src/libpas/pas_utility_heap_config.c libpas/src/libpas/pas_utils.c libpas/src/libpas/pas_versioned_field.c libpas/src/libpas/pas_virtual_range.c libpas/src/libpas/thingy_heap.c libpas/src/libpas/thingy_heap_config.c ) set(bmalloc_PUBLIC_HEADERS bmalloc/Algorithm.h bmalloc/AllIsoHeaps.h bmalloc/AllIsoHeapsInlines.h bmalloc/AllocationCounts.h bmalloc/CompactAllocationMode.h bmalloc/Allocator.h bmalloc/AvailableMemory.h bmalloc/BAssert.h bmalloc/BCompiler.h bmalloc/BExport.h bmalloc/BInline.h bmalloc/BMalloced.h bmalloc/BPlatform.h bmalloc/BSyscall.h bmalloc/BVMTags.h bmalloc/Bits.h bmalloc/BulkDecommit.h bmalloc/BumpAllocator.h bmalloc/BumpRange.h bmalloc/Cache.h bmalloc/Chunk.h bmalloc/CryptoRandom.h bmalloc/Deallocator.h bmalloc/SystemHeap.h bmalloc/DeferredDecommit.h bmalloc/DeferredDecommitInlines.h bmalloc/DeferredTrigger.h bmalloc/DeferredTriggerInlines.h bmalloc/EligibilityResult.h bmalloc/EligibilityResultInlines.h bmalloc/Environment.h bmalloc/FailureAction.h bmalloc/FixedVector.h bmalloc/FreeList.h bmalloc/FreeListInlines.h bmalloc/Gigacage.h bmalloc/GigacageConfig.h bmalloc/GigacageKind.h bmalloc/Heap.h bmalloc/HeapConstants.h bmalloc/HeapKind.h bmalloc/IsoAllocator.h bmalloc/IsoAllocatorInlines.h bmalloc/IsoConfig.h bmalloc/IsoDeallocator.h bmalloc/IsoDeallocatorInlines.h bmalloc/IsoDirectory.h bmalloc/IsoDirectoryInlines.h bmalloc/IsoDirectoryPage.h bmalloc/IsoDirectoryPageInlines.h bmalloc/IsoHeap.h bmalloc/IsoHeapImpl.h bmalloc/IsoHeapImplInlines.h bmalloc/IsoHeapInlines.h bmalloc/IsoMallocFallback.h bmalloc/IsoPage.h bmalloc/IsoPageInlines.h bmalloc/IsoPageTrigger.h bmalloc/IsoSharedConfig.h bmalloc/IsoSharedHeap.h bmalloc/IsoSharedHeapInlines.h bmalloc/IsoSharedPage.h bmalloc/IsoSharedPageInlines.h bmalloc/IsoTLS.h bmalloc/IsoTLSAllocatorEntry.h bmalloc/IsoTLSAllocatorEntryInlines.h bmalloc/IsoTLSDeallocatorEntry.h bmalloc/IsoTLSDeallocatorEntryInlines.h bmalloc/IsoTLSEntry.h bmalloc/IsoTLSEntryInlines.h bmalloc/IsoTLSInlines.h bmalloc/IsoTLSLayout.h bmalloc/LargeMap.h bmalloc/LargeRange.h bmalloc/LineMetadata.h bmalloc/List.h bmalloc/Logging.h bmalloc/Map.h bmalloc/Mutex.h bmalloc/Object.h bmalloc/ObjectType.h bmalloc/ObjectTypeTable.h bmalloc/Packed.h bmalloc/PerHeapKind.h bmalloc/PerProcess.h bmalloc/PerThread.h bmalloc/PhysicalPageMap.h bmalloc/ProcessCheck.h bmalloc/Range.h bmalloc/Scavenger.h bmalloc/ScopeExit.h bmalloc/SegmentedVector.h bmalloc/Sizes.h bmalloc/SmallLine.h bmalloc/SmallPage.h bmalloc/StaticPerProcess.h bmalloc/TZoneHeap.h bmalloc/TZoneHeapInlines.h bmalloc/TZoneHeapManager.h bmalloc/VMAllocate.h bmalloc/Vector.h bmalloc/Zone.h bmalloc/bmalloc.h bmalloc/valgrind.h libpas/src/libpas/bmalloc_heap_config.h libpas/src/libpas/bmalloc_heap.h libpas/src/libpas/bmalloc_heap_inlines.h libpas/src/libpas/bmalloc_heap_innards.h libpas/src/libpas/bmalloc_heap_ref.h libpas/src/libpas/bmalloc_type.h libpas/src/libpas/hotbit_heap_config.h libpas/src/libpas/hotbit_heap.h libpas/src/libpas/hotbit_heap_inlines.h libpas/src/libpas/hotbit_heap_innards.h libpas/src/libpas/iso_heap_config.h libpas/src/libpas/iso_heap.h libpas/src/libpas/iso_heap_inlines.h libpas/src/libpas/iso_heap_innards.h libpas/src/libpas/iso_heap_ref.h libpas/src/libpas/iso_test_heap_config.h libpas/src/libpas/iso_test_heap.h libpas/src/libpas/jit_heap_config.h libpas/src/libpas/jit_heap_config_root_data.h libpas/src/libpas/jit_heap.h libpas/src/libpas/minalign32_heap_config.h libpas/src/libpas/minalign32_heap.h libpas/src/libpas/pagesize64k_heap_config.h libpas/src/libpas/pagesize64k_heap.h libpas/src/libpas/pas_aligned_allocation_result.h libpas/src/libpas/pas_aligned_allocator.h libpas/src/libpas/pas_alignment.h libpas/src/libpas/pas_all_heap_configs.h libpas/src/libpas/pas_all_heaps.h libpas/src/libpas/pas_allocation_callbacks.h libpas/src/libpas/pas_allocation_config.h libpas/src/libpas/pas_allocation_kind.h libpas/src/libpas/pas_allocation_mode.h libpas/src/libpas/pas_allocation_result.h libpas/src/libpas/pas_allocator_counts.h libpas/src/libpas/pas_allocator_index.h libpas/src/libpas/pas_allocator_scavenge_action.h libpas/src/libpas/pas_all_shared_page_directories.h libpas/src/libpas/pas_baseline_allocator.h libpas/src/libpas/pas_baseline_allocator_result.h libpas/src/libpas/pas_baseline_allocator_table.h libpas/src/libpas/pas_basic_heap_config_enumerator_data.h libpas/src/libpas/pas_basic_heap_config_root_data.h libpas/src/libpas/pas_basic_heap_page_caches.h libpas/src/libpas/pas_basic_heap_runtime_config.h libpas/src/libpas/pas_biasing_directory_kind.h libpas/src/libpas/pas_bitfield_vector.h libpas/src/libpas/pas_bitfit_allocation_result.h libpas/src/libpas/pas_bitfit_allocator.h libpas/src/libpas/pas_bitfit_allocator_inlines.h libpas/src/libpas/pas_bitfit_directory.h libpas/src/libpas/pas_bitfit_directory_inlines.h libpas/src/libpas/pas_bitfit_heap.h libpas/src/libpas/pas_bitfit_max_free.h libpas/src/libpas/pas_bitfit_page_config.h libpas/src/libpas/pas_bitfit_page_config_inlines.h libpas/src/libpas/pas_bitfit_page_config_kind.def libpas/src/libpas/pas_bitfit_page_config_kind.h libpas/src/libpas/pas_bitfit_page_config_utils.h libpas/src/libpas/pas_bitfit_page_config_utils_inlines.h libpas/src/libpas/pas_bitfit_page_config_variant.h libpas/src/libpas/pas_bitfit_page.h libpas/src/libpas/pas_bitfit_page_inlines.h libpas/src/libpas/pas_bitfit_size_class.h libpas/src/libpas/pas_bitfit_view_and_index.h libpas/src/libpas/pas_bitfit_view.h libpas/src/libpas/pas_bitfit_view_inlines.h libpas/src/libpas/pas_bitvector.h libpas/src/libpas/pas_bootstrap_free_heap.h libpas/src/libpas/pas_bootstrap_heap_page_provider.h libpas/src/libpas/pas_cares_about_size_mode.h libpas/src/libpas/pas_cartesian_tree.h libpas/src/libpas/pas_coalign.h libpas/src/libpas/pas_commit_mode.h libpas/src/libpas/pas_commit_span.h libpas/src/libpas/pas_committed_pages_vector.h libpas/src/libpas/pas_compact_atomic_allocator_index_ptr.h libpas/src/libpas/pas_compact_atomic_biasing_directory_ptr.h libpas/src/libpas/pas_compact_atomic_bitfit_biasing_directory_ptr.h libpas/src/libpas/pas_compact_atomic_bitfit_global_size_class_ptr.h libpas/src/libpas/pas_compact_atomic_bitfit_heap_ptr.h libpas/src/libpas/pas_compact_atomic_bitfit_size_class_ptr.h libpas/src/libpas/pas_compact_atomic_bitfit_view_ptr.h libpas/src/libpas/pas_compact_atomic_enumerable_range_list_chunk_ptr.h libpas/src/libpas/pas_compact_atomic_page_sharing_pool_ptr.h libpas/src/libpas/pas_compact_atomic_ptr.h libpas/src/libpas/pas_compact_atomic_segregated_exclusive_view_ptr.h libpas/src/libpas/pas_compact_atomic_segregated_heap_page_sharing_pools_ptr.h libpas/src/libpas/pas_compact_atomic_segregated_partial_view_ptr.h libpas/src/libpas/pas_compact_atomic_segregated_size_directory_ptr.h libpas/src/libpas/pas_compact_atomic_segregated_view.h libpas/src/libpas/pas_compact_atomic_thread_local_cache_layout_node.h libpas/src/libpas/pas_compact_atomic_unsigned_ptr.h libpas/src/libpas/pas_compact_biasing_directory_ptr.h libpas/src/libpas/pas_compact_bitfit_directory_ptr.h libpas/src/libpas/pas_compact_bitfit_global_directory_ptr.h libpas/src/libpas/pas_compact_bitfit_view_ptr.h libpas/src/libpas/pas_compact_bootstrap_free_heap.h libpas/src/libpas/pas_compact_cartesian_tree_node_ptr.h libpas/src/libpas/pas_compact_expendable_memory.h libpas/src/libpas/pas_compact_heap_ptr.h libpas/src/libpas/pas_compact_heap_reservation.h libpas/src/libpas/pas_compact_large_utility_free_heap.h libpas/src/libpas/pas_compact_page_granule_use_count_ptr.h libpas/src/libpas/pas_compact_ptr.h libpas/src/libpas/pas_compact_segregated_biasing_directory_ptr.h libpas/src/libpas/pas_compact_segregated_exclusive_view_ptr.h libpas/src/libpas/pas_compact_segregated_heap_ptr.h libpas/src/libpas/pas_compact_segregated_shared_page_directory_ptr.h libpas/src/libpas/pas_compact_segregated_shared_view_ptr.h libpas/src/libpas/pas_compact_segregated_size_directory_ptr.h libpas/src/libpas/pas_compact_segregated_view.h libpas/src/libpas/pas_compact_tagged_atomic_ptr.h libpas/src/libpas/pas_compact_tagged_page_granule_use_count_ptr.h libpas/src/libpas/pas_compact_tagged_ptr.h libpas/src/libpas/pas_compact_tagged_unsigned_ptr.h libpas/src/libpas/pas_compact_thread_local_cache_layout_node.h libpas/src/libpas/pas_compact_unsigned_ptr.h libpas/src/libpas/pas_compute_summary_object_callbacks.h libpas/src/libpas/pas_config.h libpas/src/libpas/pas_config_prefix.h libpas/src/libpas/pas_create_basic_heap_page_caches_with_reserved_memory.h libpas/src/libpas/pas_darwin_spi.h libpas/src/libpas/pas_deallocate.h libpas/src/libpas/pas_deallocation_mode.h libpas/src/libpas/pas_deallocator.h libpas/src/libpas/pas_deallocator_scavenge_action.h libpas/src/libpas/pas_decommit_exclusion_range.h libpas/src/libpas/pas_system_heap.h libpas/src/libpas/pas_debug_spectrum.h libpas/src/libpas/pas_deferred_decommit_log.h libpas/src/libpas/pas_designated_intrinsic_heap.h libpas/src/libpas/pas_designated_intrinsic_heap_inlines.h libpas/src/libpas/pas_dyld_state.h libpas/src/libpas/pas_dynamic_primitive_heap_map.h libpas/src/libpas/pas_ensure_heap_forced_into_reserved_memory.h libpas/src/libpas/pas_ensure_heap_with_page_caches.h libpas/src/libpas/pas_enumerable_page_malloc.h libpas/src/libpas/pas_enumerable_range_list.h libpas/src/libpas/pas_enumerate_bitfit_heaps.h libpas/src/libpas/pas_enumerate_initially_unaccounted_pages.h libpas/src/libpas/pas_enumerate_large_heaps.h libpas/src/libpas/pas_enumerate_segregated_heaps.h libpas/src/libpas/pas_enumerate_unaccounted_pages_as_meta.h libpas/src/libpas/pas_enumerator.h libpas/src/libpas/pas_enumerator_internal.h libpas/src/libpas/pas_enumerator_region.h libpas/src/libpas/pas_epoch.h libpas/src/libpas/pas_exclusive_view_template_memo_table.h libpas/src/libpas/pas_expendable_memory.h libpas/src/libpas/pas_extended_gcd.h libpas/src/libpas/pas_fast_large_free_heap.h libpas/src/libpas/pas_fast_megapage_cache.h libpas/src/libpas/pas_fast_megapage_kind.h libpas/src/libpas/pas_fast_megapage_table.h libpas/src/libpas/pas_fast_path_allocation_result.h libpas/src/libpas/pas_fast_path_allocation_result_kind.h libpas/src/libpas/pas_fast_tls.h libpas/src/libpas/pas_fd_stream.h libpas/src/libpas/pas_first_level_tiny_large_map_entry.h libpas/src/libpas/pas_found_bit_index.h libpas/src/libpas/pas_found_index.h libpas/src/libpas/pas_free_granules.h libpas/src/libpas/pas_free_mode.h libpas/src/libpas/pas_free_range_kind.h libpas/src/libpas/pas_full_alloc_bits.h libpas/src/libpas/pas_full_alloc_bits_inlines.h libpas/src/libpas/pas_generic_large_free_heap.h libpas/src/libpas/pas_get_allocation_size.h libpas/src/libpas/pas_get_heap.h libpas/src/libpas/pas_get_object_kind.h libpas/src/libpas/pas_get_page_base.h libpas/src/libpas/pas_get_page_base_and_kind_for_small_other_in_fast_megapage.h libpas/src/libpas/pas_hashtable.h libpas/src/libpas/pas_has_object.h libpas/src/libpas/pas_heap_config.h libpas/src/libpas/pas_heap_config_inlines.h libpas/src/libpas/pas_heap_config_kind.def libpas/src/libpas/pas_heap_config_kind.h libpas/src/libpas/pas_heap_config_utils.h libpas/src/libpas/pas_heap_config_utils_inlines.h libpas/src/libpas/pas_heap_for_config.h libpas/src/libpas/pas_heap.h libpas/src/libpas/pas_heap_inlines.h libpas/src/libpas/pas_heap_kind.h libpas/src/libpas/pas_heap_lock.h libpas/src/libpas/pas_heap_page_provider.h libpas/src/libpas/pas_heap_ref.h libpas/src/libpas/pas_heap_ref_kind.h libpas/src/libpas/pas_heap_ref_prefix.h libpas/src/libpas/pas_heap_runtime_config.h libpas/src/libpas/pas_heap_summary.h libpas/src/libpas/pas_heap_table.h libpas/src/libpas/pas_heap_table_state.h libpas/src/libpas/pas_immortal_heap.h libpas/src/libpas/pas_immutable_vector.h libpas/src/libpas/pas_internal_config.h libpas/src/libpas/pas_intrinsic_heap_support.h libpas/src/libpas/pas_large_expendable_memory.h libpas/src/libpas/pas_large_free.h libpas/src/libpas/pas_large_free_heap_config.h libpas/src/libpas/pas_large_free_heap_declarations.def libpas/src/libpas/pas_large_free_heap_deferred_commit_log.h libpas/src/libpas/pas_large_free_heap_definitions.def libpas/src/libpas/pas_large_free_heap_helpers.h libpas/src/libpas/pas_large_free_inlines.h libpas/src/libpas/pas_large_free_visitor.h libpas/src/libpas/pas_large_heap.h libpas/src/libpas/pas_large_heap_physical_page_sharing_cache.h libpas/src/libpas/pas_large_map_entry.h libpas/src/libpas/pas_large_map.h libpas/src/libpas/pas_large_sharing_pool_epoch_update_mode.h libpas/src/libpas/pas_large_sharing_pool.h libpas/src/libpas/pas_large_utility_free_heap.h libpas/src/libpas/pas_large_virtual_range.h libpas/src/libpas/pas_large_virtual_range_min_heap.h libpas/src/libpas/pas_lenient_compact_ptr.h libpas/src/libpas/pas_lenient_compact_ptr_inlines.h libpas/src/libpas/pas_lenient_compact_unsigned_ptr.h libpas/src/libpas/pas_line_word_config.h libpas/src/libpas/pas_list_direction.h libpas/src/libpas/pas_local_allocator_config_kind.h libpas/src/libpas/pas_local_allocator.h libpas/src/libpas/pas_local_allocator_inlines.h libpas/src/libpas/pas_local_allocator_kind.h libpas/src/libpas/pas_local_allocator_refill_mode.h libpas/src/libpas/pas_local_allocator_result.h libpas/src/libpas/pas_local_allocator_scavenger_data.h libpas/src/libpas/pas_local_view_cache.h libpas/src/libpas/pas_lock_free_read_ptr_ptr_hashtable.h libpas/src/libpas/pas_lock.h libpas/src/libpas/pas_log.h libpas/src/libpas/pas_malloc_stack_logging.h libpas/src/libpas/pas_medium_megapage_cache.h libpas/src/libpas/pas_megapage_cache.h libpas/src/libpas/pas_min_heap.h libpas/src/libpas/pas_mmap_capability.h libpas/src/libpas/pas_monotonic_time.h libpas/src/libpas/pas_mutation_count.h libpas/src/libpas/pas_object_kind.h libpas/src/libpas/pas_page_base_and_kind.h libpas/src/libpas/pas_page_base_config.h libpas/src/libpas/pas_page_base_config_inlines.h libpas/src/libpas/pas_page_base_config_utils.h libpas/src/libpas/pas_page_base_config_utils_inlines.h libpas/src/libpas/pas_page_base.h libpas/src/libpas/pas_page_base_inlines.h libpas/src/libpas/pas_page_config_kind.h libpas/src/libpas/pas_page_config_size_category.h libpas/src/libpas/pas_page_granule_use_count.h libpas/src/libpas/pas_page_header_placement_mode.h libpas/src/libpas/pas_page_header_table.h libpas/src/libpas/pas_page_kind.h libpas/src/libpas/pas_page_malloc.h libpas/src/libpas/pas_page_sharing_mode.h libpas/src/libpas/pas_page_sharing_participant.h libpas/src/libpas/pas_page_sharing_participant_kind.h libpas/src/libpas/pas_page_sharing_pool.h libpas/src/libpas/pas_page_sharing_pool_scavenge_result.h libpas/src/libpas/pas_page_sharing_pool_take_result.h libpas/src/libpas/pas_payload_reservation_page_list.h libpas/src/libpas/pas_physical_memory_synchronization_style.h libpas/src/libpas/pas_physical_memory_transaction.h libpas/src/libpas/pas_platform.h libpas/src/libpas/pas_primitive_heap_ref.h libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.h libpas/src/libpas/pas_promote_intrinsic_heap.h libpas/src/libpas/pas_ptr_hash_map.h libpas/src/libpas/pas_ptr_hash_set.h libpas/src/libpas/pas_ptr_min_heap.h libpas/src/libpas/pas_ptr_worklist.h libpas/src/libpas/pas_race_test_hooks.h libpas/src/libpas/pas_random.h libpas/src/libpas/pas_range16.h libpas/src/libpas/pas_range_begin_min_heap.h libpas/src/libpas/pas_range.h libpas/src/libpas/pas_range_locked_mode.h libpas/src/libpas/pas_range_min_heap.h libpas/src/libpas/pas_reallocate_free_mode.h libpas/src/libpas/pas_reallocate_heap_teleport_rule.h libpas/src/libpas/pas_red_black_tree.h libpas/src/libpas/pas_redundant_local_allocator_node.h libpas/src/libpas/pas_report_crash.h libpas/src/libpas/pas_report_crash_pgm_report.h libpas/src/libpas/pas_reserved_memory_provider.h libpas/src/libpas/pas_root.h libpas/src/libpas/pas_scavenger.h libpas/src/libpas/pas_segmented_vector.h libpas/src/libpas/pas_segregated_deallocation_logging_mode.h libpas/src/libpas/pas_segregated_deallocation_mode.h libpas/src/libpas/pas_segregated_directory_bit_reference.h libpas/src/libpas/pas_segregated_directory_first_eligible_kind.h libpas/src/libpas/pas_segregated_directory.h libpas/src/libpas/pas_segregated_directory_inlines.h libpas/src/libpas/pas_segregated_directory_kind.h libpas/src/libpas/pas_segregated_exclusive_view.h libpas/src/libpas/pas_segregated_exclusive_view_inlines.h libpas/src/libpas/pas_segregated_heap.h libpas/src/libpas/pas_segregated_heap_inlines.h libpas/src/libpas/pas_segregated_heap_lookup_kind.h libpas/src/libpas/pas_segregated_page_and_config.h libpas/src/libpas/pas_segregated_page_config.h libpas/src/libpas/pas_segregated_page_config_inlines.h libpas/src/libpas/pas_segregated_page_config_kind.def libpas/src/libpas/pas_segregated_page_config_kind.h libpas/src/libpas/pas_segregated_page_config_kind_and_role.h libpas/src/libpas/pas_segregated_page_config_utils.h libpas/src/libpas/pas_segregated_page_config_utils_inlines.h libpas/src/libpas/pas_segregated_page_config_variant.h libpas/src/libpas/pas_segregated_page_emptiness_kind.h libpas/src/libpas/pas_segregated_page.h libpas/src/libpas/pas_segregated_page_inlines.h libpas/src/libpas/pas_segregated_page_role.h libpas/src/libpas/pas_segregated_partial_view.h libpas/src/libpas/pas_segregated_partial_view_inlines.h libpas/src/libpas/pas_segregated_shared_handle.h libpas/src/libpas/pas_segregated_shared_handle_inlines.h libpas/src/libpas/pas_segregated_shared_page_directory.h libpas/src/libpas/pas_segregated_shared_view.h libpas/src/libpas/pas_segregated_shared_view_inlines.h libpas/src/libpas/pas_segregated_size_directory_creation_mode.h libpas/src/libpas/pas_segregated_size_directory.h libpas/src/libpas/pas_segregated_size_directory_inlines.h libpas/src/libpas/pas_segregated_view_allocator_inlines.h libpas/src/libpas/pas_segregated_view.h libpas/src/libpas/pas_segregated_view_kind.h libpas/src/libpas/pas_shared_handle_or_page_boundary.h libpas/src/libpas/pas_shared_handle_or_page_boundary_inlines.h libpas/src/libpas/pas_shared_page_directory_by_size.h libpas/src/libpas/pas_simple_free_heap_declarations.def libpas/src/libpas/pas_simple_free_heap_definitions.def libpas/src/libpas/pas_simple_free_heap_helpers.h libpas/src/libpas/pas_simple_large_free_heap.h libpas/src/libpas/pas_simple_type.h libpas/src/libpas/pas_size_lookup_mode.h libpas/src/libpas/pas_slow_path_mode.h libpas/src/libpas/pas_slow_path_mode_prefix.h libpas/src/libpas/pas_small_large_map_entry.h libpas/src/libpas/pas_small_medium_bootstrap_free_heap.h libpas/src/libpas/pas_small_medium_bootstrap_heap_page_provider.h libpas/src/libpas/pas_snprintf.h libpas/src/libpas/pas_status_reporter.h libpas/src/libpas/pas_stream.h libpas/src/libpas/pas_string_stream.h libpas/src/libpas/pas_thread.h libpas/src/libpas/pas_thread_suspend_lock.h libpas/src/libpas/pas_thread_local_cache.h libpas/src/libpas/pas_thread_local_cache_layout.h libpas/src/libpas/pas_thread_local_cache_layout_entry.h libpas/src/libpas/pas_thread_local_cache_layout_node.h libpas/src/libpas/pas_thread_local_cache_layout_node_kind.h libpas/src/libpas/pas_thread_local_cache_node.h libpas/src/libpas/pas_tiny_large_map_entry.h libpas/src/libpas/pas_tree_direction.h libpas/src/libpas/pas_tri_state.h libpas/src/libpas/pas_try_allocate_array.h libpas/src/libpas/pas_try_allocate_common.h libpas/src/libpas/pas_try_allocate.h libpas/src/libpas/pas_try_allocate_intrinsic.h libpas/src/libpas/pas_try_allocate_primitive.h libpas/src/libpas/pas_try_reallocate.h libpas/src/libpas/pas_try_shrink.h libpas/src/libpas/pas_utility_heap_config.h libpas/src/libpas/pas_utility_heap.h libpas/src/libpas/pas_utility_heap_support.h libpas/src/libpas/pas_utils.h libpas/src/libpas/pas_utils_prefix.h libpas/src/libpas/pas_versioned_field.h libpas/src/libpas/pas_virtual_range.h libpas/src/libpas/pas_virtual_range_min_heap.h libpas/src/libpas/pas_zero_mode.h libpas/src/libpas/thingy_heap_config.h libpas/src/libpas/thingy_heap.h libpas/src/libpas/thingy_heap_prefix.h ) if (CMAKE_SYSTEM_NAME MATCHES "Darwin") list(APPEND bmalloc_SOURCES bmalloc/TZoneLog.cpp bmalloc/Zone.cpp ) endif () set(bmalloc_LIBRARIES ${CMAKE_DL_LIBS} ) if (ENABLE_MALLOC_HEAP_BREAKDOWN) list(APPEND bmalloc_LIBRARIES ${MALLOC_HEAP_BREAKDOWN_LIBRARIES}) endif () if (ATOMICS_REQUIRE_LIBATOMIC) list(APPEND bmalloc_LIBRARIES atomic) endif () set(bmalloc_COMPILE_OPTIONS -Wno-cast-align -Wno-missing-field-initializers ) set(bmalloc_INTERFACE_LIBRARIES bmalloc) set(bmalloc_INTERFACE_INCLUDE_DIRECTORIES ${bmalloc_FRAMEWORK_HEADERS_DIR}) set(bmalloc_INTERFACE_DEPENDENCIES bmalloc_CopyHeaders) add_definitions(-D_GNU_SOURCE) add_definitions(-DPAS_BMALLOC=1) if (MSVC) add_compile_options(/wd4206) add_compile_options(-mcx16) endif () if (ENABLE_MALLOC_HEAP_BREAKDOWN) add_definitions(-DBENABLE_MALLOC_HEAP_BREAKDOWN=1) endif () WEBKIT_FRAMEWORK_DECLARE(bmalloc) WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS() WEBKIT_COPY_FILES(bmalloc_CopyHeaders DESTINATION ${bmalloc_FRAMEWORK_HEADERS_DIR}/bmalloc FILES ${bmalloc_PUBLIC_HEADERS} FLATTENED ) WEBKIT_FRAMEWORK(bmalloc) # Only build mbmalloc on platforms that MallocBench supports if (DEVELOPER_MODE AND (APPLE OR HAVE_MALLOC_TRIM)) add_library(mbmalloc SHARED bmalloc/mbmalloc.cpp) target_include_directories(mbmalloc PRIVATE ${bmalloc_PRIVATE_INCLUDE_DIRECTORIES}) target_link_libraries(mbmalloc Threads::Threads bmalloc) set_target_properties(mbmalloc PROPERTIES COMPILE_DEFINITIONS "BUILDING_mbmalloc") WEBKIT_ADD_TARGET_CXX_FLAGS(mbmalloc -Wno-missing-field-initializers) endif ()