gcc often inserts it's own names for sections (e.g.
gnu.linkonce.t.FunctionName). Convert them to "normal" LLVM names,
otherwise linker won't be able to merge them.

llvm-svn: 32958
diff --git a/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp b/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
index e344892..d71bc78 100755
--- a/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
+++ b/llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
@@ -80,8 +80,13 @@
 
   X86SharedAsmPrinter::decorateName(CurrentFnName, F);
 
-  SwitchToTextSection(getSectionForFunction(*F).c_str(), F);
-  
+  // Change GNU linkonce to LLVM linkonce name
+  if (F->hasSection() &&
+      (F->getSection().find(".gnu.linkonce.t") != std::string::npos))
+    SwitchToTextSection(getSectionForFunction(*F).c_str(), NULL);
+  else
+    SwitchToTextSection(getSectionForFunction(*F).c_str(), F);
+    
   switch (F->getLinkage()) {
   default: assert(0 && "Unknown linkage type!");
   case Function::InternalLinkage:  // Symbols default to internal.