Source code

Revision control

Copy as Markdown

Other Tools

From: Mike Hommey <mh@glandium.org>
Date: Thu, 6 Jul 2023 07:28:13 +0900
Subject: [PATCH] Avoid dead-stripping rust compiler_builtins atoms
Previously in-tree as cctools.patch, dropped in bug 1797216 (D266196).
Adapted to the pinned revision, where libclang_rt handling moved into
isCompilerSupportLib().
diff --git a/cctools/ld64/src/ld/Resolver.cpp b/cctools/ld64/src/ld/Resolver.cpp
--- a/cctools/ld64/src/ld/Resolver.cpp
+++ b/cctools/ld64/src/ld/Resolver.cpp
@@ -1481,7 +1481,8 @@
// <rdar://problem/49468634> if doing LTO, mark all libclang_rt* mach-o atoms
// as live since the backend may suddenly codegen uses of them
if ( _haveLLVMObjs && !forceDeadStrip && (atom->contentType() != ld::Atom::typeLTOtemporary) ) {
- if ( isCompilerSupportLib(atom->safeFilePath()) ) {
+ if ( isCompilerSupportLib(atom->safeFilePath()) ||
+ strstr(atom->safeFilePath(), "compiler_builtins") != nullptr ) {
return true;
}
}