You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by hu...@apache.org on 2026/03/27 13:13:00 UTC
(doris) 05/12: [fix](build) add -dead_strip on macOS to fix dyld cache crash for large BE binary
This is an automated email from the ASF dual-hosted git repository.
huajianlan pushed a commit to branch fe_local_shuffle
in repository https://gitbox.apache.org/repos/asf/doris.git
commit 16d457c9e0bfec2aa10835ff4d5d5b9c078cedbc
Author: 924060929 <la...@selectdb.com>
AuthorDate: Thu Mar 26 11:43:25 2026 +0800
[fix](build) add -dead_strip on macOS to fix dyld cache crash for large BE binary
On macOS arm64, the doris_be binary (~2.2GB) has a virtual address space
of ~6.7GB (4GB __PAGEZERO + 2.7GB segments), which overlaps with the dyld
shared cache region. This causes "dyld cache not loaded: syscall to map
cache into shared region failed", making all system libraries (libresolv,
libiconv, CoreFoundation, etc.) fail to load and the BE process crash on
startup.
Adding -Wl,-dead_strip removes unreachable code and data, reducing the
binary to ~1.7GB and the virtual address space to ~6.1GB, which avoids
the dyld shared cache conflict.
---
be/CMakeLists.txt | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/be/CMakeLists.txt b/be/CMakeLists.txt
index e4d9f08eccf..0f85fcd7ba4 100644
--- a/be/CMakeLists.txt
+++ b/be/CMakeLists.txt
@@ -706,6 +706,11 @@ else()
-lresolv
-liconv
)
+ # On macOS arm64, large binaries (>2GB) can cause the virtual address space
+ # to overlap with the dyld shared cache region, resulting in "dyld cache not
+ # loaded: syscall to map cache into shared region failed". Use -dead_strip to
+ # remove unreachable code/data and reduce binary size.
+ add_link_options(-Wl,-dead_strip)
endif()
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org