From 20db4731726eded30dd7bcd6702a7e7498bf7b29 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Fri, 6 Nov 2015 13:35:35 +0000 Subject: [PATCH] Use SHT_X86_64_UNWIND on every OS. That is the ABI required type. Linkers still check the section name, so everything should still work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252300 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/MC/MCObjectFileInfo.cpp | 12 +++++------- test/MC/ELF/cfi-adjust-cfa-offset.s | 2 +- test/MC/ELF/cfi-advance-loc2.s | 2 +- test/MC/ELF/cfi-def-cfa-offset.s | 2 +- test/MC/ELF/cfi-def-cfa-register.s | 2 +- test/MC/ELF/cfi-def-cfa.s | 2 +- test/MC/ELF/cfi-escape.s | 2 +- test/MC/ELF/cfi-large-model.s | 2 +- test/MC/ELF/cfi-offset.s | 2 +- test/MC/ELF/cfi-register.s | 2 +- test/MC/ELF/cfi-rel-offset.s | 2 +- test/MC/ELF/cfi-rel-offset2.s | 2 +- test/MC/ELF/cfi-remember.s | 2 +- test/MC/ELF/cfi-restore.s | 2 +- test/MC/ELF/cfi-same-value.s | 2 +- test/MC/ELF/cfi-signal-frame.s | 2 +- test/MC/ELF/cfi-undefined.s | 2 +- test/MC/ELF/cfi-window-save.s | 2 +- test/MC/ELF/cfi-zero-addr-delta.s | 2 +- test/MC/ELF/cfi.s | 2 +- 20 files changed, 24 insertions(+), 26 deletions(-) diff --git a/lib/MC/MCObjectFileInfo.cpp b/lib/MC/MCObjectFileInfo.cpp index 4c51c8363f3..8849f5d4d12 100644 --- a/lib/MC/MCObjectFileInfo.cpp +++ b/lib/MC/MCObjectFileInfo.cpp @@ -416,16 +416,14 @@ void MCObjectFileInfo::initELFMCObjectFileInfo(Triple T) { break; } + EHSectionType = T.getArch() == Triple::x86_64 ? ELF::SHT_X86_64_UNWIND + : ELF::SHT_PROGBITS; + // Solaris requires different flags for .eh_frame to seemingly every other // platform. - EHSectionType = ELF::SHT_PROGBITS; EHSectionFlags = ELF::SHF_ALLOC; - if (T.isOSSolaris()) { - if (T.getArch() == Triple::x86_64) - EHSectionType = ELF::SHT_X86_64_UNWIND; - else - EHSectionFlags |= ELF::SHF_WRITE; - } + if (T.isOSSolaris() && T.getArch() != Triple::x86_64) + EHSectionFlags |= ELF::SHF_WRITE; // ELF BSSSection = Ctx->getELFSection(".bss", ELF::SHT_NOBITS, diff --git a/test/MC/ELF/cfi-adjust-cfa-offset.s b/test/MC/ELF/cfi-adjust-cfa-offset.s index 398ad54fe75..7177ccb3650 100644 --- a/test/MC/ELF/cfi-adjust-cfa-offset.s +++ b/test/MC/ELF/cfi-adjust-cfa-offset.s @@ -24,7 +24,7 @@ f: // CHECK: Section { // CHECK: Index: // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-advance-loc2.s b/test/MC/ELF/cfi-advance-loc2.s index 13397920127..6a60e52acba 100644 --- a/test/MC/ELF/cfi-advance-loc2.s +++ b/test/MC/ELF/cfi-advance-loc2.s @@ -12,7 +12,7 @@ f: // CHECK: Section { // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-def-cfa-offset.s b/test/MC/ELF/cfi-def-cfa-offset.s index 3e4ca57a516..c4cc6d53e02 100644 --- a/test/MC/ELF/cfi-def-cfa-offset.s +++ b/test/MC/ELF/cfi-def-cfa-offset.s @@ -13,7 +13,7 @@ f: // CHECK: Section { // CHECK: Index: // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-def-cfa-register.s b/test/MC/ELF/cfi-def-cfa-register.s index 53174cb2f55..708f6b1496e 100644 --- a/test/MC/ELF/cfi-def-cfa-register.s +++ b/test/MC/ELF/cfi-def-cfa-register.s @@ -9,7 +9,7 @@ f: // CHECK: Section { // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-def-cfa.s b/test/MC/ELF/cfi-def-cfa.s index 9706c4da097..25931b77ec6 100644 --- a/test/MC/ELF/cfi-def-cfa.s +++ b/test/MC/ELF/cfi-def-cfa.s @@ -9,7 +9,7 @@ f: // CHECK: Section { // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-escape.s b/test/MC/ELF/cfi-escape.s index e93d5f7be5f..fb019be1252 100644 --- a/test/MC/ELF/cfi-escape.s +++ b/test/MC/ELF/cfi-escape.s @@ -10,7 +10,7 @@ f: // CHECK: Section { // CHECK: Index: // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-large-model.s b/test/MC/ELF/cfi-large-model.s index f4a20c26267..2fb63d18371 100644 --- a/test/MC/ELF/cfi-large-model.s +++ b/test/MC/ELF/cfi-large-model.s @@ -4,7 +4,7 @@ // CHECK: Section { // CHECK: Index: // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-offset.s b/test/MC/ELF/cfi-offset.s index 9038def03a6..ea9d0f49915 100644 --- a/test/MC/ELF/cfi-offset.s +++ b/test/MC/ELF/cfi-offset.s @@ -9,7 +9,7 @@ f: // CHECK: Section { // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-register.s b/test/MC/ELF/cfi-register.s index be60e2ea2e8..f7c021d06b8 100644 --- a/test/MC/ELF/cfi-register.s +++ b/test/MC/ELF/cfi-register.s @@ -10,7 +10,7 @@ f: // CHECK: Section { // CHECK: Index: // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-rel-offset.s b/test/MC/ELF/cfi-rel-offset.s index 892cda165ba..89ca4ff148a 100644 --- a/test/MC/ELF/cfi-rel-offset.s +++ b/test/MC/ELF/cfi-rel-offset.s @@ -17,7 +17,7 @@ f: // CHECK: Section { // CHECK: Index: // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-rel-offset2.s b/test/MC/ELF/cfi-rel-offset2.s index 805b0b290bc..e4d6b58c748 100644 --- a/test/MC/ELF/cfi-rel-offset2.s +++ b/test/MC/ELF/cfi-rel-offset2.s @@ -9,7 +9,7 @@ f: // CHECK: Section { // CHECK: Index: // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-remember.s b/test/MC/ELF/cfi-remember.s index ae112f59ebe..c438ad3d0f3 100644 --- a/test/MC/ELF/cfi-remember.s +++ b/test/MC/ELF/cfi-remember.s @@ -12,7 +12,7 @@ f: // CHECK: Section { // CHECK: Index: // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-restore.s b/test/MC/ELF/cfi-restore.s index 2bc87cf691a..eb968fecbc4 100644 --- a/test/MC/ELF/cfi-restore.s +++ b/test/MC/ELF/cfi-restore.s @@ -10,7 +10,7 @@ f: // CHECK: Section { // CHECK: Index: // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-same-value.s b/test/MC/ELF/cfi-same-value.s index 7df4cbbb6dd..7d744ab5963 100644 --- a/test/MC/ELF/cfi-same-value.s +++ b/test/MC/ELF/cfi-same-value.s @@ -10,7 +10,7 @@ f: // CHECK: Section { // CHECK: Index: // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-signal-frame.s b/test/MC/ELF/cfi-signal-frame.s index 02331196218..334cdb497b9 100644 --- a/test/MC/ELF/cfi-signal-frame.s +++ b/test/MC/ELF/cfi-signal-frame.s @@ -11,7 +11,7 @@ g: // CHECK: Section { // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-undefined.s b/test/MC/ELF/cfi-undefined.s index 9a7012310ad..50c482df79e 100644 --- a/test/MC/ELF/cfi-undefined.s +++ b/test/MC/ELF/cfi-undefined.s @@ -10,7 +10,7 @@ f: // CHECK: Section { // CHECK: Index: // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-window-save.s b/test/MC/ELF/cfi-window-save.s index fb38ecd8560..01d7ef43378 100644 --- a/test/MC/ELF/cfi-window-save.s +++ b/test/MC/ELF/cfi-window-save.s @@ -12,7 +12,7 @@ f: // CHECK: Section { // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi-zero-addr-delta.s b/test/MC/ELF/cfi-zero-addr-delta.s index 1e5c5e7e568..495d52c234d 100644 --- a/test/MC/ELF/cfi-zero-addr-delta.s +++ b/test/MC/ELF/cfi-zero-addr-delta.s @@ -16,7 +16,7 @@ f: // CHECK: Section { // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] diff --git a/test/MC/ELF/cfi.s b/test/MC/ELF/cfi.s index 10587e03052..1e9a39d2bcf 100644 --- a/test/MC/ELF/cfi.s +++ b/test/MC/ELF/cfi.s @@ -220,7 +220,7 @@ f37: // CHECK: Section { // CHECK: Index: // CHECK: Name: .eh_frame -// CHECK-NEXT: Type: SHT_PROGBITS +// CHECK-NEXT: Type: SHT_X86_64_UNWIND // CHECK-NEXT: Flags [ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: ] -- 2.34.1