[PATCH] D50294: [Driver] Use -gdwarf-3 by default for FreeBSD

Fangrui Song via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Aug 4 01:13:16 PDT 2018


MaskRay created this revision.
MaskRay added reviewers: brad, emaste, khng300.
Herald added subscribers: cfe-commits, JDevlieghere, aprantl.

The imported binutils in base supports DWARF 3.


Repository:
  rC Clang

https://reviews.llvm.org/D50294

Files:
  lib/Driver/ToolChains/FreeBSD.h
  test/CodeGen/dwarf-version.c
  test/Driver/clang-g-opts.c
  test/Driver/debug-options.c


Index: test/Driver/debug-options.c
===================================================================
--- test/Driver/debug-options.c
+++ test/Driver/debug-options.c
@@ -105,15 +105,15 @@
 // RUN: %clang -### -c -gline-tables-only %s -target i686-pc-openbsd 2>&1 \
 // RUN:             | FileCheck -check-prefix=GLTO_ONLY_DWARF2 %s
 // RUN: %clang -### -c -gline-tables-only %s -target x86_64-pc-freebsd10.0 2>&1 \
-// RUN:             | FileCheck -check-prefix=GLTO_ONLY_DWARF2 %s
+// RUN:             | FileCheck -check-prefix=GLTO_ONLY_DWARF3 %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-darwin16 2>&1 \
 // RUN:             | FileCheck -check-prefix=G_STANDALONE -check-prefix=G_DWARF4 %s
 // RUN: %clang -### -c -gline-tables-only -g %s -target i686-pc-openbsd 2>&1 \
 // RUN:             | FileCheck -check-prefix=G_ONLY_DWARF2 %s
 // RUN: %clang -### -c -gline-tables-only -g %s -target x86_64-pc-freebsd10.0 2>&1 \
-// RUN:             | FileCheck -check-prefix=G_ONLY_DWARF2 %s
+// RUN:             | FileCheck -check-prefix=G_ONLY_DWARF3 %s
 // RUN: %clang -### -c -gline-tables-only -g %s -target i386-pc-solaris 2>&1 \
 // RUN:             | FileCheck -check-prefix=G_ONLY_DWARF2 %s
 // RUN: %clang -### -c -gline-tables-only -g0 %s 2>&1 \
@@ -195,6 +195,10 @@
 // GLTO_ONLY_DWARF2: "-debug-info-kind=line-tables-only"
 // GLTO_ONLY_DWARF2: "-dwarf-version=2"
 //
+// GLTO_ONLY_DWARF3: "-cc1"
+// GLTO_ONLY_DWARF3: "-debug-info-kind=line-tables-only"
+// GLTO_ONLY_DWARF3: "-dwarf-version=3"
+//
 // G_ONLY: "-cc1"
 // G_ONLY: "-debug-info-kind=limited"
 //
@@ -204,6 +208,10 @@
 // G_ONLY_DWARF2: "-debug-info-kind={{standalone|limited}}"
 // G_ONLY_DWARF2: "-dwarf-version=2"
 //
+// G_ONLY_DWARF3: "-cc1"
+// G_ONLY_DWARF3: "-debug-info-kind={{standalone|limited}}"
+// G_ONLY_DWARF3: "-dwarf-version=3"
+//
 // G_STANDALONE: "-cc1"
 // G_STANDALONE: "-debug-info-kind=standalone"
 // G_DWARF4: "-dwarf-version=4"
Index: test/Driver/clang-g-opts.c
===================================================================
--- test/Driver/clang-g-opts.c
+++ test/Driver/clang-g-opts.c
@@ -8,7 +8,7 @@
 // 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 \
-// RUN:             | FileCheck --check-prefix=CHECK-WITH-G-DWARF2 %s
+// RUN:             | FileCheck --check-prefix=CHECK-WITH-G-DWARF3 %s
 
 // 'g0' is the default. Just sanity-test that it does nothing
 // RUN: %clang -### -S %s -g0    2>&1 | FileCheck --check-prefix=CHECK-WITHOUT-G %s
@@ -26,14 +26,15 @@
 // RUN: %clang -### -S %s -g0 -g -target i686-pc-openbsd 2>&1 \
 // RUN:             | FileCheck --check-prefix=CHECK-WITH-G-DWARF2 %s
 // RUN: %clang -### -S %s -g0 -g -target x86_64-pc-freebsd10.0 2>&1 \
-// RUN:             | FileCheck --check-prefix=CHECK-WITH-G-DWARF2 %s
+// RUN:             | FileCheck --check-prefix=CHECK-WITH-G-DWARF3 %s
 // RUN: %clang -### -S %s -g0 -g -target i386-pc-solaris 2>&1 \
 // RUN:             | FileCheck --check-prefix=CHECK-WITH-G-DWARF2 %s
 
 // CHECK-WITHOUT-G-NOT: -debug-info-kind
 // CHECK-WITH-G: "-debug-info-kind=limited"
 // CHECK-WITH-G: "-dwarf-version=4"
 // CHECK-WITH-G-DWARF2: "-dwarf-version=2"
+// CHECK-WITH-G-DWARF3: "-dwarf-version=3"
 
 // CHECK-WITH-G-STANDALONE: "-debug-info-kind=standalone"
 // CHECK-WITH-G-STANDALONE: "-dwarf-version=2"
Index: test/CodeGen/dwarf-version.c
===================================================================
--- test/CodeGen/dwarf-version.c
+++ test/CodeGen/dwarf-version.c
@@ -12,7 +12,7 @@
 // RUN: %clang -target x86_64-apple-darwin14 -g -S -emit-llvm -o - %s -isysroot %t | FileCheck %s --check-prefix=VER2
 
 // RUN: %clang -target powerpc-unknown-openbsd -g -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER2
-// RUN: %clang -target powerpc-unknown-freebsd -g -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER2
+// RUN: %clang -target powerpc-unknown-freebsd -g -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER3
 // RUN: %clang -target i386-pc-solaris -g -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER2
 //
 // Test what -gcodeview and -gdwarf do on Windows.
Index: lib/Driver/ToolChains/FreeBSD.h
===================================================================
--- lib/Driver/ToolChains/FreeBSD.h
+++ lib/Driver/ToolChains/FreeBSD.h
@@ -70,7 +70,7 @@
       const llvm::opt::ArgList &Args) const override;
   bool isPIEDefault() const override;
   SanitizerMask getSupportedSanitizers() const override;
-  unsigned GetDefaultDwarfVersion() const override { return 2; }
+  unsigned GetDefaultDwarfVersion() const override { return 3; }
   // Until dtrace (via CTF) and LLDB can deal with distributed debug info,
   // FreeBSD defaults to standalone/full debug info.
   bool GetDefaultStandaloneDebug() const override { return true; }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D50294.159169.patch
Type: text/x-patch
Size: 5063 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180804/eb23410f/attachment.bin>


More information about the cfe-commits mailing list