Bug 774755 - 7/8 - ANGLE r1242: update README and local patches - no review
authorBenoit Jacob <bjacob@mozilla.com>
Wed, 25 Jul 2012 12:13:45 -0400
changeset 106447 c2c60b40fa7fc705db72242c97d49a82403d50ee
parent 106446 5e6ca15261afc5d8ac691a4576c7cc076fe9c890
child 106448 39c6cd95de2556733f758ad07ffaa1c8320e8acb
push id214
push userakeybl@mozilla.com
push dateWed, 14 Nov 2012 20:38:59 +0000
treeherdermozilla-release@c8b08ec8e1aa [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs774755
milestone17.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 774755 - 7/8 - ANGLE r1242: update README and local patches - no review
gfx/angle/README.mozilla
gfx/angle/angle-abort-on-oom-in-preprocessor.patch
gfx/angle/angle-castrate-bug-241.patch
gfx/angle/angle-enforce-readpixels-spec.patch
gfx/angle/angle-impl-read-bgra.patch
gfx/angle/angle-intrinsic-msvc2005.patch
gfx/angle/angle-long-identifier-hash-spooky.patch
gfx/angle/angle-renaming-debug.patch
gfx/angle/angle-renaming-preprocessor-diagonostics.patch
gfx/angle/angle-renaming-preprocessor-directivehandler.patch
gfx/angle/angle-use-xmalloc.patch
--- a/gfx/angle/README.mozilla
+++ b/gfx/angle/README.mozilla
@@ -1,24 +1,40 @@
 This is the ANGLE project, from http://code.google.com/p/angleproject/
 
-Current revision: r963
+Current revision: r1242
 
 == Applied local patches ==
 
 In this order:
-  angle-renaming-debug.patch - rename debug.h to compilerdebug.h to avoid conflict in our makefiles
-  angle-intrinsic-msvc2005.patch - work around a MSVC 2005 compile error
-  angle-use-xmalloc.patch - see bug 680840. Can drop this patch whenever the new preprocessor lands.
-  angle-castrate-bug-241.patch - see bug 699033 / angle bug 241
-  angle-enforce-readpixels-spec.patch - see bug 724476.
-  angle-impl-read-bgra.patch - see bug 724476.
-  gfx/angle/angle-long-identifier-hash-spooky.patch - see bug 676071
+
+  angle-renaming-debug.patch
+    rename debug.h to compilerdebug.h to avoid conflict in our makefiles
+
+  angle-renaming-preprocessor-diagonostics.patch
+    rename one of the two Diagnostics.cpp to avoid conflict in our makefiles
+
+  angle-renaming-preprocessor-directivehandler.patch
+    rename one of the two DirectiveHandler.cpp to avoid conflict in our makefiles
+
+  angle-enforce-readpixels-spec.patch
+    see bug 724476
+
+  angle-impl-read-bgra.patch
+    see bug 724476
+
+  gfx/angle/angle-long-identifier-hash-spooky.patch
+    see bug 676071
+
+  angle-abort-on-oom-in-preprocessor.patch
+    see bug 680840. Probably not useful anymore now that we're on the new
+    preprocessor, but it doesn't hurt to keep it around a bit longer.
 
 In addition to these patches, the Makefile.in files are ours, they're not present in upsteam ANGLE.
+Therefore, changes made to the Makefile.in files should not be stored in the local .patch files.
 
 == How to update this ANGLE copy ==
 
 1. Unapply patches
 2. Apply diff with new ANGLE version
 3. Reapply patches.
 4. Check for changes in src/build_angle.gyp, update our Makefile.in files accordingly. Note that a single file may be recorded in more than one Makefile.
 
new file mode 100644
--- /dev/null
+++ b/gfx/angle/angle-abort-on-oom-in-preprocessor.patch
@@ -0,0 +1,29 @@
+# HG changeset patch
+# Parent 11023ab3d23865b71678e9a4b22a45646ec0c0f0
+diff --git a/gfx/angle/src/compiler/preprocessor/atom.c b/gfx/angle/src/compiler/preprocessor/atom.c
+--- a/gfx/angle/src/compiler/preprocessor/atom.c
++++ b/gfx/angle/src/compiler/preprocessor/atom.c
+@@ -327,22 +327,17 @@ static int GrowAtomTable(AtomTable *atab
+             newmap = realloc(atable->amap, sizeof(int)*size);
+             newrev = realloc(atable->arev, sizeof(int)*size);
+         } else {
+             newmap = malloc(sizeof(int)*size);
+             newrev = malloc(sizeof(int)*size);
+             atable->size = 0;
+         }
+         if (!newmap || !newrev) {
+-            /* failed to grow -- error */
+-            if (newmap)
+-                atable->amap = newmap;
+-            if (newrev)
+-                atable->arev = newrev;
+-            return -1;
++            abort();
+         }
+         memset(&newmap[atable->size], 0, (size - atable->size) * sizeof(int));
+         memset(&newrev[atable->size], 0, (size - atable->size) * sizeof(int));
+         atable->amap = newmap;
+         atable->arev = newrev;
+         atable->size = size;
+     }
+     return 0;
deleted file mode 100644
--- a/gfx/angle/angle-castrate-bug-241.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-# HG changeset patch
-# User Benoit Jacob <bjacob@mozilla.com>
-# Parent 7dcbce54a953090ae8e537f93c6c99ab8eb0dc62
-
-diff --git a/gfx/angle/README.mozilla b/gfx/angle/README.mozilla
---- a/gfx/angle/README.mozilla
-+++ b/gfx/angle/README.mozilla
-@@ -4,16 +4,17 @@ Current revision: r963
- 
- == Applied local patches ==
- 
- In this order:
-   angle-renaming-debug.patch - rename debug.h to compilerdebug.h to avoid conflict in our makefiles
-   angle-intrinsic-msvc2005.patch - work around a MSVC 2005 compile error
-   angle-limit-identifiers-to-250-chars.patch - see bug 675625
-   angle-use-xmalloc.patch - see bug 680840. Can drop this patch whenever the new preprocessor lands.
-+  angle-castrate-bug-241.patch - see bug 699033 / angle bug 241
- 
- In addition to these patches, the Makefile.in files are ours, they're not present in upsteam ANGLE.
- 
- == How to update this ANGLE copy ==
- 
- 1. Unapply patches
- 2. Apply diff with new ANGLE version
- 3. Reapply patches.
-diff --git a/gfx/angle/src/compiler/Types.h b/gfx/angle/src/compiler/Types.h
---- a/gfx/angle/src/compiler/Types.h
-+++ b/gfx/angle/src/compiler/Types.h
-@@ -5,16 +5,17 @@
- //
- 
- #ifndef _TYPES_INCLUDED
- #define _TYPES_INCLUDED
- 
- #include "compiler/BaseTypes.h"
- #include "compiler/Common.h"
- #include "compiler/compilerdebug.h"
-+#include <cstdlib>
- 
- //
- // Need to have association of line numbers to types in a list for building structs.
- //
- class TType;
- struct TTypeLine {
-     TType* type;
-     int line;
-@@ -203,17 +204,17 @@ public:
-     bool isVector() const { return size > 1 && !matrix; }
-     bool isScalar() const { return size == 1 && !matrix && !structure; }
- 
-     TTypeList* getStruct() const { return structure; }
-     void setStruct(TTypeList* s) { structure = s; computeDeepestStructNesting(); }
- 
-     const TString& getTypeName() const
-     {
--        assert(typeName);
-+        if(!typeName) abort();
-         return *typeName;
-     }
-     void setTypeName(const TString& n)
-     {
-         typeName = NewPoolTString(n.c_str());
-     }
- 
-     bool isField() const { return fieldName != 0; }
--- a/gfx/angle/angle-enforce-readpixels-spec.patch
+++ b/gfx/angle/angle-enforce-readpixels-spec.patch
@@ -1,15 +1,14 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-Bug 724476 - ANGLE Bug 293 - Enforce readPixels format/type semantics
-
+# HG changeset patch
+# Parent a1fed68f51737972901e0d6fc829d3e044a453bd
 diff --git a/gfx/angle/src/libGLESv2/libGLESv2.cpp b/gfx/angle/src/libGLESv2/libGLESv2.cpp
 --- a/gfx/angle/src/libGLESv2/libGLESv2.cpp
 +++ b/gfx/angle/src/libGLESv2/libGLESv2.cpp
-@@ -98,27 +98,16 @@ bool validReadFormatType(GLenum format, 
+@@ -231,27 +231,16 @@ bool validReadFormatType(GLenum format, 
          switch (type)
          {
            case GL_UNSIGNED_BYTE:
              break;
            default:
              return false;
          }
          break;
--- a/gfx/angle/angle-impl-read-bgra.patch
+++ b/gfx/angle/angle-impl-read-bgra.patch
@@ -1,15 +1,14 @@
-From: Jeff Gilbert <jgilbert@mozilla.com>
-Bug 724476 - ANGLE Bug 294 - Use BGRA/UBYTE as exposed fast format/type for readPixels
-
+# HG changeset patch
+# Parent 97ded57f965865c06306a8ef82d082064542caff
 diff --git a/gfx/angle/src/libGLESv2/Context.cpp b/gfx/angle/src/libGLESv2/Context.cpp
 --- a/gfx/angle/src/libGLESv2/Context.cpp
 +++ b/gfx/angle/src/libGLESv2/Context.cpp
-@@ -2520,16 +2520,17 @@ void Context::readPixels(GLint x, GLint 
+@@ -2585,16 +2585,17 @@ void Context::readPixels(GLint x, GLint 
      {
          if (desc.Format == D3DFMT_A8R8G8B8 &&
              format == GL_BGRA_EXT &&
              type == GL_UNSIGNED_BYTE)
          {
              // Fast path for EXT_read_format_bgra, given
              // an RGBA source buffer.  Note that buffers with no
              // alpha go through the slow path below.
@@ -17,17 +16,17 @@ diff --git a/gfx/angle/src/libGLESv2/Con
              memcpy(dest + j * outputPitch,
                     source + j * inputPitch,
                     (rect.right - rect.left) * 4);
              continue;
          }
  
          for (int i = 0; i < rect.right - rect.left; i++)
          {
-@@ -2666,20 +2667,20 @@ void Context::readPixels(GLint x, GLint 
+@@ -2732,20 +2733,20 @@ void Context::readPixels(GLint x, GLint 
                          ((unsigned short)(     a + 0.5f) << 15) |
                          ((unsigned short)(31 * r + 0.5f) << 10) |
                          ((unsigned short)(31 * g + 0.5f) << 5) |
                          ((unsigned short)(31 * b + 0.5f) << 0);
                      break;
                    default: UNREACHABLE();
                  }
                  break;
deleted file mode 100644
--- a/gfx/angle/angle-intrinsic-msvc2005.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-# HG changeset patch
-# Parent 6ee54a11fd135a2b594db77f7eaf83f06ee7b1d8
-diff --git a/gfx/angle/src/libGLESv2/Texture.cpp b/gfx/angle/src/libGLESv2/Texture.cpp
---- a/gfx/angle/src/libGLESv2/Texture.cpp
-+++ b/gfx/angle/src/libGLESv2/Texture.cpp
-@@ -8,16 +8,22 @@
- // Texture2D and TextureCubeMap. Implements GL texture objects and related
- // functionality. [OpenGL ES 2.0.24] section 3.7 page 63.
- 
- #include "libGLESv2/Texture.h"
- 
- #include <d3dx9tex.h>
- 
- #include <algorithm>
-+
-+#if _MSC_VER <= 1400
-+#define _interlockedbittestandreset _interlockedbittestandreset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR
-+#define _interlockedbittestandset _interlockedbittestandset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR
-+#endif
-+
- #include <intrin.h>
- 
- #include "common/debug.h"
- 
- #include "libEGL/Display.h"
- 
- #include "libGLESv2/main.h"
- #include "libGLESv2/mathutil.h"
-diff --git a/gfx/angle/src/libGLESv2/mathutil.h b/gfx/angle/src/libGLESv2/mathutil.h
---- a/gfx/angle/src/libGLESv2/mathutil.h
-+++ b/gfx/angle/src/libGLESv2/mathutil.h
-@@ -3,16 +3,21 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- //
- 
- // mathutil.h: Math and bit manipulation functions.
- 
- #ifndef LIBGLESV2_MATHUTIL_H_
- #define LIBGLESV2_MATHUTIL_H_
-+
-+#if _MSC_VER <= 1400
-+#define _interlockedbittestandreset _interlockedbittestandreset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR
-+#define _interlockedbittestandset _interlockedbittestandset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR
-+#endif
- 
- #include <intrin.h>
- #include <math.h>
- #include <windows.h>
- 
- namespace gl
- {
- inline bool isPow2(int x)
--- a/gfx/angle/angle-long-identifier-hash-spooky.patch
+++ b/gfx/angle/angle-long-identifier-hash-spooky.patch
@@ -1,36 +1,15 @@
 # HG changeset patch
-# Parent 69255fe4cb94f1681bc9200db37c0ad3de171abc
+# Parent c5e7517cbb1c38ce9821ba3deca88768b4dff066
 
-diff --git a/gfx/angle/Makefile.in b/gfx/angle/Makefile.in
---- a/gfx/angle/Makefile.in
-+++ b/gfx/angle/Makefile.in
-@@ -79,16 +79,17 @@ CPPSRCS = \
-         SymbolTable.cpp \
-         VariableInfo.cpp \
-         compilerdebug.cpp \
-         ossource_nspr.cpp \
-         util.cpp \
-         ValidateLimitations.cpp \
-         ForLoopUnroll.cpp \
-         MapLongVariableNames.cpp \
-+        spooky.cpp \
-         BuiltInFunctionEmulator.cpp \
-         $(NULL)
- 
- # flex/yacc generated files
- CPPSRCS += \
-         glslang_lex.cpp \
-         glslang_tab.cpp \
-         $(NULL)
 diff --git a/gfx/angle/src/compiler/MapLongVariableNames.cpp b/gfx/angle/src/compiler/MapLongVariableNames.cpp
 --- a/gfx/angle/src/compiler/MapLongVariableNames.cpp
 +++ b/gfx/angle/src/compiler/MapLongVariableNames.cpp
-@@ -1,27 +1,30 @@
+@@ -1,29 +1,36 @@
  //
  // Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  //
  
  #include "compiler/MapLongVariableNames.h"
 +#include "spooky.h"
@@ -39,25 +18,33 @@ diff --git a/gfx/angle/src/compiler/MapL
  
  TString mapLongName(int id, const TString& name, bool isGlobal)
  {
      ASSERT(name.size() > MAX_SHORTENED_IDENTIFIER_SIZE);
      TStringStream stream;
 -    stream << "webgl_";
 -    if (isGlobal)
 -        stream << "g";
--    stream << id << "_";
+-    stream << id;
+-    if (name[0] != '_')
+-        stream << "_";
 -    stream << name.substr(0, MAX_SHORTENED_IDENTIFIER_SIZE - stream.str().size());
 +    uint64 hash = SpookyHash::Hash64(name.data(), name.length(), 0);
-+    stream << "webgl_"
++
++    // We want to avoid producing a string with a double underscore,
++    // which would be an illegal GLSL identifier. We can assume that the
++    // original identifier doesn't have a double underscore, otherwise
++    // it's illegal anyway.
++    stream << (name[0] == '_' ? "webgl" : "webgl_")
 +           << name.substr(0, 9)
-+           << "_"
++           << (name[8] == '_' ? "" : "_")
 +           << std::hex
 +           << hash;
-+    ASSERT(stream.str().length() == MAX_SHORTENED_IDENTIFIER_SIZE);
++    ASSERT(stream.str().length() <= MAX_SHORTENED_IDENTIFIER_SIZE);
++    ASSERT(stream.str().length() >= MAX_SHORTENED_IDENTIFIER_SIZE - 2);
      return stream.str();
  }
  
  LongNameMap* gLongNameMapInstance = NULL;
  
  }  // anonymous namespace
  
  LongNameMap::LongNameMap()
@@ -707,50 +694,8 @@ new file mode 100644
 +    uint64 m_data[2*sc_numVars];   // unhashed data, for partial messages
 +    uint64 m_state[sc_numVars];  // internal state of the hash
 +    size_t m_length;             // total length of the input so far
 +    uint8  m_remainder;          // length of unhashed data stashed in m_data
 +};
 +
 +
 +
-diff --git a/gfx/angle/src/libEGL/Makefile.in b/gfx/angle/src/libEGL/Makefile.in
---- a/gfx/angle/src/libEGL/Makefile.in
-+++ b/gfx/angle/src/libEGL/Makefile.in
-@@ -91,16 +91,17 @@ CPPSRCS = \
-   SymbolTable.cpp \
-   VariableInfo.cpp \
-   compilerdebug.cpp \
-   ossource_win.cpp \
-   util.cpp \
-   ValidateLimitations.cpp \
-   ForLoopUnroll.cpp \
-   MapLongVariableNames.cpp \
-+  spooky.cpp \
-   BuiltInFunctionEmulator.cpp \
-   $(NULL)
- 
- # flex/yacc generated files
- CPPSRCS += \
-   glslang_lex.cpp \
-   glslang_tab.cpp \
-   $(NULL)
-diff --git a/gfx/angle/src/libGLESv2/Makefile.in b/gfx/angle/src/libGLESv2/Makefile.in
---- a/gfx/angle/src/libGLESv2/Makefile.in
-+++ b/gfx/angle/src/libGLESv2/Makefile.in
-@@ -91,16 +91,17 @@ CPPSRCS = \
-         SymbolTable.cpp \
-         VariableInfo.cpp \
-         compilerdebug.cpp \
-         ossource_win.cpp \
-         util.cpp \
-         ValidateLimitations.cpp \
- 	ForLoopUnroll.cpp \
- 	MapLongVariableNames.cpp \
-+	spooky.cpp \
-         BuiltInFunctionEmulator.cpp \
- 	$(NULL)
- 
- # flex/yacc generated files
- CPPSRCS += \
- 	glslang_lex.cpp \
- 	glslang_tab.cpp \
- 	$(NULL)
--- a/gfx/angle/angle-renaming-debug.patch
+++ b/gfx/angle/angle-renaming-debug.patch
@@ -1,32 +1,55 @@
 # HG changeset patch
-# Parent 326590fb862cf7e277487f48c7a434bde3566ea0
-diff --git a/gfx/angle/Makefile.in b/gfx/angle/Makefile.in
---- a/gfx/angle/Makefile.in
-+++ b/gfx/angle/Makefile.in
-@@ -75,17 +75,17 @@ CPPSRCS = \
-         parseConst.cpp \
-         ParseHelper.cpp \
-         PoolAlloc.cpp \
-         QualifierAlive.cpp \
-         RemoveTree.cpp \
-         ShaderLang.cpp \
-         SymbolTable.cpp \
-         VariableInfo.cpp \
--        debug.cpp \
-+        compilerdebug.cpp \
-         ossource_nspr.cpp \
-         util.cpp \
-         ValidateLimitations.cpp \
-         ForLoopUnroll.cpp \
-         MapLongVariableNames.cpp \
-         BuiltInFunctionEmulator.cpp \
-         $(NULL)
+# Parent 8e2ee5b1a34208fd10f501fdee330878e20df599
+
+diff --git a/gfx/angle/src/compiler/Diagnostics.cpp b/gfx/angle/src/compiler/Diagnostics.cpp
+--- a/gfx/angle/src/compiler/Diagnostics.cpp
++++ b/gfx/angle/src/compiler/Diagnostics.cpp
+@@ -1,17 +1,17 @@
+ //
+ // Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ //
+ 
+ #include "compiler/Diagnostics.h"
+ 
+-#include "compiler/debug.h"
++#include "compiler/compilerdebug.h"
+ #include "compiler/InfoSink.h"
+ #include "compiler/preprocessor/new/SourceLocation.h"
  
+ TDiagnostics::TDiagnostics(TInfoSink& infoSink) :
+     mInfoSink(infoSink),
+     mNumErrors(0),
+     mNumWarnings(0)
+ {
+diff --git a/gfx/angle/src/compiler/DirectiveHandler.cpp b/gfx/angle/src/compiler/DirectiveHandler.cpp
+--- a/gfx/angle/src/compiler/DirectiveHandler.cpp
++++ b/gfx/angle/src/compiler/DirectiveHandler.cpp
+@@ -3,17 +3,17 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ //
+ 
+ #include "compiler/DirectiveHandler.h"
+ 
+ #include <sstream>
+ 
+-#include "compiler/debug.h"
++#include "compiler/compilerdebug.h"
+ #include "compiler/Diagnostics.h"
+ 
+ static TBehavior getBehavior(const std::string& str)
+ {
+     static const std::string kRequire("require");
+     static const std::string kEnable("enable");
+     static const std::string kDisable("disable");
+     static const std::string kWarn("warn");
 diff --git a/gfx/angle/src/compiler/OutputGLSLBase.cpp b/gfx/angle/src/compiler/OutputGLSLBase.cpp
 --- a/gfx/angle/src/compiler/OutputGLSLBase.cpp
 +++ b/gfx/angle/src/compiler/OutputGLSLBase.cpp
 @@ -1,16 +1,16 @@
  //
  // Copyright (c) 2002-2011 The ANGLE Project Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
@@ -41,35 +64,35 @@ diff --git a/gfx/angle/src/compiler/Outp
  TString getTypeName(const TType& type)
  {
      TInfoSinkBase out;
      if (type.isMatrix())
      {
 diff --git a/gfx/angle/src/compiler/OutputHLSL.cpp b/gfx/angle/src/compiler/OutputHLSL.cpp
 --- a/gfx/angle/src/compiler/OutputHLSL.cpp
 +++ b/gfx/angle/src/compiler/OutputHLSL.cpp
-@@ -1,17 +1,17 @@
- //
- // Copyright (c) 2002-2011 The ANGLE Project Authors. All rights reserved.
+@@ -2,17 +2,17 @@
+ // Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  //
  
  #include "compiler/OutputHLSL.h"
  
+ #include "common/angleutils.h"
 -#include "compiler/debug.h"
 +#include "compiler/compilerdebug.h"
  #include "compiler/InfoSink.h"
- #include "compiler/UnfoldSelect.h"
+ #include "compiler/UnfoldShortCircuit.h"
  #include "compiler/SearchSymbol.h"
+ #include "compiler/DetectDiscontinuity.h"
  
  #include <stdio.h>
  #include <algorithm>
  
- namespace sh
 diff --git a/gfx/angle/src/compiler/Types.h b/gfx/angle/src/compiler/Types.h
 --- a/gfx/angle/src/compiler/Types.h
 +++ b/gfx/angle/src/compiler/Types.h
 @@ -4,17 +4,17 @@
  // found in the LICENSE file.
  //
  
  #ifndef _TYPES_INCLUDED
@@ -82,41 +105,44 @@ diff --git a/gfx/angle/src/compiler/Type
  
  //
  // Need to have association of line numbers to types in a list for building structs.
  //
  class TType;
  struct TTypeLine {
      TType* type;
      int line;
-diff --git a/gfx/angle/src/compiler/compilerdebug.cpp b/gfx/angle/src/compiler/compilerdebug.cpp
---- a/gfx/angle/src/compiler/compilerdebug.cpp
+diff --git a/gfx/angle/src/compiler/debug.cpp b/gfx/angle/src/compiler/compilerdebug.cpp
+rename from gfx/angle/src/compiler/debug.cpp
+rename to gfx/angle/src/compiler/compilerdebug.cpp
+--- a/gfx/angle/src/compiler/debug.cpp
 +++ b/gfx/angle/src/compiler/compilerdebug.cpp
 @@ -1,17 +1,17 @@
  //
  // Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  //
  
--// debug.cpp: Debugging utilities.
-+// compilerdebug.cpp: Debugging utilities.
+ // debug.cpp: Debugging utilities.
  
 -#include "compiler/debug.h"
 +#include "compiler/compilerdebug.h"
  
  #include <stdarg.h>
  #include <stdio.h>
  
+ #include "compiler/InitializeParseContext.h"
  #include "compiler/ParseHelper.h"
  
  static const int kTraceBufferLen = 1024;
- 
-diff --git a/gfx/angle/src/compiler/compilerdebug.h b/gfx/angle/src/compiler/compilerdebug.h
---- a/gfx/angle/src/compiler/compilerdebug.h
+diff --git a/gfx/angle/src/compiler/debug.h b/gfx/angle/src/compiler/compilerdebug.h
+rename from gfx/angle/src/compiler/debug.h
+rename to gfx/angle/src/compiler/compilerdebug.h
+--- a/gfx/angle/src/compiler/debug.h
 +++ b/gfx/angle/src/compiler/compilerdebug.h
 @@ -1,15 +1,15 @@
  //
  // Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  //
  
@@ -128,17 +154,17 @@ diff --git a/gfx/angle/src/compiler/comp
  
  #include <assert.h>
  
  #ifdef _DEBUG
  #define TRACE_ENABLED  // define to enable debug message tracing
 diff --git a/gfx/angle/src/compiler/osinclude.h b/gfx/angle/src/compiler/osinclude.h
 --- a/gfx/angle/src/compiler/osinclude.h
 +++ b/gfx/angle/src/compiler/osinclude.h
-@@ -31,17 +31,17 @@
+@@ -32,17 +32,17 @@
  #include <windows.h>
  #elif defined(ANGLE_OS_POSIX)
  #include <pthread.h>
  #include <semaphore.h>
  #include <errno.h>
  #endif  // ANGLE_USE_NSPR
  
  
@@ -150,49 +176,71 @@ diff --git a/gfx/angle/src/compiler/osin
  //
  #if defined(ANGLE_USE_NSPR)
  typedef PRUintn OS_TLSIndex;
  #define OS_INVALID_TLS_INDEX 0xFFFFFFFF
  #elif defined(ANGLE_OS_WIN)
 diff --git a/gfx/angle/src/compiler/preprocessor/atom.c b/gfx/angle/src/compiler/preprocessor/atom.c
 --- a/gfx/angle/src/compiler/preprocessor/atom.c
 +++ b/gfx/angle/src/compiler/preprocessor/atom.c
-@@ -45,17 +45,17 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILI
- //
+@@ -46,17 +46,17 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILI
  // atom.c
  //
  
  #include <stdlib.h>
  #include <stdio.h>
  #include <string.h>
  
+ #include "common/angleutils.h"
 -#include "compiler/debug.h"
 +#include "compiler/compilerdebug.h"
  #include "compiler/preprocessor/slglobals.h"
  
  #undef malloc
  #undef realloc
  #undef free
  
  ///////////////////////////////////////////////////////////////////////////////////////////////
  ////////////////////////////////////////// String table: //////////////////////////////////////
 diff --git a/gfx/angle/src/compiler/preprocessor/tokens.c b/gfx/angle/src/compiler/preprocessor/tokens.c
 --- a/gfx/angle/src/compiler/preprocessor/tokens.c
 +++ b/gfx/angle/src/compiler/preprocessor/tokens.c
-@@ -45,17 +45,17 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILI
- // tokens.c
+@@ -46,17 +46,17 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILI
  //
  
  #include <stdlib.h>
  #include <stdio.h>
  #include <string.h>
  #include <ctype.h>
  
+ #include "common/angleutils.h"
 -#include "compiler/debug.h"
 +#include "compiler/compilerdebug.h"
  #include "compiler/preprocessor/slglobals.h"
  #include "compiler/util.h"
  
- ///////////////////////////////////////////////////////////////////////////////////////////////
- //////////////////////// Preprocessor and Token Recorder and Playback: ////////////////////////
- ///////////////////////////////////////////////////////////////////////////////////////////////
+ #if defined(_MSC_VER)
+ #pragma warning(disable: 4054)
+ #pragma warning(disable: 4152)
+ #endif
  
- /*
+diff --git a/gfx/angle/src/compiler/translator_common.vcproj b/gfx/angle/src/compiler/translator_common.vcproj
+--- a/gfx/angle/src/compiler/translator_common.vcproj
++++ b/gfx/angle/src/compiler/translator_common.vcproj
+@@ -580,17 +580,17 @@
+ 				RelativePath=".\Common.h"
+ 				>
+ 			</File>
+ 			<File
+ 				RelativePath=".\ConstantUnion.h"
+ 				>
+ 			</File>
+ 			<File
+-				RelativePath=".\debug.h"
++				RelativePath=".\compilerdebug.h"
+ 				>
+ 			</File>
+ 			<File
+ 				RelativePath=".\DetectRecursion.h"
+ 				>
+ 			</File>
+ 			<File
+ 				RelativePath=".\Diagnostics.h"
new file mode 100644
--- /dev/null
+++ b/gfx/angle/angle-renaming-preprocessor-diagonostics.patch
@@ -0,0 +1,6 @@
+# HG changeset patch
+# Parent 2cd2556d673d90f79dc29a78a927d2a38b92e14b
+
+diff --git a/gfx/angle/src/compiler/preprocessor/new/Diagnostics.cpp b/gfx/angle/src/compiler/preprocessor/new/PreprocessorDiagnostics.cpp
+rename from gfx/angle/src/compiler/preprocessor/new/Diagnostics.cpp
+rename to gfx/angle/src/compiler/preprocessor/new/PreprocessorDiagnostics.cpp
new file mode 100644
--- /dev/null
+++ b/gfx/angle/angle-renaming-preprocessor-directivehandler.patch
@@ -0,0 +1,6 @@
+# HG changeset patch
+# Parent a98ccd93f2ab811670cb50edca50f6381274a345
+
+diff --git a/gfx/angle/src/compiler/preprocessor/new/DirectiveHandler.cpp b/gfx/angle/src/compiler/preprocessor/new/PreprocessorDirectiveHandler.cpp
+rename from gfx/angle/src/compiler/preprocessor/new/DirectiveHandler.cpp
+rename to gfx/angle/src/compiler/preprocessor/new/PreprocessorDirectiveHandler.cpp
deleted file mode 100644
--- a/gfx/angle/angle-use-xmalloc.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-# HG changeset patch
-# Parent 93033f21b121382b50e5bc9787edf704d6906508
-diff --git a/gfx/angle/Makefile.in b/gfx/angle/Makefile.in
---- a/gfx/angle/Makefile.in
-+++ b/gfx/angle/Makefile.in
-@@ -129,16 +129,18 @@ CSRCS   = \
- 	$(NULL)
- 
- DEFINES += -DANGLE_USE_NSPR -DANGLE_BUILD -DCOMPILER_IMPLEMENTATION
- 
- #these defines are from ANGLE's build_angle.gyp
- DEFINES += -DANGLE_DISABLE_TRACE
- DEFINES += -DANGLE_COMPILE_OPTIMIZATION_LEVEL=D3DCOMPILE_OPTIMIZATION_LEVEL0
- 
-+EXTRA_DSO_LDOPTS = $(MOZALLOC_LIB)
-+
- ifdef MOZ_ANGLE
- 
- # libEGL depends on (links against!) libGLESv2!
- DIRS = src/libGLESv2 src/libEGL
- 
- libs::
- 	expand "$(MOZ_D3DX9_CAB)" -F:$(MOZ_D3DX9_DLL) "$(DIST)/bin"
- 	expand "$(MOZ_D3DCOMPILER_CAB)" -F:$(MOZ_D3DCOMPILER_DLL) "$(DIST)/bin"
-diff --git a/gfx/angle/src/compiler/preprocessor/atom.c b/gfx/angle/src/compiler/preprocessor/atom.c
---- a/gfx/angle/src/compiler/preprocessor/atom.c
-+++ b/gfx/angle/src/compiler/preprocessor/atom.c
-@@ -48,16 +48,18 @@ NVIDIA HAS BEEN ADVISED OF THE POSSIBILI
- 
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- 
- #include "compiler/compilerdebug.h"
- #include "compiler/preprocessor/slglobals.h"
- 
-+#include "../../../../../memory/mozalloc/mozalloc.h"
-+
- #undef malloc
- #undef realloc
- #undef free
- 
- ///////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////// String table: //////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////////////////////
- 
-@@ -318,31 +320,23 @@ static int AddAtomFixed(AtomTable *atabl
-  */
- 
- static int GrowAtomTable(AtomTable *atable, int size)
- {
-     int *newmap, *newrev;
- 
-     if (atable->size < size) {
-         if (atable->amap) {
--            newmap = realloc(atable->amap, sizeof(int)*size);
--            newrev = realloc(atable->arev, sizeof(int)*size);
-+            newmap = moz_xrealloc(atable->amap, sizeof(int)*size);
-+            newrev = moz_xrealloc(atable->arev, sizeof(int)*size);
-         } else {
--            newmap = malloc(sizeof(int)*size);
--            newrev = malloc(sizeof(int)*size);
-+            newmap = moz_xmalloc(sizeof(int)*size);
-+            newrev = moz_xmalloc(sizeof(int)*size);
-             atable->size = 0;
-         }
--        if (!newmap || !newrev) {
--            /* failed to grow -- error */
--            if (newmap)
--                atable->amap = newmap;
--            if (newrev)
--                atable->arev = newrev;
--            return -1;
--        }
-         memset(&newmap[atable->size], 0, (size - atable->size) * sizeof(int));
-         memset(&newrev[atable->size], 0, (size - atable->size) * sizeof(int));
-         atable->amap = newmap;
-         atable->arev = newrev;
-         atable->size = size;
-     }
-     return 0;
- } // GrowAtomTable
-diff --git a/gfx/angle/src/libEGL/Makefile.in b/gfx/angle/src/libEGL/Makefile.in
---- a/gfx/angle/src/libEGL/Makefile.in
-+++ b/gfx/angle/src/libEGL/Makefile.in
-@@ -153,8 +153,10 @@ RCFILE = $(srcdir)/libEGL.rc
- include $(topsrcdir)/config/rules.mk
- 
- EXTRA_DSO_LDOPTS = "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/d3d9.lib" \
-                    "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/dxguid.lib" \
- 		   "$(DIST)/lib/libGLESv2.lib" \
- 		   dwmapi.lib \
- 		   delayimp.lib \
- 		   /delayload:dwmapi.dll
-+
-+EXTRA_DSO_LDOPTS += $(MOZALLOC_LIB)
-diff --git a/gfx/angle/src/libGLESv2/Makefile.in b/gfx/angle/src/libGLESv2/Makefile.in
---- a/gfx/angle/src/libGLESv2/Makefile.in
-+++ b/gfx/angle/src/libGLESv2/Makefile.in
-@@ -162,8 +162,10 @@ CPPSRCS	+= \
- DEFFILE = $(srcdir)/libGLESv2.def
- RCFILE = $(srcdir)/libGLESv2.rc
- 
- include $(topsrcdir)/config/rules.mk
- 
- EXTRA_DSO_LDOPTS = "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/d3d9.lib" \
-                    "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/d3dx9.lib" \
- 		   "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/D3DCompiler.lib"
-+
-+EXTRA_DSO_LDOPTS += $(MOZALLOC_LIB)