Use SHT_X86_64_UNWIND on every OS.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 6 Nov 2015 13:35:35 +0000 (13:35 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 6 Nov 2015 13:35:35 +0000 (13:35 +0000)
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

20 files changed:
lib/MC/MCObjectFileInfo.cpp
test/MC/ELF/cfi-adjust-cfa-offset.s
test/MC/ELF/cfi-advance-loc2.s
test/MC/ELF/cfi-def-cfa-offset.s
test/MC/ELF/cfi-def-cfa-register.s
test/MC/ELF/cfi-def-cfa.s
test/MC/ELF/cfi-escape.s
test/MC/ELF/cfi-large-model.s
test/MC/ELF/cfi-offset.s
test/MC/ELF/cfi-register.s
test/MC/ELF/cfi-rel-offset.s
test/MC/ELF/cfi-rel-offset2.s
test/MC/ELF/cfi-remember.s
test/MC/ELF/cfi-restore.s
test/MC/ELF/cfi-same-value.s
test/MC/ELF/cfi-signal-frame.s
test/MC/ELF/cfi-undefined.s
test/MC/ELF/cfi-window-save.s
test/MC/ELF/cfi-zero-addr-delta.s
test/MC/ELF/cfi.s

index 4c51c83..8849f5d 100644 (file)
@@ -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,
index 398ad54..7177ccb 100644 (file)
@@ -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:     ]
index 1339792..6a60e52 100644 (file)
@@ -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:     ]
index 3e4ca57..c4cc6d5 100644 (file)
@@ -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:     ]
index 53174cb..708f6b1 100644 (file)
@@ -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:     ]
index 9706c4d..25931b7 100644 (file)
@@ -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:     ]
index e93d5f7..fb019be 100644 (file)
@@ -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:     ]
index f4a20c2..2fb63d1 100644 (file)
@@ -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:   ]
index 9038def..ea9d0f4 100644 (file)
@@ -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:     ]
index be60e2e..f7c021d 100644 (file)
@@ -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:     ]
index 892cda1..89ca4ff 100644 (file)
@@ -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:     ]
index 805b0b2..e4d6b58 100644 (file)
@@ -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:     ]
index ae112f5..c438ad3 100644 (file)
@@ -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:     ]
index 2bc87cf..eb968fe 100644 (file)
@@ -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:     ]
index 7df4cbb..7d744ab 100644 (file)
@@ -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:     ]
index 0233119..334cdb4 100644 (file)
@@ -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:     ]
index 9a70123..50c482d 100644 (file)
@@ -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:     ]
index fb38ecd..01d7ef4 100644 (file)
@@ -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:     ]
index 1e5c5e7..495d52c 100644 (file)
@@ -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:     ]
index 10587e0..1e9a39d 100644 (file)
@@ -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:     ]