Put each personality function in a section. This fixes the gnu ld warning:

  error in foo.o; no .eh_frame_hdr table will be created.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129635 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp b/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
index 8e4cf46..6deac9e 100644
--- a/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
+++ b/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
@@ -58,19 +58,14 @@
   const TargetLoweringObjectFile &TLOF = Asm->getObjFileLowering();
   unsigned PerEncoding = TLOF.getPersonalityEncoding();
 
-  // Begin eh frame section.
-  Asm->OutStreamer.SwitchSection(TLOF.getEHFrameSection());
-
   if ((PerEncoding & 0x70) != dwarf::DW_EH_PE_pcrel)
     return;
 
   // Emit references to all used personality functions
   const std::vector<const Function*> &Personalities = MMI->getPersonalities();
   for (size_t i = 0, e = Personalities.size(); i != e; ++i) {
-    Asm->OutStreamer.EmitLabel(Asm->GetTempSymbol("personality", i));
     const MCSymbol *Sym = Asm->Mang->getSymbol(Personalities[i]);
-    unsigned Size = Asm->TM.getTargetData()->getPointerSize();
-    Asm->OutStreamer.EmitSymbolValue(Sym, Size);
+    TLOF.emitPersonalityValue(Asm->OutStreamer, Asm->TM, Sym);
   }
 }
 
@@ -123,8 +118,8 @@
     break;
   }
   case dwarf::DW_EH_PE_pcrel: {
-    Sym = Asm->GetTempSymbol("personality",
-                             MMI->getPersonalityIndex());
+    MCContext &Context = Asm->OutStreamer.getContext();
+    Sym = TLOF.getPersonalityPICSymbol(Per->getName());
     break;
   }
   }