-
Notifications
You must be signed in to change notification settings - Fork 14.3k
Bump the DWARF version number to 5 on Darwin. #95164
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@llvm/pr-subscribers-debuginfo @llvm/pr-subscribers-clang-driver Author: Adrian Prantl (adrian-prantl) Changesrdar://110925733 Full diff: https://github.com/llvm/llvm-project/pull/95164.diff 2 Files Affected:
diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp
index ed5737915aa96..04e411eeeac92 100644
--- a/clang/lib/Driver/ToolChains/Darwin.cpp
+++ b/clang/lib/Driver/ToolChains/Darwin.cpp
@@ -1257,7 +1257,17 @@ unsigned DarwinClang::GetDefaultDwarfVersion() const {
if ((isTargetMacOSBased() && isMacosxVersionLT(10, 11)) ||
(isTargetIOSBased() && isIPhoneOSVersionLT(9)))
return 2;
- return 4;
+ // Default to use DWARF 4 on OS X 10.11 - macOS 14 / iOS - iOS 17.
+ if ((isTargetMacOSBased() && isMacosxVersionLT(15)) ||
+ (isTargetIOSBased() && isIPhoneOSVersionLT(18)) ||
+ (isTargetWatchOSBased() && TargetVersion < llvm::VersionTuple(11)) ||
+ (isTargetXROS() && TargetVersion < llvm::VersionTuple(2)) ||
+ (isTargetDriverKit() && TargetVersion < llvm::VersionTuple(24)) ||
+ (isTargetMacOSBased() &&
+ TargetVersion.empty()) || // apple-darwin, no version.
+ (TargetPlatform == llvm::Triple::BridgeOS))
+ return 4;
+ return 5;
}
void MachO::AddLinkRuntimeLib(const ArgList &Args, ArgStringList &CmdArgs,
diff --git a/clang/test/Driver/debug-options.c b/clang/test/Driver/debug-options.c
index 07f6ca9e3902f..0a665f7017d63 100644
--- a/clang/test/Driver/debug-options.c
+++ b/clang/test/Driver/debug-options.c
@@ -68,7 +68,32 @@
// RUN: %clang -### -c -g %s -target x86_64-apple-driverkit19.0 2>&1 \
// RUN: | FileCheck -check-prefix=G_STANDALONE \
// RUN: -check-prefix=G_DWARF4 %s
-// RUN: %clang -### -c -fsave-optimization-record %s \
+// RUN: %clang -### -c -g %s -target x86_64-apple-macosx15 2>&1 \
+// RUN: | FileCheck -check-prefix=G_STANDALONE \
+// RUN: -check-prefix=G_DWARF5 %s
+// RUN: %clang -### -c -g %s -target arm64-apple-ios17.0 2>&1 \
+// RUN: | FileCheck -check-prefix=G_STANDALONE \
+// RUN: -check-prefix=G_DWARF4 %s
+// RUN: %clang -### -c -g %s -target arm64-apple-ios18.0 2>&1 \
+// RUN: | FileCheck -check-prefix=G_STANDALONE \
+// RUN: -check-prefix=G_DWARF5 %s
+// RUN: %clang -### -c -g %s -target arm64_32-apple-watchos11 2>&1 \
+// RUN: | FileCheck -check-prefix=G_STANDALONE \
+// RUN: -check-prefix=G_DWARF5 %s
+// RUN: %clang -### -c -g %s -target arm64-apple-tvos18.0 2>&1 \
+// RUN: | FileCheck -check-prefix=G_STANDALONE \
+// RUN: -check-prefix=G_DWARF5 %s
+// RUN: %clang -### -c -g %s -target x86_64-apple-driverkit24.0 2>&1 \
+// RUN: | FileCheck -check-prefix=G_STANDALONE \
+// RUN: -check-prefix=G_DWARF5 %s
+// RUN: %clang -### -c -g %s -target arm64-apple-xros1 2>&1 \
+// RUN: | FileCheck -check-prefix=G_STANDALONE \
+// RUN: -check-prefix=G_DWARF4 %s
+// RUN: %clang -### -c -g %s -target arm64-apple-xros2 2>&1 \
+// RUN: | FileCheck -check-prefix=G_STANDALONE \
+// RUN: -check-prefix=G_DWARF5 %s
+//
+// RUN: %clang -### -c -fsave-optimization-record %s \
// RUN: -target x86_64-apple-darwin 2>&1 \
// RUN: | FileCheck -check-prefix=GLTO_ONLY %s
// RUN: %clang -### -c -g -fsave-optimization-record %s \
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🥳
Well, hmmm, I dunno, a radical change like this really wants an RFC and weeks of debate, right? |
bdc0c66
to
112f03d
Compare
Congrats on the milestone! Glad to have more of us together on the same version for all the positive feedback loops, etc :) |
The default debug info format for newer versions of Darwin is DWARF 5. https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes rdar://110925733
112f03d
to
67dd473
Compare
This broke our buildbot: https://lab.llvm.org/buildbot/#/builders/37/builds/35987
|
Reverts #95164 This broke a buildbot: https://lab.llvm.org/buildbot/#/builders/37/builds/35987
The default debug info format for newer versions of Darwin is DWARF 5. https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes rdar://110925733
Thanks! |
The default debug info format for newer versions of Darwin is DWARF 5. https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes rdar://110925733 (relanding 8f6acd9 with the bridgeOS platform check removed)
Relanded in 8f57f68 |
The default debug info format for newer versions of Darwin is DWARF 5. https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes rdar://110925733 (relanding 8f6acd9 with the bridgeOS platform check removed) (cherry picked from commit 8f57f68)
…-6.0-Bump-the-DWARF-version-number-to-5-on-Darwin.-95164 [Cherry-pick into swift/release/6.0] Bump the DWARF version number to 5 on Darwin. (llvm#95164)
This test is explicitly checking for dwarf 4 behavior on Apple platforms, so we should explicitly use the dwarf4 flag. Related to #95164
This test is explicitly checking for dwarf 4 behavior on Apple platforms, so we should explicitly use the dwarf4 flag. Related to llvm#95164 (cherry picked from commit 445fc51)
The default debug info format for newer versions of Darwin is DWARF 5. https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes rdar://110925733 (relanding 8f6acd9 with the bridgeOS platform check removed)
The default debug info format for newer versions of Darwin is DWARF 5.
https://developer.apple.com/documentation/xcode-release-notes/xcode-16-release-notes
rdar://110925733