Skip to content

Commit 3c60d3e

Browse files
authored
Merge pull request #17181 from JuliaLang/tk/fixllvmpatch
Re-key llvm-win64-reloc-dwarf.patch against LLVM 3.7
2 parents 9a1ee22 + 869e97e commit 3c60d3e

File tree

1 file changed

+64
-57
lines changed

1 file changed

+64
-57
lines changed
Lines changed: 64 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
1-
diff -rpu llvm-3.8.0/include/llvm/MC/MCStreamer.h llvm-3.8.0-reloc/include/llvm/MC/MCStreamer.h
2-
--- llvm-3.8.0/include/llvm/MC/MCStreamer.h 2016-01-12 08:38:15.000000000 -0500
3-
+++ llvm-3.8.0-reloc/include/llvm/MC/MCStreamer.h 2016-05-23 18:54:01.830143100 -0400
4-
@@ -456,7 +456,7 @@ public:
1+
diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h
2+
index 6b9b8a1..0113664 100644
3+
--- a/include/llvm/MC/MCStreamer.h
4+
+++ b/include/llvm/MC/MCStreamer.h
5+
@@ -452,7 +452,7 @@ public:
56
/// \brief Emits a COFF section relative relocation.
67
///
78
/// \param Symbol - Symbol the section relative relocation should point to.
89
- virtual void EmitCOFFSecRel32(MCSymbol const *Symbol);
910
+ virtual void EmitCOFFSecRel32(MCSymbol const *Symbol, uint64_t Offset);
10-
11+
1112
/// \brief Emit an ELF .size directive.
1213
///
13-
diff -rpu llvm-3.8.0/include/llvm/MC/MCWinCOFFStreamer.h llvm-3.8.0-reloc/include/llvm/MC/MCWinCOFFStreamer.h
14-
--- llvm-3.8.0/include/llvm/MC/MCWinCOFFStreamer.h 2015-11-17 05:00:43.000000000 -0500
15-
+++ llvm-3.8.0-reloc/include/llvm/MC/MCWinCOFFStreamer.h 2016-05-23 18:54:01.845722400 -0400
14+
diff --git a/include/llvm/MC/MCWinCOFFStreamer.h b/include/llvm/MC/MCWinCOFFStreamer.h
15+
index 6fbc754..500b1c0 100644
16+
--- a/include/llvm/MC/MCWinCOFFStreamer.h
17+
+++ b/include/llvm/MC/MCWinCOFFStreamer.h
1618
@@ -52,7 +52,7 @@ public:
1719
void EndCOFFSymbolDef() override;
1820
void EmitCOFFSafeSEH(MCSymbol const *Symbol) override;
@@ -22,34 +24,37 @@ diff -rpu llvm-3.8.0/include/llvm/MC/MCWinCOFFStreamer.h llvm-3.8.0-reloc/includ
2224
void EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
2325
unsigned ByteAlignment) override;
2426
void EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
25-
diff -rpu llvm-3.8.0/lib/CodeGen/AsmPrinter/AsmPrinter.cpp llvm-3.8.0-reloc/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
26-
--- llvm-3.8.0/lib/CodeGen/AsmPrinter/AsmPrinter.cpp 2016-01-12 20:18:13.000000000 -0500
27-
+++ llvm-3.8.0-reloc/lib/CodeGen/AsmPrinter/AsmPrinter.cpp 2016-05-23 18:54:01.845722400 -0400
28-
@@ -1729,7 +1729,7 @@ void AsmPrinter::EmitLabelPlusOffset(con
27+
diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
28+
index 125047e..3483412 100644
29+
--- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
30+
+++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
31+
@@ -1598,7 +1598,7 @@ void AsmPrinter::EmitLabelPlusOffset(const MCSymbol *Label, uint64_t Offset,
2932
unsigned Size,
3033
bool IsSectionRelative) const {
3134
if (MAI->needsDwarfSectionOffsetDirective() && IsSectionRelative) {
3235
- OutStreamer->EmitCOFFSecRel32(Label);
3336
+ OutStreamer->EmitCOFFSecRel32(Label, Offset);
3437
return;
3538
}
36-
37-
diff -rpu llvm-3.8.0/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp llvm-3.8.0-reloc/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
38-
--- llvm-3.8.0/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp 2015-11-17 19:34:10.000000000 -0500
39-
+++ llvm-3.8.0-reloc/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp 2016-05-23 20:17:42.105695800 -0400
40-
@@ -150,7 +150,7 @@ void AsmPrinter::emitDwarfSymbolReferenc
39+
40+
diff --git a/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp b/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
41+
index ad180b6..6bd7dfb 100644
42+
--- a/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
43+
+++ b/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
44+
@@ -162,7 +162,7 @@ void AsmPrinter::emitDwarfSymbolReference(const MCSymbol *Label,
4145
if (!ForceOffset) {
4246
// On COFF targets, we have to emit the special .secrel32 directive.
4347
if (MAI->needsDwarfSectionOffsetDirective()) {
4448
- OutStreamer->EmitCOFFSecRel32(Label);
4549
+ OutStreamer->EmitCOFFSecRel32(Label, /*offset*/0);
4650
return;
4751
}
48-
49-
diff -rpu llvm-3.8.0/lib/CodeGen/AsmPrinter/DIE.cpp llvm-3.8.0-reloc/lib/CodeGen/AsmPrinter/DIE.cpp
50-
--- llvm-3.8.0/lib/CodeGen/AsmPrinter/DIE.cpp 2016-01-07 09:28:20.000000000 -0500
51-
+++ llvm-3.8.0-reloc/lib/CodeGen/AsmPrinter/DIE.cpp 2016-05-23 19:08:35.434799900 -0400
52-
@@ -487,7 +487,7 @@ void DIEEntry::EmitValue(const AsmPrinte
52+
53+
diff --git a/lib/CodeGen/AsmPrinter/DIE.cpp b/lib/CodeGen/AsmPrinter/DIE.cpp
54+
index 46dbc76..70b2014 100644
55+
--- a/lib/CodeGen/AsmPrinter/DIE.cpp
56+
+++ b/lib/CodeGen/AsmPrinter/DIE.cpp
57+
@@ -457,7 +457,7 @@ void DIEEntry::EmitValue(const AsmPrinter *AP, dwarf::Form Form) const {
5358
Addr += CU->getDebugInfoOffset();
5459
if (AP->MAI->doesDwarfUseRelocationsAcrossSections())
5560
AP->EmitLabelPlusOffset(CU->getSectionSym(), Addr,
@@ -58,10 +63,11 @@ diff -rpu llvm-3.8.0/lib/CodeGen/AsmPrinter/DIE.cpp llvm-3.8.0-reloc/lib/CodeGen
5863
else
5964
AP->OutStreamer->EmitIntValue(Addr, DIEEntry::getRefAddrSize(AP));
6065
} else
61-
diff -rpu llvm-3.8.0/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp llvm-3.8.0-reloc/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp
62-
--- llvm-3.8.0/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp 2016-01-12 20:05:23.000000000 -0500
63-
+++ llvm-3.8.0-reloc/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp 2016-05-23 21:19:31.454460900 -0400
64-
@@ -231,7 +231,7 @@ void WinCodeViewLineTables::emitDebugInf
66+
diff --git a/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp b/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp
67+
index 6610ac7..3b2188a 100644
68+
--- a/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp
69+
+++ b/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp
70+
@@ -221,7 +221,7 @@ void WinCodeViewLineTables::emitDebugInfoForFunction(const Function *GV) {
6571
// code is located and what's its size:
6672
EmitLabelDiff(*Asm->OutStreamer, Fn, FI.End);
6773
Asm->OutStreamer->EmitFill(12, 0);
@@ -70,19 +76,20 @@ diff -rpu llvm-3.8.0/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp llvm-3.8.0
7076
Asm->OutStreamer->EmitCOFFSectionIndex(Fn);
7177
Asm->EmitInt8(0);
7278
// Emit the function display name as a null-terminated string.
73-
@@ -272,7 +272,7 @@ void WinCodeViewLineTables::emitDebugInf
79+
@@ -262,7 +262,7 @@ void WinCodeViewLineTables::emitDebugInfoForFunction(const Function *GV) {
7480
Asm->OutStreamer->EmitLabel(LineTableBegin);
75-
81+
7682
// Identify the function this subsection is for.
7783
- Asm->OutStreamer->EmitCOFFSecRel32(Fn);
7884
+ Asm->OutStreamer->EmitCOFFSecRel32(Fn, /*offset*/0);
7985
Asm->OutStreamer->EmitCOFFSectionIndex(Fn);
8086
// Insert flags after a 16-bit section index.
8187
Asm->EmitInt16(COFF::DEBUG_LINE_TABLES_HAVE_COLUMN_RECORDS);
82-
diff -rpu llvm-3.8.0/lib/MC/MCAsmStreamer.cpp llvm-3.8.0-reloc/lib/MC/MCAsmStreamer.cpp
83-
--- llvm-3.8.0/lib/MC/MCAsmStreamer.cpp 2015-11-12 08:33:00.000000000 -0500
84-
+++ llvm-3.8.0-reloc/lib/MC/MCAsmStreamer.cpp 2016-05-23 18:54:01.859727900 -0400
85-
@@ -143,7 +143,7 @@ public:
88+
diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp
89+
index 227c937..c2f3e6e 100644
90+
--- a/lib/MC/MCAsmStreamer.cpp
91+
+++ b/lib/MC/MCAsmStreamer.cpp
92+
@@ -138,7 +138,7 @@ public:
8693
void EndCOFFSymbolDef() override;
8794
void EmitCOFFSafeSEH(MCSymbol const *Symbol) override;
8895
void EmitCOFFSectionIndex(MCSymbol const *Symbol) override;
@@ -91,55 +98,58 @@ diff -rpu llvm-3.8.0/lib/MC/MCAsmStreamer.cpp llvm-3.8.0-reloc/lib/MC/MCAsmStrea
9198
void emitELFSize(MCSymbolELF *Symbol, const MCExpr *Value) override;
9299
void EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
93100
unsigned ByteAlignment) override;
94-
@@ -525,7 +525,7 @@ void MCAsmStreamer::EmitCOFFSectionIndex
101+
@@ -514,7 +514,7 @@ void MCAsmStreamer::EmitCOFFSectionIndex(MCSymbol const *Symbol) {
95102
EmitEOL();
96103
}
97-
104+
98105
-void MCAsmStreamer::EmitCOFFSecRel32(MCSymbol const *Symbol) {
99106
+void MCAsmStreamer::EmitCOFFSecRel32(MCSymbol const *Symbol, uint64_t Offset) {
100107
OS << "\t.secrel32\t";
101108
Symbol->print(OS, MAI);
102109
EmitEOL();
103-
diff -rpu llvm-3.8.0/lib/MC/MCParser/COFFAsmParser.cpp llvm-3.8.0-reloc/lib/MC/MCParser/COFFAsmParser.cpp
104-
--- llvm-3.8.0/lib/MC/MCParser/COFFAsmParser.cpp 2015-11-18 01:02:15.000000000 -0500
105-
+++ llvm-3.8.0-reloc/lib/MC/MCParser/COFFAsmParser.cpp 2016-05-23 18:54:15.937859600 -0400
106-
@@ -450,7 +450,7 @@ bool COFFAsmParser::ParseDirectiveSecRel
110+
diff --git a/lib/MC/MCParser/COFFAsmParser.cpp b/lib/MC/MCParser/COFFAsmParser.cpp
111+
index f09bce0..39a9ad7 100644
112+
--- a/lib/MC/MCParser/COFFAsmParser.cpp
113+
+++ b/lib/MC/MCParser/COFFAsmParser.cpp
114+
@@ -451,7 +451,7 @@ bool COFFAsmParser::ParseDirectiveSecRel32(StringRef, SMLoc) {
107115
MCSymbol *Symbol = getContext().getOrCreateSymbol(SymbolID);
108-
116+
109117
Lex();
110118
- getStreamer().EmitCOFFSecRel32(Symbol);
111119
+ getStreamer().EmitCOFFSecRel32(Symbol, /*Offset=*/0);
112120
return false;
113121
}
114-
115-
diff -rpu llvm-3.8.0/lib/MC/MCStreamer.cpp llvm-3.8.0-reloc/lib/MC/MCStreamer.cpp
116-
--- llvm-3.8.0/lib/MC/MCStreamer.cpp 2015-11-04 18:59:18.000000000 -0500
117-
+++ llvm-3.8.0-reloc/lib/MC/MCStreamer.cpp 2016-05-23 18:54:15.953281800 -0400
118-
@@ -119,7 +119,7 @@ void MCStreamer::EmitSymbolValue(const M
122+
123+
diff --git a/lib/MC/MCStreamer.cpp b/lib/MC/MCStreamer.cpp
124+
index 7fbbbd9..c9e8958 100644
125+
--- a/lib/MC/MCStreamer.cpp
126+
+++ b/lib/MC/MCStreamer.cpp
127+
@@ -120,7 +120,7 @@ void MCStreamer::EmitSymbolValue(const MCSymbol *Sym, unsigned Size,
119128
if (!IsSectionRelative)
120129
EmitValueImpl(MCSymbolRefExpr::create(Sym, getContext()), Size);
121130
else
122131
- EmitCOFFSecRel32(Sym);
123132
+ EmitCOFFSecRel32(Sym, /*Offset=*/0);
124133
}
125-
134+
126135
void MCStreamer::EmitGPRel64Value(const MCExpr *Value) {
127-
@@ -570,7 +570,7 @@ void MCStreamer::EmitCOFFSafeSEH(MCSymbo
136+
@@ -562,7 +562,7 @@ void MCStreamer::EmitCOFFSafeSEH(MCSymbol const *Symbol) {
128137
void MCStreamer::EmitCOFFSectionIndex(MCSymbol const *Symbol) {
129138
}
130-
139+
131140
-void MCStreamer::EmitCOFFSecRel32(MCSymbol const *Symbol) {
132141
+void MCStreamer::EmitCOFFSecRel32(MCSymbol const *Symbol, uint64_t Offset) {
133142
}
134-
143+
135144
/// EmitRawText - If this file is backed by an assembly streamer, this dumps
136-
diff -rpu llvm-3.8.0/lib/MC/WinCOFFStreamer.cpp llvm-3.8.0-reloc/lib/MC/WinCOFFStreamer.cpp
137-
--- llvm-3.8.0/lib/MC/WinCOFFStreamer.cpp 2015-11-17 05:00:43.000000000 -0500
138-
+++ llvm-3.8.0-reloc/lib/MC/WinCOFFStreamer.cpp 2016-06-25 22:00:26.530421900 -0400
139-
@@ -199,14 +199,21 @@ void MCWinCOFFStreamer::EmitCOFFSectionI
145+
diff --git a/lib/MC/WinCOFFStreamer.cpp b/lib/MC/WinCOFFStreamer.cpp
146+
index 36dd691..d6c91db 100644
147+
--- a/lib/MC/WinCOFFStreamer.cpp
148+
+++ b/lib/MC/WinCOFFStreamer.cpp
149+
@@ -192,11 +192,18 @@ void MCWinCOFFStreamer::EmitCOFFSectionIndex(MCSymbol const *Symbol) {
140150
DF->getContents().resize(DF->getContents().size() + 2, 0);
141151
}
142-
152+
143153
-void MCWinCOFFStreamer::EmitCOFFSecRel32(MCSymbol const *Symbol) {
144154
+void MCWinCOFFStreamer::EmitCOFFSecRel32(MCSymbol const *Symbol, uint64_t Offset) {
145155
MCDataFragment *DF = getOrCreateDataFragment();
@@ -157,7 +167,4 @@ diff -rpu llvm-3.8.0/lib/MC/WinCOFFStreamer.cpp llvm-3.8.0-reloc/lib/MC/WinCOFFS
157167
+ // Emit 4 bytes (zeros) to the object file.
158168
DF->getContents().resize(DF->getContents().size() + 4, 0);
159169
}
160-
161-
void MCWinCOFFStreamer::EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
162-
unsigned ByteAlignment) {
163-
assert((!Symbol->isInSection() ||
170+

0 commit comments

Comments
 (0)