From: Anton Korobeynikov Date: Sat, 6 Jan 2007 18:24:26 +0000 (+0000) Subject: gcc often inserts it's own names for sections (e.g. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=cea9d1d634fd5a952ee51a5e0dc1d5a094d9b6da;p=oota-llvm.git 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32958 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86ATTAsmPrinter.cpp b/lib/Target/X86/X86ATTAsmPrinter.cpp index e3448928416..d71bc784df5 100755 --- a/lib/Target/X86/X86ATTAsmPrinter.cpp +++ b/lib/Target/X86/X86ATTAsmPrinter.cpp @@ -80,8 +80,13 @@ bool X86ATTAsmPrinter::runOnMachineFunction(MachineFunction &MF) { 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.