Skip to content

Commit c49837f

Browse files
committed
Revert "[ORC][JITLink] Treat common symbols as weak definitions."
This reverts commit 785d376 while I investigate some bot failures (e.g. https://lab.llvm.org/buildbot/#/builders/3/builds/1983).
1 parent 690dc4e commit c49837f

File tree

8 files changed

+11
-77
lines changed

8 files changed

+11
-77
lines changed

llvm/lib/ExecutionEngine/JITLink/COFFLinkGraphBuilder.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ Expected<Symbol *> COFFLinkGraphBuilder::createDefinedSymbol(
467467
return &G->addDefinedSymbol(
468468
G->createZeroFillBlock(getCommonSection(), Symbol.getValue(),
469469
orc::ExecutorAddr(), Symbol.getValue(), 0),
470-
0, SymbolName, Symbol.getValue(), Linkage::Weak, Scope::Default,
470+
0, SymbolName, Symbol.getValue(), Linkage::Strong, Scope::Default,
471471
false, false);
472472
}
473473
if (Symbol.isAbsolute())

llvm/lib/ExecutionEngine/JITLink/ELFLinkGraphBuilder.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ template <typename ELFT> Error ELFLinkGraphBuilder<ELFT>::graphifySymbols() {
472472
Symbol &GSym = G->addDefinedSymbol(
473473
G->createZeroFillBlock(getCommonSection(), Sym.st_size,
474474
orc::ExecutorAddr(), Sym.getValue(), 0),
475-
0, *Name, Sym.st_size, Linkage::Weak, Scope::Default, false, false);
475+
0, *Name, Sym.st_size, Linkage::Strong, Scope::Default, false, false);
476476
setGraphSymbol(SymIndex, GSym);
477477
continue;
478478
}

llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ Error MachOLinkGraphBuilder::graphifyRegularSymbols() {
366366
orc::ExecutorAddrDiff(NSym.Value),
367367
orc::ExecutorAddr(),
368368
1ull << MachO::GET_COMM_ALIGN(NSym.Desc), 0),
369-
0, *NSym.Name, orc::ExecutorAddrDiff(NSym.Value), Linkage::Weak,
369+
0, *NSym.Name, orc::ExecutorAddrDiff(NSym.Value), Linkage::Strong,
370370
NSym.S, false, NSym.Desc & MachO::N_NO_DEAD_STRIP);
371371
} else {
372372
if (!NSym.Name)

llvm/lib/ExecutionEngine/Orc/Core.cpp

+7-15
Original file line numberDiff line numberDiff line change
@@ -932,17 +932,13 @@ Error JITDylib::resolve(MaterializationResponsibility &MR,
932932
if (SymI->second.getFlags().hasError())
933933
SymbolsInErrorState.insert(KV.first);
934934
else {
935-
auto ExpectedFlags = SymI->second.getFlags();
936-
if (ExpectedFlags & JITSymbolFlags::Common) {
937-
ExpectedFlags &= ~JITSymbolFlags::Common;
938-
ExpectedFlags |= JITSymbolFlags::Weak;
939-
}
940-
941-
assert(KV.second.getFlags() == ExpectedFlags &&
935+
auto Flags = KV.second.getFlags();
936+
Flags &= ~JITSymbolFlags::Common;
937+
assert(Flags ==
938+
(SymI->second.getFlags() & ~JITSymbolFlags::Common) &&
942939
"Resolved flags should match the declared flags");
943940

944-
Worklist.push_back(
945-
{SymI, {KV.second.getAddress(), SymI->second.getFlags()}});
941+
Worklist.push_back({SymI, {KV.second.getAddress(), Flags}});
946942
}
947943
}
948944

@@ -2903,12 +2899,8 @@ Error ExecutionSession::OL_notifyResolved(MaterializationResponsibility &MR,
29032899
"Resolving symbol outside this responsibility set");
29042900
assert(!I->second.hasMaterializationSideEffectsOnly() &&
29052901
"Can't resolve materialization-side-effects-only symbol");
2906-
auto ExpectedFlags = I->second;
2907-
if (ExpectedFlags & JITSymbolFlags::Common) {
2908-
ExpectedFlags &= ~JITSymbolFlags::Common;
2909-
ExpectedFlags |= JITSymbolFlags::Weak;
2910-
}
2911-
assert(KV.second.getFlags() == ExpectedFlags &&
2902+
assert((KV.second.getFlags() & ~JITSymbolFlags::Common) ==
2903+
(I->second & ~JITSymbolFlags::Common) &&
29122904
"Resolving symbol with incorrect flags");
29132905
}
29142906
#endif

llvm/test/ExecutionEngine/JITLink/AArch64/Inputs/MachO_common_x_and_addr_getter.s

-10
This file was deleted.

llvm/test/ExecutionEngine/JITLink/AArch64/Inputs/MachO_strong_x_and_addr_getter.s

-15
This file was deleted.

llvm/test/ExecutionEngine/JITLink/AArch64/MachO_common_symbol_x_multiple_defs.s

-33
This file was deleted.

llvm/test/ExecutionEngine/JITLink/x86-64/COFF_common_symbol.s

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#
77
# CHECK: Creating graph symbols...
88
# CHECK: 7: Creating defined graph symbol for COFF symbol "var" in (common) (index: 0)
9-
# CHECK-NEXT: 0x0 (block + 0x00000000): size: 0x00000004, linkage: weak, scope: default, dead - var
9+
# CHECK-NEXT: 0x0 (block + 0x00000000): size: 0x00000004, linkage: strong, scope: default, dead - var
1010

1111
.text
1212

0 commit comments

Comments
 (0)