[clang] 5ea65df - Revert "[clang][Darwin] Disable ObjC class selector stubs when using LLD" (#203456)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 12 00:47:20 PDT 2026
Author: yueshe
Date: 2026-06-12T09:47:14+02:00
New Revision: 5ea65dfac0023ca82b8961f188d574c228657d22
URL: https://github.com/llvm/llvm-project/commit/5ea65dfac0023ca82b8961f188d574c228657d22
DIFF: https://github.com/llvm/llvm-project/commit/5ea65dfac0023ca82b8961f188d574c228657d22.diff
LOG: Revert "[clang][Darwin] Disable ObjC class selector stubs when using LLD" (#203456)
Reverts llvm/llvm-project#203388
Unfortunately this breaks a bunch of tests on CI bots because they seem
to have LLD configured as the default linker. The tests were originally
written to expect `-fobjc-msgsend-class-selector-stubs`. Will have to
modify the tests as well
Added:
Modified:
clang/lib/Driver/ToolChains/Darwin.cpp
clang/test/Driver/darwin-objc-selector-stubs.m
Removed:
################################################################################
diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp
index 0144006b165a7..59744d1cb3e8c 100644
--- a/clang/lib/Driver/ToolChains/Darwin.cpp
+++ b/clang/lib/Driver/ToolChains/Darwin.cpp
@@ -3517,17 +3517,13 @@ void Darwin::addClangTargetOptions(
(getLinkerVersion(DriverArgs) >= VersionTuple(811, 2)))
CC1Args.push_back("-fobjc-msgsend-selector-stubs");
- bool LinkerIsLLD = false;
- GetLinkerPath(&LinkerIsLLD);
-
// Enable objc_msgSend class selector stubs by default if the linker supports
// it. ld64-1250+ does, for arm64, arm64e, and arm64_32.
- // FIXME(#203385): LLD doesn't support ObjC class selector stubs yet.
if (!DriverArgs.hasArgNoClaim(
options::OPT_fobjc_msgsend_class_selector_stubs,
options::OPT_fno_objc_msgsend_class_selector_stubs) &&
getTriple().isAArch64() &&
- (getLinkerVersion(DriverArgs) >= VersionTuple(1250, 0)) && !LinkerIsLLD)
+ (getLinkerVersion(DriverArgs) >= VersionTuple(1250, 0)))
CC1Args.push_back("-fobjc-msgsend-class-selector-stubs");
// Pass "-fno-sized-deallocation" only when the user hasn't manually enabled
diff --git a/clang/test/Driver/darwin-objc-selector-stubs.m b/clang/test/Driver/darwin-objc-selector-stubs.m
index b508bda687830..b4a23ce768586 100644
--- a/clang/test/Driver/darwin-objc-selector-stubs.m
+++ b/clang/test/Driver/darwin-objc-selector-stubs.m
@@ -24,8 +24,7 @@
// RUN: %clang -target arm64_32-apple-watchos8 -mlinker-version=1249 -### %s 2>&1 | FileCheck %s --check-prefix=INST_STUB_ONLY
// RUN: %clang -target arm64_32-apple-watchos8 -mlinker-version=811.2 -### %s 2>&1 | FileCheck %s --check-prefix=INST_STUB_ONLY
// RUN: %clang -target arm64_32-apple-watchos8 -mlinker-version=811 -### %s 2>&1 | FileCheck %s --check-prefix=NOSTUBS
-// FIXME(#203385): LLD does not support ObjC class selector stubs yet.
-// RUN: %clang -target arm64-apple-macos12 -fuse-ld=lld -B%S/Inputs/lld -mlinker-version=1250 -### %s 2>&1 | FileCheck %s --check-prefix=INST_STUB_ONLY
+
// Disabled elsewhere, e.g. x86_64.
// RUN: %clang -target x86_64-apple-macos12 -mlinker-version=1250 -### %s 2>&1 | FileCheck %s --check-prefix=NOSTUBS
More information about the cfe-commits
mailing list