> -----Original Message----- > From: cfe-commits [mailto:cfe-commits-boun...@lists.llvm.org] On Behalf Of > Adrian Prantl via cfe-commits > Sent: Monday, October 17, 2016 12:36 PM > To: cfe-commits@lists.llvm.org > Subject: r284416 - Driver/Darwin: Set the DWARF version based on the > deployment target. > > Author: adrian > Date: Mon Oct 17 14:36:18 2016 > New Revision: 284416 > > URL: http://llvm.org/viewvc/llvm-project?rev=284416&view=rev > Log: > Driver/Darwin: Set the DWARF version based on the deployment target. > > System utilities such as atos only support DWARF 4 on OS X 10.11+ and > iOS 9+. We thus want to enable DWARF 4 only if the deployment target > has a recent enough operating system version and use DWARF 2 for older > systems. > > <rdar://problem/28766743> > > Modified: > cfe/trunk/lib/Driver/ToolChains.cpp > cfe/trunk/lib/Driver/ToolChains.h > cfe/trunk/test/Driver/clang-g-opts.c > cfe/trunk/test/Driver/debug-options.c > > Modified: cfe/trunk/lib/Driver/ToolChains.cpp > URL: http://llvm.org/viewvc/llvm- > project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=284416&r1=284415&r2=284416 > &view=diff > ========================================================================== > ==== > --- cfe/trunk/lib/Driver/ToolChains.cpp (original) > +++ cfe/trunk/lib/Driver/ToolChains.cpp Mon Oct 17 14:36:18 2016 > @@ -289,6 +289,14 @@ void DarwinClang::AddLinkARCArgs(const A > CmdArgs.push_back(Args.MakeArgString(P)); > } > > +unsigned DarwinClang::GetDefaultDwarfVersion() const { > + // Default to use DWARF 2 on OS X 10.10 / iOS 8 and lower. > + if ((isTargetMacOS() && isMacosxVersionLT(10, 11)) || > + (isTargetIOSBased() && isIPhoneOSVersionLT(9))) > + return 2; > + return 4; > +} > + > void MachO::AddLinkRuntimeLib(const ArgList &Args, ArgStringList > &CmdArgs, > StringRef DarwinLibName, bool AlwaysLink, > bool IsEmbedded, bool AddRPath) const { > > Modified: cfe/trunk/lib/Driver/ToolChains.h > URL: http://llvm.org/viewvc/llvm- > project/cfe/trunk/lib/Driver/ToolChains.h?rev=284416&r1=284415&r2=284416&v > iew=diff > ========================================================================== > ==== > --- cfe/trunk/lib/Driver/ToolChains.h (original) > +++ cfe/trunk/lib/Driver/ToolChains.h Mon Oct 17 14:36:18 2016 > @@ -585,7 +585,7 @@ public: > void AddLinkARCArgs(const llvm::opt::ArgList &Args, > llvm::opt::ArgStringList &CmdArgs) const override; > > - unsigned GetDefaultDwarfVersion() const override { return 4; } > + unsigned GetDefaultDwarfVersion() const override; > // Until dtrace (via CTF) and LLDB can deal with distributed debug > info, > // Darwin defaults to standalone/full debug info. > bool GetDefaultStandaloneDebug() const override { return true; } > > Modified: cfe/trunk/test/Driver/clang-g-opts.c > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/clang-g- > opts.c?rev=284416&r1=284415&r2=284416&view=diff > ========================================================================== > ==== > --- cfe/trunk/test/Driver/clang-g-opts.c (original) > +++ cfe/trunk/test/Driver/clang-g-opts.c Mon Oct 17 14:36:18 2016 > @@ -4,7 +4,7 @@ > > // Assert that the toolchains which should default to a lower Dwarf > version do so. > // RUN: %clang -### -S %s -g -target x86_64-apple-darwin 2>&1 \ > -// RUN: | FileCheck --check-prefix=CHECK-WITH-G-STANDALONE %s > +// RUN: | FileCheck --check-prefix=CHECK-WITH-G-DWARF2 %s
This seems to weaken the test unnecessarily. That is, "G-STANDALONE" should still work and checks more things. --paulr > // RUN: %clang -### -S %s -g -target i686-pc-openbsd 2>&1 \ > // RUN: | FileCheck --check-prefix=CHECK-WITH-G-DWARF2 %s > // RUN: %clang -### -S %s -g -target x86_64-pc-freebsd10.0 2>&1 \ > @@ -36,4 +36,4 @@ > // CHECK-WITH-G-DWARF2: "-dwarf-version=2" > > // CHECK-WITH-G-STANDALONE: "-debug-info-kind=standalone" > -// CHECK-WITH-G-STANDALONE: "-dwarf-version=4" > +// CHECK-WITH-G-STANDALONE: "-dwarf-version=2" > > Modified: cfe/trunk/test/Driver/debug-options.c > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/debug- > options.c?rev=284416&r1=284415&r2=284416&view=diff > ========================================================================== > ==== > --- cfe/trunk/test/Driver/debug-options.c (original) > +++ cfe/trunk/test/Driver/debug-options.c Mon Oct 17 14:36:18 2016 > @@ -19,17 +19,31 @@ > // RUN: | FileCheck -check-prefix=G -check-prefix=G_SCE %s > > // RUN: %clang -### -c -g %s -target x86_64-apple-darwin 2>&1 \ > -// RUN: | FileCheck -check-prefix=G_DARWIN -check- > prefix=G_LLDB %s > -// RUN: %clang -### -c -g2 %s -target x86_64-apple-darwin 2>&1 \ > -// RUN: | FileCheck -check-prefix=G_DARWIN %s > -// RUN: %clang -### -c -g3 %s -target x86_64-apple-darwin 2>&1 \ > -// RUN: | FileCheck -check-prefix=G_DARWIN %s > -// RUN: %clang -### -c -ggdb %s -target x86_64-apple-darwin 2>&1 \ > -// RUN: | FileCheck -check-prefix=G_DARWIN -check- > prefix=G_GDB %s > -// RUN: %clang -### -c -ggdb1 %s -target x86_64-apple-darwin 2>&1 \ > +// RUN: | FileCheck -check-prefix=G_ONLY_DWARF2 -check- > prefix=G_LLDB %s > +// RUN: %clang -### -c -g %s -target x86_64-apple-darwin16 2>&1 \ > +// RUN: | FileCheck -check-prefix=G_STANDALONE_DWARF4 -check- > prefix=G_LLDB %s > +// RUN: %clang -### -c -g2 %s -target x86_64-apple-darwin16 2>&1 \ > +// RUN: | FileCheck -check-prefix=G_STANDALONE_DWARF4 %s > +// RUN: %clang -### -c -g3 %s -target x86_64-apple-darwin16 2>&1 \ > +// RUN: | FileCheck -check-prefix=G_STANDALONE_DWARF4 %s > +// RUN: %clang -### -c -ggdb %s -target x86_64-apple-darwin16 2>&1 \ > +// RUN: | FileCheck -check-prefix=G_STANDALONE_DWARF4 -check- > prefix=G_GDB %s > +// RUN: %clang -### -c -ggdb1 %s -target x86_64-apple-darwin16 2>&1 \ > // RUN: | FileCheck -check-prefix=GLTO_ONLY %s > -// RUN: %clang -### -c -ggdb3 %s -target x86_64-apple-darwin 2>&1 \ > -// RUN: | FileCheck -check-prefix=G_DARWIN %s > +// RUN: %clang -### -c -ggdb3 %s -target x86_64-apple-darwin16 2>&1 \ > +// RUN: | FileCheck -check-prefix=G_STANDALONE_DWARF4 %s > +// RUN: %clang -### -c -g %s -target x86_64-apple-macosx10.11 2>&1 \ > +// RUN: | FileCheck -check-prefix=G_STANDALONE_DWARF4 %s > +// RUN: %clang -### -c -g %s -target x86_64-apple-macosx10.10 2>&1 \ > +// RUN: | FileCheck -check-prefix=G_ONLY_DWARF2 %s > +// RUN: %clang -### -c -g %s -target armv7-apple-ios9.0 2>&1 \ > +// RUN: | FileCheck -check-prefix=G_STANDALONE_DWARF4 %s > +// RUN: %clang -### -c -g %s -target armv7-apple-ios8.0 2>&1 \ > +// RUN: | FileCheck -check-prefix=G_ONLY_DWARF2 %s > +// RUN: %clang -### -c -g %s -target armv7k-apple-watchos 2>&1 \ > +// RUN: | FileCheck -check-prefix=G_STANDALONE_DWARF4 %s > +// RUN: %clang -### -c -g %s -target arm64-apple-tvos9.0 2>&1 \ > +// RUN: | FileCheck -check-prefix=G_STANDALONE_DWARF4 %s > > // RUN: %clang -### -c -g %s -target x86_64-pc-freebsd10.0 2>&1 \ > // RUN: | FileCheck -check-prefix=G_GDB %s > @@ -75,7 +89,7 @@ > // RUN: | FileCheck -check-prefix=GLTO_ONLY_DWARF2 %s > // RUN: %clang -### -c -gline-tables-only -g %s -target x86_64-linux-gnu > 2>&1 \ > // RUN: | FileCheck -check-prefix=G_ONLY %s > -// RUN: %clang -### -c -gline-tables-only -g %s -target x86_64-apple- > darwin 2>&1 \ > +// RUN: %clang -### -c -gline-tables-only -g %s -target x86_64-apple- > darwin16 2>&1 \ > // RUN: | FileCheck -check-prefix=G_STANDALONE_DWARF4 %s > // RUN: %clang -### -c -gline-tables-only -g %s -target i686-pc-openbsd > 2>&1 \ > // RUN: | FileCheck -check-prefix=G_ONLY_DWARF2 %s > @@ -121,9 +135,6 @@ > // G: "-cc1" > // G: "-debug-info-kind=limited" > // > -// G_DARWIN: "-cc1" > -// G_DARWIN: "-dwarf-version=4" > -// > // NOG_PS4: "-cc1" > // NOG_PS4-NOT "-dwarf-version= > // NOG_PS4: "-generate-arange-section" > @@ -151,10 +162,6 @@ > // G_ONLY: "-cc1" > // G_ONLY: "-debug-info-kind=limited" > // > -// G_GDB: "-debugger-tuning=gdb" > -// G_LLDB: "-debugger-tuning=lldb" > -// G_SCE: "-debugger-tuning=sce" > -// > // These tests assert that "-gline-tables-only" "-g" uses the latter, > // but otherwise not caring about the DebugInfoKind. > // G_ONLY_DWARF2: "-cc1" > @@ -165,6 +172,10 @@ > // G_STANDALONE_DWARF4: "-debug-info-kind=standalone" > // G_STANDALONE_DWARF4: "-dwarf-version=4" > // > +// G_GDB: "-debugger-tuning=gdb" > +// G_LLDB: "-debugger-tuning=lldb" > +// G_SCE: "-debugger-tuning=sce" > +// > // This tests asserts that "-gline-tables-only" "-g0" disables debug > info. > // GLTO_NO: "-cc1" > // GLTO_NO-NOT: -debug-info-kind= > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits