Skip to content

Commit

Permalink
Merge pull request JuliaLang#38417 from JuliaLang/vc/llvm_11rtdyld
Browse files Browse the repository at this point in the history
Update LLVM RTDYLD patch to upstreamed version
  • Loading branch information
vchuravy committed Nov 13, 2020
2 parents 28ff641 + 4f584ef commit 25c0760
Show file tree
Hide file tree
Showing 108 changed files with 140 additions and 90 deletions.
2 changes: 1 addition & 1 deletion deps/Versions.make
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
LLVM_VER = 11.0.0
LLVM_BB_REL = 3
LLVM_BB_REL = 5
PCRE_VER = 10.31
PCRE_BB_REL = 0
DSFMT_VER = 2.2.3
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
e47d395b7df3b429123ef29a03a75084
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
54b2fc82135c968e69b5e98b1caefd7b09fa43ae22d94dc7c94e71155cff77a48feab8259e0a0dbeea0145f91bc88f98d76479a28ce5c5ee505db8a98595fe3f
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d9aad3a069190fb2eea6d16ff5ab2e5f
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0092862a6fc02088611f81d91588a4d88152f2b8d10b2a6795a695021d3c68bc868a1be78b63bfc69129802335207f154e714c06882de9b81dbc773a0b992826
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
37e9fb1d363e685b6ee46078f90ca63c
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d05d3ab83117165c30589673a4bf968ef24cfdd3a496f6fc246bf4423a484fd9dd8e2d698c5b081f010c9a8c02fd46def11621179309935affce9e56362c34ff
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
15347b9a4e1d48fda60591bf365b8ab9
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
cf23bb197e37acf18dab219cbc3274ef352fb4e347365bb3514efaf9e4ef3764c2fbb1a9a25282ee975cbab099643786041ce56f0a5bb5b8a2e43b3786619022
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a4b6d218dcabe2ce89cb016d9319f4cc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
90529f9e587f9d153a4e4b6b5a35c6697a8d93790c52caa756c80ad38c727a273dd2bf11fbb912ef58d008a5268864b2adade41714c8401351ce2d28f6a5e7aa
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d77f8dfaf3dc316ef370014246313fd8
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
c0e312a1d9efa00c47cd5a8c435339522b442ae390c85e11ef9717f8a9772ed3e725cd2e3a9e34ea7aec87f3d0519c58af47d7ba90a7f1d9f7eed5b23bef0730
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
02e8fe9534b3880e7849545177d5d3c4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8f10e9398257787ba6d4dd38cd8e2cd82fe24602f6014ebea7db1e154b6ef6cd4db7a3c5721be77f7166533752765a5c3a41563c5b43f20dca8489285aaa4ace
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
db9428fdd512017e253e3200df867ebb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
88a8ac734600d59595cfe52622fb98ae1a67939a3c9ee470353e67f59de94c1dd0b6a621675ca4f99b9db8ee3162426c804fc8ddd66f39b957e4bbb6cebe44ba
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a9614fb37bba83987c683d8a7f28c848
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ee420be390f9621284db837f30b11146c07348661fb9313d3b83d46897847e3a51585338bd8a9eddf2d75b38cdd4ce8cc4e443fd78f660282ee4461e9fcd6ad1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a8ce1ccf2c87eca4924b5cecfcf09274
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8e36586a8138a3adf9d4cb69d491e0b85372d17d904403c27a171d7c51fcbebdf6d47c360e084fa0e4136b0883b8fa8c9dbcbebbe6e53223672b0c6c755496f6
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ba68cffe1045d34a3ca4638df10bebb9
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
c40a05a020e1beeb00f835f419eb6debf8b01195082a1cf047a31eaab71a0da411ea54f031d3e93b8c73ab84c7e152190fcbb605a0794a7908622c53d3e73379
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ca72487161e5941d7ae7c49b95720e07
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
296f97a9f374967f6425a93cc0886dc111c9e600f8eb652a26b4bde6c9d5a901cb24121d30d93d3f5d69447089d1c75e1919fbd097f03b38ebb6434841285617
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
cd950402812dcab6dff6adc78779c73b
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
fe7fea3c889d273d4ff458cea4a03df001fe88a09a7a849c2b35ee17bbec44c10c70ae1632d02a03b1676c932a9b820a29e65fa8d978b3fec84fb33d8386bb47
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a6e83182e0c019379e2a3102bdc70a45
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
7f8925d4bb9e7b2dc70b90f01e7e7a7f20b2f59f68ec3a1c47ac1f1c927848fc93f2c55a2cd4dfed75f7b235a488b342c0399924e69ff826efea3eca2fda4815
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
e2ed6aceb500d4b48faeb1c853afadb9
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
27357b122823569d4fae7c6e40569acdd7ef382778955ca30ff536e865c7f74bf447c433918d86d4a88ad417a02589ce48f01760ac073a3e9610bd11dcdcf6e8
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5e232655bcb4ab8e332ef2ca382a02b3
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d63021b18cb0d0b3779e3d77de36fca7b7e34509a0321fc0387a7f30004915dee0fa2b7de33a6c75916d05e45fdb716e17706e3e0fedcdb3928b3be3db55a0b3
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d764d63698ca65ced383eb30c0382574
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
adc4e3d53a31b55b3e5897a8ad08d57f30b5df5ab462849fb1fd38c629c7eee72009510ca44d1277335f1e2304fe33339ab0d75dd92a22f51183d44d5546d5cf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
d764d63698ca65ced383eb30c0382574
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
adc4e3d53a31b55b3e5897a8ad08d57f30b5df5ab462849fb1fd38c629c7eee72009510ca44d1277335f1e2304fe33339ab0d75dd92a22f51183d44d5546d5cf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
31bd488edb7bd94111f2add781f59e1c
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
b8ba95b76cfde914190c98f13075dc18c553c3403ba9a81ab7f19df6de0c3dcca77c75bb8444669f0f375f7a20fa300d770091701ab60a31daf415512ed29bda
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0f5526a957db960498c34e12662b9c25
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ad9f7768d615478807b4e08656ecd400643be7466e5b0dbe060d3f81e9e8ffc8d9c7aa5bbffce8fbec2c53c04fa7697e5d4fc5394c63d40e0bafcadc0b109b4a
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
46db5c876115fb70a62d8e8da89e090d
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
cec5e4f300cc317055f21902b3534151ef980a4ef2be2d7bf0d6d08c7418a08ecf706c1a5e468fbd80f744ce162a884693e540635f16a4e60a46d6a1d87fe623
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a5802e8afe08ec0451a59acdff3a48cf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2a1c0b337eac9adb957612df6de8a3734b13b38aa7defab4b2599b00d7b579e6450bf6a43a624aa23eb250488c6ed1926af576ea776ced2ca26f5d76a1b3c170
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a8863b02826f740a56ad635dc7078c37
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22234ca7ec1d274c6355d6acaa61807c86951c54f9c33e7939a2878016a15d9b50ddc00b480ec9731fbf7f1c433d8c4a289aa9001f2393e9f0c6a55aa39289f1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a8863b02826f740a56ad635dc7078c37
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22234ca7ec1d274c6355d6acaa61807c86951c54f9c33e7939a2878016a15d9b50ddc00b480ec9731fbf7f1c433d8c4a289aa9001f2393e9f0c6a55aa39289f1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
4bf59b2296e4fd29230b3e6b8f4742d6
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
50453a33e86218368e817d0a8c7792208b9dc085688bec45721fd888e6ca178a1383f452ca5aed2a75d8ed3a39c2d859f900c47f8bb1e7d3d468b4024ec83bb0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
eda63dd5caede5a315fa9d1e1c3ff59f
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
e81f0d9ac237b3d087f0ecb499dcd4f845f66747b1b17d734ae6459fc6a58885f1e8fe24179f67ac79db253c67c139eb72146c28f995a8dad54f40a5621d332d
12 changes: 6 additions & 6 deletions deps/llvm.mk
Original file line number Diff line number Diff line change
Expand Up @@ -498,23 +498,23 @@ endif
endif # LLVM_VER 10.0

ifeq ($(LLVM_VER_SHORT),11.0)
$(eval $(call LLVM_PATCH,llvm-D27629-AArch64-large_model_6.0.1))
$(eval $(call LLVM_PATCH,llvm-D27629-AArch64-large_model_6.0.1)) # remove for LLVM 12
$(eval $(call LLVM_PATCH,llvm8-D34078-vectorize-fdiv))
$(eval $(call LLVM_PATCH,llvm-7.0-D44650)) # mingw32 build fix
$(eval $(call LLVM_PATCH,llvm-6.0-DISABLE_ABI_CHECKS))
$(eval $(call LLVM_PATCH,llvm-7.0-D44650)) # replaced by D90969 for LLVM 12
$(eval $(call LLVM_PATCH,llvm-6.0-DISABLE_ABI_CHECKS)) # Needs upstreaming
$(eval $(call LLVM_PATCH,llvm9-D50010-VNCoercion-ni))
$(eval $(call LLVM_PATCH,llvm7-revert-D44485))
$(eval $(call LLVM_PATCH,llvm7-revert-D44485)) # Needs upstreaming
$(eval $(call LLVM_PATCH,llvm-11-D75072-SCEV-add-type))
$(eval $(call LLVM_PATCH,llvm-julia-tsan-custom-as))
$(eval $(call LLVM_PATCH,llvm-D80101)) # remove for LLVM 12
$(eval $(call LLVM_PATCH,llvm-D84031)) # remove for LLVM 12
$(eval $(call LLVM_PATCH,llvm-10-D85553)) # remove for LLVM 12
$(eval $(call LLVM_PATCH,llvm-10-unique_function_clang-sa))
$(eval $(call LLVM_PATCH,llvm-10-unique_function_clang-sa)) # Needs upstreaming
ifeq ($(BUILD_LLVM_CLANG),1)
$(eval $(call LLVM_PATCH,llvm-D88630-clang-cmake))
endif
$(eval $(call LLVM_PATCH,llvm-11-D85313-debuginfo-empty-arange)) # remove for LLVM 12
$(eval $(call LLVM_PATCH,llvm-11-rtdyld-empty-symbol)) # FIXME(vchuravy): This should not be necessary
$(eval $(call LLVM_PATCH,llvm-11-D90722-rtdyld-absolute-relocs)) # remove for LLVM 12
endif # LLVM_VER 11.0


Expand Down
81 changes: 81 additions & 0 deletions deps/patches/llvm-11-D90722-rtdyld-absolute-relocs.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
From 516f0d1a0ca26ad361bf84ea9e321b247ac7924e Mon Sep 17 00:00:00 2001
From: Valentin Churavy <[email protected]>
Date: Fri, 6 Nov 2020 14:08:30 -0500
Subject: [PATCH] [RTDYLD] support absolute relocations where needed

These appear in some sections, such as DWARF tables, since
RuntimeDyldELF explicitly maps to this as a sentinel value:
https://github.com/llvm/llvm-project/blob/29d1fba7b5335d969e3e5daa84b7a25cd1fa75ef/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp#L1199

That could then be a source of problems if it tried to examine these
sections (for example, with either setProcessAllSections(true) or ORCv2 on i686).

Replaces https://reviews.llvm.org/D89241

Reviewed By: lhames, vchuravy

Differential Revision: https://reviews.llvm.org/D90722
---
.../RuntimeDyld/RuntimeDyld.cpp | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)

diff --git llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
index 7e9b0690cce..04f541b5955 100644
--- llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
+++ llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
@@ -308,7 +308,9 @@ RuntimeDyldImpl::loadObjectImpl(const object::ObjectFile &Obj) {
<< " SID: " << SectionID
<< " Offset: " << format("%p", (uintptr_t)Addr)
<< " flags: " << *FlagsOrErr << "\n");
- GlobalSymbolTable[Name] = SymbolTableEntry(SectionID, Addr, *JITSymFlags);
+ if (!Name.empty()) // Skip absolute symbol relocations.
+ GlobalSymbolTable[Name] =
+ SymbolTableEntry(SectionID, Addr, *JITSymFlags);
} else if (SymType == object::SymbolRef::ST_Function ||
SymType == object::SymbolRef::ST_Data ||
SymType == object::SymbolRef::ST_Unknown ||
@@ -340,8 +342,9 @@ RuntimeDyldImpl::loadObjectImpl(const object::ObjectFile &Obj) {
<< " SID: " << SectionID
<< " Offset: " << format("%p", (uintptr_t)SectOffset)
<< " flags: " << *FlagsOrErr << "\n");
- GlobalSymbolTable[Name] =
- SymbolTableEntry(SectionID, SectOffset, *JITSymFlags);
+ if (!Name.empty()) // Skip absolute symbol relocations
+ GlobalSymbolTable[Name] =
+ SymbolTableEntry(SectionID, SectOffset, *JITSymFlags);
}
}

@@ -769,8 +772,9 @@ Error RuntimeDyldImpl::emitCommonSymbols(const ObjectFile &Obj,

LLVM_DEBUG(dbgs() << "Allocating common symbol " << Name << " address "
<< format("%p", Addr) << "\n");
- GlobalSymbolTable[Name] =
- SymbolTableEntry(SectionID, Offset, std::move(*JITSymFlags));
+ if (!Name.empty()) // Skip absolute symbol relocations.
+ GlobalSymbolTable[Name] =
+ SymbolTableEntry(SectionID, Offset, std::move(*JITSymFlags));
Offset += Size;
Addr += Size;
}
@@ -930,6 +934,8 @@ void RuntimeDyldImpl::addRelocationForSymbol(const RelocationEntry &RE,
if (Loc == GlobalSymbolTable.end()) {
ExternalSymbolRelocations[SymbolName].push_back(RE);
} else {
+ assert(!SymbolName.empty() &&
+ "Empty symbol should not be in GlobalSymbolTable");
// Copy the RE since we want to modify its addend.
RelocationEntry RECopy = RE;
const auto &SymInfo = Loc->second;
@@ -1234,7 +1240,8 @@ void RuntimeDyldImpl::finalizeAsync(

for (auto &RelocKV : SharedThis->ExternalSymbolRelocations) {
StringRef Name = RelocKV.first();
- assert(!Name.empty() && "Symbol has no name?");
+ if (Name.empty()) // Skip absolute symbol relocations.
+ continue;
assert(!SharedThis->GlobalSymbolTable.count(Name) &&
"Name already processed. RuntimeDyld instances can not be re-used "
"when finalizing with finalizeAsync.");
--
2.29.2
31 changes: 0 additions & 31 deletions deps/patches/llvm-11-rtdyld-empty-symbol.patch

This file was deleted.

0 comments on commit 25c0760

Please sign in to comment.