File tree Expand file tree Collapse file tree 1 file changed +11
-3
lines changed
llvm/lib/ExecutionEngine/Orc Expand file tree Collapse file tree 1 file changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -948,10 +948,18 @@ Expected<ExecutorAddr> LLJIT::lookupLinkerMangled(JITDylib &JD,
948948
949949Expected<std::unique_ptr<ObjectLayer>>
950950LLJIT::createObjectLinkingLayer (LLJITBuilderState &S, ExecutionSession &ES) {
951-
952951 // If the config state provided an ObjectLinkingLayer factory then use it.
953- if (S.CreateObjectLinkingLayer )
954- return S.CreateObjectLinkingLayer (ES, S.JTMB ->getTargetTriple ());
952+ if (S.CreateObjectLinkingLayer ) {
953+ auto Layer = S.CreateObjectLinkingLayer (ES, S.JTMB ->getTargetTriple ());
954+ if (Layer && S.JTMB ->getTargetTriple ().isOSBinFormatCOFF ()) {
955+ auto RTDyldLayer = dyn_cast_or_null<RTDyldObjectLinkingLayer>(Layer.get ());
956+ if (RTDyldLayer) {
957+ RTDyldLayer->setOverrideObjectFlagsWithResponsibilityFlags (true );
958+ RTDyldLayer->setAutoClaimResponsibilityForObjectSymbols (true );
959+ }
960+ }
961+ return Layer;
962+ }
955963
956964 // Otherwise default to creating an RTDyldObjectLinkingLayer that constructs
957965 // a new SectionMemoryManager for each object.
You can’t perform that action at this time.
0 commit comments