Re: r284416 - Driver/Darwin: Set the DWARF version based on the deployment target.
Thanks for noticing! I improved the test in r284420 by separating the check for debug info kind and dwarf version. -- adrian > On Oct 17, 2016, at 1:11 PM, Robinson, Paul <paul.robin...@sony.com> wrote: > > > >> -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=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. >> >> >> >> 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=284415=284416 >> =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 , ArgStringList >> , >> 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=284415=284416 >> 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 , >> llvm::opt::ArgStringList ) 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=284415=284416=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: &quo
RE: r284416 - Driver/Darwin: Set the DWARF version based on the deployment target.
> -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=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. > > > > 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=284415=284416 > =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 , ArgStringList > , >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=284415=284416 > 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 , >llvm::opt::ArgStringList ) 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=284415=284416=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=284415=284416=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 \ >
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=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. 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=284415=284416=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 , ArgStringList , 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=284415=284416=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 , llvm::opt::ArgStringList ) 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=284415=284416=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 // 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=284415=284416=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