File tree Expand file tree Collapse file tree 1 file changed +12
-2
lines changed
llvm/lib/ExecutionEngine/Orc Expand file tree Collapse file tree 1 file changed +12
-2
lines changed Original file line number Diff line number Diff line change @@ -950,8 +950,18 @@ Expected<std::unique_ptr<ObjectLayer>>
950950LLJIT::createObjectLinkingLayer (LLJITBuilderState &S, ExecutionSession &ES) {
951951
952952 // If the config state provided an ObjectLinkingLayer factory then use it.
953- if (S.CreateObjectLinkingLayer )
954- return S.CreateObjectLinkingLayer (ES, S.JTMB ->getTargetTriple ());
953+ if (S.CreateObjectLinkingLayer ) {
954+ auto Layer = S.CreateObjectLinkingLayer (ES, S.JTMB ->getTargetTriple ());
955+ if (Layer && S.JTMB ->getTargetTriple ().isOSBinFormatCOFF ()) {
956+ auto *RTDyldLayer =
957+ dyn_cast_or_null<RTDyldObjectLinkingLayer>(Layer.get ().get ());
958+ if (RTDyldLayer) {
959+ RTDyldLayer->setOverrideObjectFlagsWithResponsibilityFlags (true );
960+ RTDyldLayer->setAutoClaimResponsibilityForObjectSymbols (true );
961+ }
962+ }
963+ return Layer;
964+ }
955965
956966 // Otherwise default to creating an RTDyldObjectLinkingLayer that constructs
957967 // a new SectionMemoryManager for each object.
You can’t perform that action at this time.
0 commit comments