NEW282511
JSCOnly MacOS build failed during linking libmbmalloc.dylib
https://bugs.webkit.org/show_bug.cgi?id=282511
Summary JSCOnly MacOS build failed during linking libmbmalloc.dylib
blessyoualavie1
Reported 2024-11-03 09:38:37 PST
Building JSCOnly latest version using command `./Tools/Scripts/build-webkit --jsc-only` failed on MacOs 15.1, Xcode 16.1. ``` ./Tools/Scripts/build-webkit --jsc-only --release ... [1364/2622] Linking CXX shared library lib/libmbmalloc.dylib FAILED: lib/libmbmalloc.dylib : && /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -fdiagnostics-color=always -fcolor-diagnostics -Wextra -Wall -Werror=undefined-internal -Werror=undefined-inline -pipe -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-parentheses-equality -Qunused-arguments -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -fasynchronous-unwind-tables -fno-strict-aliasing -fno-exceptions -fno-rtti -fcoroutines -O3 -DNDEBUG -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.1.sdk -dynamiclib -Wl,-headerpad_max_install_names -o lib/libmbmalloc.dylib -install_name @rpath/libmbmalloc.dylib Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/AllIsoHeaps.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/Allocator.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/AvailableMemory.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/Cache.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/CryptoRandom.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/Deallocator.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/DebugHeap.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/Environment.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/FreeList.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/Gigacage.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/Heap.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/HeapConstants.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/HeapKind.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/IsoHeap.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/IsoHeapImpl.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/IsoMallocFallback.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/IsoPage.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/IsoSharedHeap.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/IsoSharedPage.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/IsoTLS.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/IsoTLSEntry.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/IsoTLSLayout.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/LargeMap.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/Logging.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/Mutex.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/ObjectType.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/ObjectTypeTable.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/PerProcess.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/Scavenger.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/TZoneHeap.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/TZoneHeapManager.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/bmalloc.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/bmalloc_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/bmalloc_heap_config.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/bmalloc_type.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/hotbit_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/hotbit_heap_config.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/iso_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/iso_heap_config.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/iso_test_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/iso_test_heap_config.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/jit_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/jit_heap_config.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/minalign32_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/minalign32_heap_config.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pagesize64k_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pagesize64k_heap_config.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_alignment.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_all_heaps.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_allocation_callbacks.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_allocation_result.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_all_shared_page_directories.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_baseline_allocator.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_baseline_allocator_table.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_basic_heap_config_enumerator_data.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_bitfit_allocator.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_bitfit_directory.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_bitfit_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_bitfit_page.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_bitfit_page_config_kind.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_bitfit_size_class.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_bitfit_view.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_bootstrap_free_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_bootstrap_heap_page_provider.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_coalign.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_commit_span.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_committed_pages_vector.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_compact_bootstrap_free_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_compact_expendable_memory.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_compact_heap_reservation.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_compact_large_utility_free_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_compute_summary_object_callbacks.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_create_basic_heap_page_caches_with_reserved_memory.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_deallocate.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_debug_spectrum.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_deferred_decommit_log.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_designated_intrinsic_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_dyld_state.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_dynamic_primitive_heap_map.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_ensure_heap_forced_into_reserved_memory.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_ensure_heap_with_page_caches.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_enumerable_page_malloc.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_enumerable_range_list.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_enumerate_bitfit_heaps.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_enumerate_initially_unaccounted_pages.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_enumerate_large_heaps.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_enumerate_segregated_heaps.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_enumerate_unaccounted_pages_as_meta.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_enumerator.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_enumerator_region.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_epoch.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_exclusive_view_template_memo_table.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_expendable_memory.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_extended_gcd.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_fast_large_free_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_fast_megapage_cache.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_fast_megapage_table.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_fd_stream.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_free_granules.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_heap_config.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_heap_config_kind.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_heap_config_utils.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_heap_for_config.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_heap_lock.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_heap_ref.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_heap_runtime_config.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_heap_summary.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_heap_table.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_immortal_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_large_expendable_memory.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_large_free_heap_deferred_commit_log.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_large_free_heap_helpers.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_large_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_large_heap_physical_page_sharing_cache.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_large_map.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_large_sharing_pool.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_large_utility_free_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_lenient_compact_unsigned_ptr.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_local_allocator.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_local_allocator_scavenger_data.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_local_view_cache.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_lock.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_lock_free_read_ptr_ptr_hashtable.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_log.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_malloc_stack_logging.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_medium_megapage_cache.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_megapage_cache.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_monotonic_time.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_page_base.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_page_base_config.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_page_header_table.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_page_malloc.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_page_sharing_participant.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_page_sharing_pool.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_payload_reservation_page_list.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_physical_memory_transaction.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_primitive_heap_ref.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_ptr_worklist.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_race_test_hooks.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_random.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_red_black_tree.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_redundant_local_allocator_node.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_report_crash.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_reserved_memory_provider.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_root.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_scavenger.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_segregated_directory.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_segregated_exclusive_view.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_segregated_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_segregated_page.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_segregated_page_config.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_segregated_page_config_kind.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_segregated_page_config_kind_and_role.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_segregated_partial_view.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_segregated_shared_handle.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_segregated_shared_page_directory.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_segregated_shared_view.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_segregated_size_directory.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_segregated_view.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_shared_page_directory_by_size.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_simple_free_heap_helpers.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_simple_large_free_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_simple_type.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_status_reporter.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_stream.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_string_stream.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_thread_suspend_lock.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_thread_local_cache.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_thread_local_cache_layout.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_thread_local_cache_layout_node.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_thread_local_cache_node.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_utility_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_utility_heap_config.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_utils.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_versioned_field.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/pas_virtual_range.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/thingy_heap.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/libpas/src/libpas/thingy_heap_config.c.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/Zone.cpp.o Source/bmalloc/CMakeFiles/bmalloc.dir/bmalloc/ProcessCheck.mm.o Source/bmalloc/CMakeFiles/mbmalloc.dir/bmalloc/mbmalloc.cpp.o && : Undefined symbols for architecture arm64: "_OBJC_CLASS_$_NSBundle", referenced from: in ProcessCheck.mm.o "_OBJC_CLASS_$_NSProcessInfo", referenced from: in ProcessCheck.mm.o "bmalloc::api::TZoneLog::log(char const*, ...)", referenced from: bmalloc::api::TZoneHeapManager::init() (.cold.1) in TZoneHeapManager.cpp.o "bmalloc::api::TZoneLog::singleton()", referenced from: bmalloc::api::TZoneHeapManager::init() (.cold.1) in TZoneHeapManager.cpp.o "_objc_msgSend", referenced from: in objc-stubs-file ld: symbol(s) not found for architecture arm64 c++: error: linker command failed with exit code 1 (use -v to see invocation) [1377/2622] Building CXX object Tools/TestWebKitAPI/CMakeFiles/TestWTF.dir/TestsController.cpp.o ninja: build stopped: subcommand failed. ```
Attachments
Radar WebKit Bug Importer
Comment 1 2024-11-10 09:39:12 PST
ariaszzzhc
Comment 2 2024-12-17 20:54:15 PST
I've met same problem? Any solution to fix this? Or will it be fixed recently?
blessyoualavie1
Comment 3 2024-12-19 09:29:17 PST
Currently, my workaround is using the "JavaScriptCore" scheme with xcodebuild command.
Tim Chevalier
Comment 4 2025-03-07 20:13:49 PST
I ran into the same problem. I did a `git bisect` and the problem seems to have been introduced in this commit: https://lists.webkit.org/pipermail/webkit-changes/2024-July/304870.html A partial fix is to edit `Source/bmalloc/CMakeLists.txt` as follows: ``` -- a/Source/bmalloc/CMakeLists.txt +++ b/Source/bmalloc/CMakeLists.txt @@ -722,7 +722,7 @@ WEBKIT_ADD_TARGET_CXX_FLAGS(bmalloc 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) + target_link_libraries(mbmalloc Threads::Threads bmalloc "-framework Foundation") set_target_properties(mbmalloc PROPERTIES COMPILE_DEFINITIONS "BUILDING_mbmalloc") WEBKIT_ADD_TARGET_CXX_FLAGS(mbmalloc -Wno-missing-field-initializers) endif () ``` This works to get `libmbmalloc` building, but then the build fails in a later stage (linking `LLIntSettingsExtractor`), complaining about the same undefined symbols.
Elliott Williams
Comment 5 2025-03-10 11:43:16 PDT
Definitely looks like https://bugs.webkit.org/show_bug.cgi?id=277383 added Foundation and objc code to bmalloc. In the Xcode-based build, we build bmalloc as a static library and link it into JavaScriptCore.framework, so its gets its Foundation and libobjc linkage from JavaScriptCore. So in the CMake build, where we build it as a dylib, we'll need to add the same linkage to targets below JSC. As a workaround, I recommend using `Tools/Scripts/build-jsc` which uses Xcode to build, that's the configuration we actually defend in EWS.
Note You need to log in before you can comment on or make changes to this bug.