diff --git a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp --- a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp +++ b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp @@ -1803,8 +1803,6 @@ LinkageAttr = MCSA_Weak; break; case GlobalValue::AvailableExternallyLinkage: - LinkageAttr = MCSA_Extern; - break; case GlobalValue::PrivateLinkage: return; case GlobalValue::InternalLinkage: @@ -2149,6 +2147,10 @@ } void PPCAIXAsmPrinter::emitGlobalVariable(const GlobalVariable *GV) { + // Should not emit 'available externally' functions at all + if (GV->hasAvailableExternallyLinkage()) + return; + // Special LLVM global arrays have been handled at the initialization. if (isSpecialLLVMGlobalArrayToSkip(GV) || isSpecialLLVMGlobalArrayForStaticInit(GV)) return;