--- src/ld/OutputFile.cpp
+++ src/ld/OutputFile.cpp
@@ -2983,7 +2983,8 @@ void OutputFile::addClassicRelocs(ld::Internal& state, ld::Internal::FinalSectio
 					// reference to global weak def needs weak binding in dynamic images
 					if ( (target->combine() == ld::Atom::combineByName) 
 						&& (target->definition() == ld::Atom::definitionRegular)
-						&& (_options.outputKind() != Options::kStaticExecutable) ) {
+						&& (_options.outputKind() != Options::kStaticExecutable)
+						&& (_options.outputKind() != Options::kPreload) ) {
 						needsExternReloc = true;
 					}
 					else if ( _options.outputKind() == Options::kDynamicExecutable ) {
