OSDN Git Service

Drop support for an old version of ld64 (from darwin 9).
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 21 Oct 2014 18:31:09 +0000 (18:31 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 21 Oct 2014 18:31:09 +0000 (18:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220310 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/MC/MCAsmInfo.h
lib/MC/MCAsmInfo.cpp
lib/MC/MCAsmInfoDarwin.cpp
lib/MC/MCDwarf.cpp
lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp
test/MC/MachO/empty-dwarf-lines.s [deleted file]
test/MC/MachO/file.s

index bb48188..7740fef 100644 (file)
@@ -92,11 +92,6 @@ protected:
   /// is false.
   bool HasStaticCtorDtorReferenceInStaticMode;
 
-  /// True if the linker has a bug and requires that the debug_line section be
-  /// of a minimum size. In practice such a linker requires a non-empty line
-  /// sequence if a file is present.  Default to false.
-  bool LinkerRequiresNonEmptyDwarfLines;
-
   /// This is the maximum possible length of an instruction, which is needed to
   /// compute the size of an inline asm.  Defaults to 4.
   unsigned MaxInstLength;
@@ -405,9 +400,6 @@ public:
   bool hasStaticCtorDtorReferenceInStaticMode() const {
     return HasStaticCtorDtorReferenceInStaticMode;
   }
-  bool getLinkerRequiresNonEmptyDwarfLines() const {
-    return LinkerRequiresNonEmptyDwarfLines;
-  }
   unsigned getMaxInstLength() const { return MaxInstLength; }
   unsigned getMinInstAlignment() const { return MinInstAlignment; }
   bool getDollarIsPC() const { return DollarIsPC; }
index 7574edb..2fb558f 100644 (file)
@@ -32,7 +32,6 @@ MCAsmInfo::MCAsmInfo() {
   HasMachoZeroFillDirective = false;
   HasMachoTBSSDirective = false;
   HasStaticCtorDtorReferenceInStaticMode = false;
-  LinkerRequiresNonEmptyDwarfLines = false;
   MaxInstLength = 4;
   MinInstAlignment = 1;
   DollarIsPC = false;
index 96fe216..66a138b 100644 (file)
@@ -42,9 +42,6 @@ MCAsmInfoDarwin::MCAsmInfoDarwin() {
   HasMachoTBSSDirective = true; // Uses .tbss
   HasStaticCtorDtorReferenceInStaticMode = true;
 
-  // FIXME: Darwin 10 and newer don't need this.
-  LinkerRequiresNonEmptyDwarfLines = true;
-
   // FIXME: Change this once MC is the system assembler.
   HasAggressiveSymbolFolding = false;
 
index 9993588..220747d 100644 (file)
@@ -344,18 +344,6 @@ void MCDwarfLineTable::EmitCU(MCObjectStreamer *MCOS) const {
   for (const auto &LineSec : MCLineSections.getMCLineEntries())
     EmitDwarfLineTable(MCOS, LineSec.first, LineSec.second);
 
-  if (MCOS->getContext().getAsmInfo()->getLinkerRequiresNonEmptyDwarfLines() &&
-      MCLineSections.getMCLineEntries().empty()) {
-    // The darwin9 linker has a bug (see PR8715). For for 32-bit architectures
-    // it requires:
-    // total_length >= prologue_length + 10
-    // We are 4 bytes short, since we have total_length = 51 and
-    // prologue_length = 45
-
-    // The regular end_sequence should be sufficient.
-    MCDwarfLineAddr::Emit(MCOS, INT64_MAX, 0);
-  }
-
   // This is the end of the section, so set the value of the symbol at the end
   // of this section (that was used in a previous expression).
   MCOS->EmitLabel(LineEndSym);
index fa268e6..93b9e90 100644 (file)
@@ -15,7 +15,6 @@ AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(StringRef &TT) : MCAsmInfoELF() {
   HasSingleParameterDotFile = false;
   //===------------------------------------------------------------------===//
   HasSubsectionsViaSymbols = true;
-  LinkerRequiresNonEmptyDwarfLines = true;
   MaxInstLength = 16;
   SeparatorString = "\n";
   CommentString = ";";
diff --git a/test/MC/MachO/empty-dwarf-lines.s b/test/MC/MachO/empty-dwarf-lines.s
deleted file mode 100644 (file)
index 6766894..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -s | FileCheck %s
-
-// This tests that when producing files for darwin9 or older we make sure
-// that debug_line sections are of a minimum size to avoid the linker bug
-// described in PR8715.
-
-        .section        __DATA,__data
-        .file   1 "test.c"
-        .globl  _c                      ## @c
-_c:
-        .asciz   "hi\n"
-
-// CHECK:       Section {
-// CHECK:         Index: 2
-// CHECK-NEXT:    Name: __debug_line
-// CHECK-NEXT:    Segment: __DWARF
-// CHECK-NEXT:    Address: 0x4
-// CHECK-NEXT:    Size: 0x2C
-// CHECK-NEXT:    Offset: 452
-// CHECK-NEXT:    Alignment: 0
-// CHECK-NEXT:    RelocationOffset: 0x0
-// CHECK-NEXT:    RelocationCount: 0
-// CHECK-NEXT:    Type: 0x0
-// CHECK-NEXT:    Attributes [ (0x20000)
-// CHECK-NEXT:      Debug (0x20000)
-// CHECK-NEXT:    ]
-// CHECK-NEXT:    Reserved1: 0x0
-// CHECK-NEXT:    Reserved2: 0x0
-// CHECK-NEXT:  }
index 9c0ec94..a7d6c20 100644 (file)
@@ -8,7 +8,7 @@
 // CHECK-NEXT:    Name: __debug_line
 // CHECK-NEXT:    Segment: __DWARF
 // CHECK-NEXT:    Address: 0x1
-// CHECK-NEXT:    Size: 0x2D
+// CHECK-NEXT:    Size: 0x28
 // CHECK-NEXT:    Offset: 221
 // CHECK-NEXT:    Alignment: 0
 // CHECK-NEXT:    RelocationOffset: 0x0
@@ -20,8 +20,8 @@
 // CHECK-NEXT:    Reserved1: 0x0
 // CHECK-NEXT:    Reserved2: 0x0
 // CHECK-NEXT:    SectionData (
-// CHECK-NEXT:      0000: 29000000 02001E00 00000101 FB0E0D00
+// CHECK-NEXT:      0000: 24000000 02001E00 00000101 FB0E0D00
 // CHECK-NEXT:      0010: 01010101 00000001 00000164 69720000
-// CHECK-NEXT:      0020: 666F6F00 01000000 02000001 01
+// CHECK-NEXT:      0020: 666F6F00 01000000
 // CHECK-NEXT:    )
 // CHECK-NEXT:  }