summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-10-21 18:31:09 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-10-21 18:31:09 +0000
commitf03ae4efa7793cd912468960e837a3064198a5db (patch)
tree17e7f7c8bccde2065060f7a1faf73d434b174fa6
parentd5aa255146a26514c1b02e5b5bcf1739ee5f4ad0 (diff)
downloadbcm5719-llvm-f03ae4efa7793cd912468960e837a3064198a5db.tar.gz
bcm5719-llvm-f03ae4efa7793cd912468960e837a3064198a5db.zip
Drop support for an old version of ld64 (from darwin 9).
llvm-svn: 220310
-rw-r--r--llvm/include/llvm/MC/MCAsmInfo.h8
-rw-r--r--llvm/lib/MC/MCAsmInfo.cpp1
-rw-r--r--llvm/lib/MC/MCAsmInfoDarwin.cpp3
-rw-r--r--llvm/lib/MC/MCDwarf.cpp12
-rw-r--r--llvm/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp1
-rw-r--r--llvm/test/MC/MachO/empty-dwarf-lines.s29
-rw-r--r--llvm/test/MC/MachO/file.s6
7 files changed, 3 insertions, 57 deletions
diff --git a/llvm/include/llvm/MC/MCAsmInfo.h b/llvm/include/llvm/MC/MCAsmInfo.h
index bb48188657a..7740fef6122 100644
--- a/llvm/include/llvm/MC/MCAsmInfo.h
+++ b/llvm/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/llvm/lib/MC/MCAsmInfo.cpp b/llvm/lib/MC/MCAsmInfo.cpp
index 7574edbcbe8..2fb558f1f3e 100644
--- a/llvm/lib/MC/MCAsmInfo.cpp
+++ b/llvm/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/llvm/lib/MC/MCAsmInfoDarwin.cpp b/llvm/lib/MC/MCAsmInfoDarwin.cpp
index 96fe216d0d6..66a138b90c6 100644
--- a/llvm/lib/MC/MCAsmInfoDarwin.cpp
+++ b/llvm/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/llvm/lib/MC/MCDwarf.cpp b/llvm/lib/MC/MCDwarf.cpp
index 9993588cfab..220747d88df 100644
--- a/llvm/lib/MC/MCDwarf.cpp
+++ b/llvm/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/llvm/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp b/llvm/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp
index fa268e6cb32..93b9e90bd53 100644
--- a/llvm/lib/Target/R600/MCTargetDesc/AMDGPUMCAsmInfo.cpp
+++ b/llvm/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/llvm/test/MC/MachO/empty-dwarf-lines.s b/llvm/test/MC/MachO/empty-dwarf-lines.s
deleted file mode 100644
index 67668945ebc..00000000000
--- a/llvm/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/llvm/test/MC/MachO/file.s b/llvm/test/MC/MachO/file.s
index 9c0ec94f130..a7d6c20b885 100644
--- a/llvm/test/MC/MachO/file.s
+++ b/llvm/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: }
OpenPOWER on IntegriCloud