~ubuntu-branches/ubuntu/quantal/enigmail/quantal-security

« back to all changes in this revision

Viewing changes to build/unix/build-clang/old-ld-hack.patch

  • Committer: Package Import Robot
  • Author(s): Chris Coulson
  • Date: 2013-09-13 16:02:15 UTC
  • mfrom: (0.12.16)
  • Revision ID: package-import@ubuntu.com-20130913160215-u3g8nmwa0pdwagwc
Tags: 2:1.5.2-0ubuntu0.12.10.1
* New upstream release v1.5.2 for Thunderbird 24

* Build enigmail using a stripped down Thunderbird 17 build system, as it's
  now quite difficult to build the way we were doing previously, with the
  latest Firefox build system
* Add debian/patches/no_libxpcom.patch - Don't link against libxpcom, as it
  doesn't exist anymore (but exists in the build system)
* Add debian/patches/use_sdk.patch - Use the SDK version of xpt.py and
  friends
* Drop debian/patches/ipc-pipe_rename.diff (not needed anymore)
* Drop debian/patches/makefile_depth.diff (not needed anymore)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h
2
 
index 9932306..948caa8 100644
3
 
--- a/include/llvm/MC/MCStreamer.h
4
 
+++ b/include/llvm/MC/MCStreamer.h
5
 
@@ -116,7 +116,7 @@ namespace llvm {
6
 
       return FrameInfos[i];
7
 
     }
8
 
 
9
 
-    ArrayRef<MCDwarfFrameInfo> getFrameInfos() {
10
 
+    MutableArrayRef<MCDwarfFrameInfo> getFrameInfos() {
11
 
       return FrameInfos;
12
 
     }
13
 
 
14
 
diff --git a/lib/MC/MCDwarf.cpp b/lib/MC/MCDwarf.cpp
15
 
index e16f7ae..edf1d6d 100644
16
 
--- a/lib/MC/MCDwarf.cpp
17
 
+++ b/lib/MC/MCDwarf.cpp
18
 
@@ -859,7 +859,6 @@ namespace {
19
 
     const MCSymbol &EmitCIE(MCStreamer &streamer,
20
 
                             const MCSymbol *personality,
21
 
                             unsigned personalityEncoding,
22
 
-                            const MCSymbol *lsda,
23
 
                             bool IsSignalFrame,
24
 
                             unsigned lsdaEncoding);
25
 
     MCSymbol *EmitFDE(MCStreamer &streamer,
26
 
@@ -1131,7 +1130,6 @@ bool FrameEmitterImpl::EmitCompactUnwind(MCStreamer &Streamer,
27
 
 const MCSymbol &FrameEmitterImpl::EmitCIE(MCStreamer &streamer,
28
 
                                           const MCSymbol *personality,
29
 
                                           unsigned personalityEncoding,
30
 
-                                          const MCSymbol *lsda,
31
 
                                           bool IsSignalFrame,
32
 
                                           unsigned lsdaEncoding) {
33
 
   MCContext &context = streamer.getContext();
34
 
@@ -1172,7 +1170,7 @@ const MCSymbol &FrameEmitterImpl::EmitCIE(MCStreamer &streamer,
35
 
     Augmentation += "z";
36
 
     if (personality)
37
 
       Augmentation += "P";
38
 
-    if (lsda)
39
 
+    if (lsdaEncoding)
40
 
       Augmentation += "L";
41
 
     Augmentation += "R";
42
 
     if (IsSignalFrame)
43
 
@@ -1203,7 +1201,7 @@ const MCSymbol &FrameEmitterImpl::EmitCIE(MCStreamer &streamer,
44
 
       // Personality
45
 
       augmentationLength += getSizeForEncoding(streamer, personalityEncoding);
46
 
     }
47
 
-    if (lsda)
48
 
+    if (lsdaEncoding)
49
 
       augmentationLength += 1;
50
 
     // Encoding of the FDE pointers
51
 
     augmentationLength += 1;
52
 
@@ -1221,7 +1219,7 @@ const MCSymbol &FrameEmitterImpl::EmitCIE(MCStreamer &streamer,
53
 
       EmitPersonality(streamer, *personality, personalityEncoding);
54
 
     }
55
 
 
56
 
-    if (lsda)
57
 
+    if (lsdaEncoding)
58
 
       EmitEncodingByte(streamer, lsdaEncoding, "LSDA Encoding");
59
 
 
60
 
     // Encoding of the FDE pointers
61
 
@@ -1322,6 +1320,8 @@ MCSymbol *FrameEmitterImpl::EmitFDE(MCStreamer &streamer,
62
 
     if (frame.Lsda)
63
 
       EmitSymbol(streamer, *frame.Lsda, frame.LsdaEncoding,
64
 
                  "Language Specific Data Area");
65
 
+    else if (frame.LsdaEncoding)
66
 
+      streamer.EmitIntValue(0, 4);
67
 
   }
68
 
 
69
 
   // Call Frame Instructions
70
 
@@ -1385,7 +1385,7 @@ void MCDwarfFrameEmitter::Emit(MCStreamer &Streamer,
71
 
   MCObjectFileInfo *MOFI =
72
 
     const_cast<MCObjectFileInfo*>(Context.getObjectFileInfo());
73
 
   FrameEmitterImpl Emitter(UsingCFI, IsEH);
74
 
-  ArrayRef<MCDwarfFrameInfo> FrameArray = Streamer.getFrameInfos();
75
 
+  MutableArrayRef<MCDwarfFrameInfo> FrameArray = Streamer.getFrameInfos();
76
 
 
77
 
   // Emit the compact unwind info if available.
78
 
   if (IsEH && MOFI->getCompactUnwindSection())
79
 
@@ -1405,7 +1405,31 @@ void MCDwarfFrameEmitter::Emit(MCStreamer &Streamer,
80
 
   MCSymbol *FDEEnd = NULL;
81
 
   DenseMap<CIEKey, const MCSymbol*> CIEStarts;
82
 
 
83
 
-  const MCSymbol *DummyDebugKey = NULL;
84
 
+
85
 
+  const MCSymbol *HackPersonality = NULL;
86
 
+  unsigned HackLsdaEncoding = 0;
87
 
+  unsigned HackPersonalityEncoding = 0;
88
 
+  for (unsigned i = 0, n = FrameArray.size(); i < n; ++i) {
89
 
+    const MCDwarfFrameInfo &Frame = FrameArray[i];
90
 
+    if (!HackPersonality)
91
 
+      HackPersonality = Frame.Personality;
92
 
+    if (!HackLsdaEncoding)
93
 
+      HackLsdaEncoding = Frame.LsdaEncoding;
94
 
+    if (!HackPersonalityEncoding)
95
 
+      HackPersonalityEncoding = Frame.PersonalityEncoding;
96
 
+  }
97
 
+
98
 
+  for (unsigned i = 0, n = FrameArray.size(); i < n; ++i) {
99
 
+    MCDwarfFrameInfo &Frame = FrameArray[i];
100
 
+    assert(Frame.Personality == NULL || Frame.Personality == HackPersonality);
101
 
+    Frame.Personality = HackPersonality;
102
 
+    assert(Frame.LsdaEncoding == 0 || Frame.LsdaEncoding == HackLsdaEncoding);
103
 
+    Frame.LsdaEncoding = HackLsdaEncoding;
104
 
+    assert(Frame.PersonalityEncoding == 0 || Frame.PersonalityEncoding == HackPersonalityEncoding);
105
 
+    Frame.PersonalityEncoding = HackPersonalityEncoding;
106
 
+  }
107
 
+
108
 
+ const MCSymbol *DummyDebugKey = NULL;
109
 
   for (unsigned i = 0, n = FrameArray.size(); i < n; ++i) {
110
 
     const MCDwarfFrameInfo &Frame = FrameArray[i];
111
 
     CIEKey Key(Frame.Personality, Frame.PersonalityEncoding,
112
 
@@ -1413,7 +1437,7 @@ void MCDwarfFrameEmitter::Emit(MCStreamer &Streamer,
113
 
     const MCSymbol *&CIEStart = IsEH ? CIEStarts[Key] : DummyDebugKey;
114
 
     if (!CIEStart)
115
 
       CIEStart = &Emitter.EmitCIE(Streamer, Frame.Personality,
116
 
-                                  Frame.PersonalityEncoding, Frame.Lsda,
117
 
+                                  Frame.PersonalityEncoding,
118
 
                                   Frame.IsSignalFrame,
119
 
                                   Frame.LsdaEncoding);
120