OS/2 package created from Mercurial tag FIREFOX_3_5_3_RELEASE.
Three changes were applied on top of the Mercurial codebase:
- Work around bugs of the GCC 3.3.5 compiler when compiling in XPConnect
  and XPCOM (bug 453705 and bug 451278). The content of these patches is
  appended below.
- Change the build configuration so that a real Hg ID is given in
  about:buildconfig.

Support for the new downloadable font feature (also known as @font-face) has
not been implemented yet. HTML5 <audio> and <video> is now supported.

Peter Weilbacher <mozilla@Weilbacher.org>, 2009-09-09

================================================================================
[OS/2] Bug 453705: workaround to fix builds break when compiling dom_quickstubs.cpp

diff --git a/js/src/xpconnect/src/qsgen.py b/js/src/xpconnect/src/qsgen.py
--- a/js/src/xpconnect/src/qsgen.py
+++ b/js/src/xpconnect/src/qsgen.py
@@ -478,6 +478,12 @@
                 "XPCVariant::newVariant(ccx, ${argVal})));\n"
                 "    if (!${name})\n"
                 "        return JS_FALSE;\n")
+            if os.name == 'os2': # Workaround for GCC 3.3.x bug.
+                template = (
+                    "    nsCOMPtr<nsIVariant> ${name}("
+                    "XPCVariant::newVariant(ccx, ${argVal}));\n"
+                    "    if (!${name})\n"
+                    "        return JS_FALSE;\n")
             f.write(substitute(template, params))
             return rvdeclared
         elif type.name == 'nsIAtom':
# HG changeset patch
# User Peter Weilbacher <mozilla@weilbacher.org>
# Date 1219360007 -10800
# Node ID 6cf68fab7f3c45c35ef3a710c602398f66a0be63
# Parent  73967cc9e4ee07b66a5a3f9a35958027a51507d5
Bug 451278: work around GCC 3.3 bug that breaks building on OS/2

diff --git a/xpcom/string/public/nsTString.h b/xpcom/string/public/nsTString.h
--- a/xpcom/string/public/nsTString.h
+++ b/xpcom/string/public/nsTString.h
@@ -444,9 +444,14 @@
          *        the length of the string already contained in the buffer
          */
 
+#ifdef XP_OS2 /* Workaround for GCC 3.3.x bug. */
+      nsTFixedString_CharT( char_type* data, size_type storageSize ) NS_COM;
+      nsTFixedString_CharT( char_type* data, size_type storageSize, size_type length ) NS_COM;
+#else
       NS_COM nsTFixedString_CharT( char_type* data, size_type storageSize );
 
       NS_COM nsTFixedString_CharT( char_type* data, size_type storageSize, size_type length );
+#endif
 
         // |operator=| does not inherit, so we must define our own
       self_type& operator=( char_type c )                                                       { Assign(c);        return *this; }
diff --git a/xpcom/string/public/nsTSubstring.h b/xpcom/string/public/nsTSubstring.h
--- a/xpcom/string/public/nsTSubstring.h
+++ b/xpcom/string/public/nsTSubstring.h
@@ -496,7 +496,11 @@
          * this is public to support automatic conversion of tuple to string
          * base type, which helps avoid converting to nsTAString.
          */
+#ifdef XP_OS2 /* Workaround for GCC 3.3.x bug. */
+      nsTSubstring_CharT(const substring_tuple_type& tuple) NS_COM;
+#else
       NS_COM nsTSubstring_CharT(const substring_tuple_type& tuple);
+#endif
 
         /**
          * allows for direct initialization of a nsTSubstring object. 
@@ -522,7 +526,11 @@
       PRUint32    mFlags;
 
         // default initialization 
+#ifdef XP_OS2 /* Workaround for GCC 3.3.x bug. */
+      nsTSubstring_CharT() NS_COM;
+#else
       NS_COM nsTSubstring_CharT();
+#endif
 
         // version of constructor that leaves mData and mLength uninitialized
       explicit
@@ -530,7 +538,11 @@
 
         // copy-constructor, constructs as dependent on given object
         // (NOTE: this is for internal use only)
+#ifdef XP_OS2 /* Workaround for GCC 3.3.x bug. */
+      nsTSubstring_CharT( const self_type& str ) NS_COM;
+#else
       NS_COM nsTSubstring_CharT( const self_type& str );
+#endif
 
         /**
          * this function releases mData and does not change the value of
