diff --git a/llvm/lib/Target/TargetMachine.cpp b/llvm/lib/Target/TargetMachine.cpp --- a/llvm/lib/Target/TargetMachine.cpp +++ b/llvm/lib/Target/TargetMachine.cpp @@ -149,6 +149,11 @@ return GV->isStrongDefinitionForLinker(); } + if (TT.isOSBinFormatELF()) { + if (RM == Reloc::Static) + return true; + } + // Due to the AIX linkage model, any global with default visibility is // considered non-local. if (TT.isOSBinFormatXCOFF())