diff --git a/include/llvm/MC/MCAsmInfo.h b/include/llvm/MC/MCAsmInfo.h index bb48188657a..7740fef6122 100644 --- a/include/llvm/MC/MCAsmInfo.h +++ b/include/llvm/MC/MCAsmInfo.h @@ -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; } diff --git a/lib/MC/MCAsmInfo.cpp b/lib/MC/MCAsmInfo.cpp index 7574edbcbe8..2fb558f1f3e 100644 --- a/lib/MC/MCAsmInfo.cpp +++ b/lib/MC/MCAsmInfo.cpp @@ -32,7 +32,6 @@ MCAsmInfo::MCAsmInfo() { HasMachoZeroFillDirective = false; HasMachoTBSSDirective = false; HasStaticCtorDtorReferenceInStaticMode = false; - LinkerRequiresNonEmptyDwarfLines = false; MaxInstLength = 4; MinInstAlignment = 1; DollarIsPC = false; diff --git a/lib/MC/MCAsmInfoDarwin.cpp b/lib/MC/MCAsmInfoDarwin.cpp index 96fe216d0d6..66a138b90c6 100644 --- a/lib/MC/MCAsmInfoDarwin.cpp +++ b/lib/MC/MCAsmInfoDarwin.cpp @@ -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; diff --git a/lib/MC/MCDwarf.cpp b/lib/MC/MCDwarf.cpp index 9993588cfab..220747d88df 100644 --- a/lib/MC/MCDwarf.cpp +++ b/lib/MC/MCDwarf.cpp @@ -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); diff --git a/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp b/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp index fa268e6cb32..93b9e90bd53 100644 --- a/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp +++ b/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp @@ -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 index 67668945ebc..00000000000 --- a/test/MC/MachO/empty-dwarf-lines.s +++ /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: } diff --git a/test/MC/MachO/file.s b/test/MC/MachO/file.s index 9c0ec94f130..a7d6c20b885 100644 --- a/test/MC/MachO/file.s +++ b/test/MC/MachO/file.s @@ -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: }