diff --git a/mods/android/bionic/libc/include/uchar.h b/mods/android/bionic/libc/include/uchar.h
new file mode 100644
index 0000000..a0289f1
--- /dev/null
+++ b/mods/android/bionic/libc/include/uchar.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _UCHAR_H_
+#define _UCHAR_H_
+
+#include <sys/cdefs.h>
+#include <wchar.h>
+
+__BEGIN_DECLS
+
+// ARC MOD BEGIN UPSTREAM bionic-fix-char16-definition
+#if !defined(__cplusplus) && __STDC_VERSION__ >= 201112L
+typedef __CHAR16_TYPE__ char16_t;
+typedef __CHAR32_TYPE__ char32_t;
+#endif
+// ARC MOD END UPSTREAM
+#define __STD_UTF_16__ 1
+#define __STD_UTF_32__ 1
+
+size_t c16rtomb(char* __restrict, char16_t, mbstate_t* __restrict);
+size_t c32rtomb(char* __restrict, char32_t, mbstate_t* __restrict);
+size_t mbrtoc16(char16_t* __restrict,
+                const char* __restrict,
+                size_t,
+                mbstate_t* __restrict);
+size_t mbrtoc32(char32_t* __restrict,
+                const char* __restrict,
+                size_t,
+                mbstate_t* __restrict);
+
+__END_DECLS
+
+#endif /* _UCHAR_H_ */
diff --git a/mods/chromium-ppapi/config.py b/mods/chromium-ppapi/config.py
index 2970a5e..4231ed5 100644
--- a/mods/chromium-ppapi/config.py
+++ b/mods/chromium-ppapi/config.py
@@ -54,7 +54,9 @@
   # generation and later phases.
   n.rule(rule_name,
          command=('(' + ' '.join(gen_command) + ')' +
-                  ' && touch $out.tmp && mv $out.tmp $out'),
+                  ' && touch $out.tmp && mv $out.tmp $out' +
+                  ' && printf "%s: %s" $out "$in" > $out.d'),
+         depfile='$out.d',
          description=rule_name + ' $out')
 
   idls = n.find_all_files(api_dir, '.idl', use_staging=False)
diff --git a/src/build/DEPS.chrome b/src/build/DEPS.chrome
index 3c1e66a..a9a495f 100644
--- a/src/build/DEPS.chrome
+++ b/src/build/DEPS.chrome
@@ -1 +1 @@
-330591
+332162
diff --git a/src/build/DEPS.naclsdk b/src/build/DEPS.naclsdk
index b41a8e2..cbb657b 100644
--- a/src/build/DEPS.naclsdk
+++ b/src/build/DEPS.naclsdk
@@ -41,49 +41,6 @@
       "archives": [
         {
           "checksum": {
-            "sha1": "7574819c9f07f8c8e939180d6eb4bc076cf924a8"
-          },
-          "host_os": "all",
-          "size": 75915941,
-          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/37.0.2062.94/naclports.tar.bz2"
-        },
-        {
-          "checksum": {
-            "sha1": "98e20f1150bb4b9fcf35ceea89bf0a4d3734f02f"
-          },
-          "host_os": "linux",
-          "size": 350765766,
-          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/37.0.2062.94/naclsdk_linux.tar.bz2"
-        },
-        {
-          "checksum": {
-            "sha1": "1577b3e7e9a59a3bc307b1fc1f745c7ffa6793c5"
-          },
-          "host_os": "mac",
-          "size": 296872323,
-          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/37.0.2062.94/naclsdk_mac.tar.bz2"
-        },
-        {
-          "checksum": {
-            "sha1": "248243b95f509f7d1ecddc3041951c2fc09508a6"
-          },
-          "host_os": "win",
-          "size": 332414690,
-          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/37.0.2062.94/naclsdk_win.tar.bz2"
-        }
-      ],
-      "description": "Chrome 37 bundle. Chrome revision: 290621. NaCl revision: 55a8716",
-      "name": "pepper_37",
-      "recommended": "no",
-      "repath": "pepper_37",
-      "revision": 290621,
-      "stability": "post_stable",
-      "version": 37
-    },
-    {
-      "archives": [
-        {
-          "checksum": {
             "sha1": "e851b20346337f208dc010bbdd933d03f833bc34"
           },
           "host_os": "all",
@@ -299,42 +256,42 @@
       "archives": [
         {
           "checksum": {
-            "sha1": "d8f464c08e4db0479cf82a29a8c6890e151e23f3"
+            "sha1": "61b6c9758a458ef3d038d06645391fee96a5a0a3"
           },
           "host_os": "all",
-          "size": 78016465,
-          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/43.0.2357.65/naclports.tar.bz2"
+          "size": 78017028,
+          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/43.0.2357.81/naclports.tar.bz2"
         },
         {
           "checksum": {
-            "sha1": "95346c47e2430909be8f7235eb4cc3cddbc61009"
+            "sha1": "751fa8088d9ca6ce0f5c95071efaec5dce379d9d"
           },
           "host_os": "linux",
-          "size": 364389676,
-          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/43.0.2357.65/naclsdk_linux.tar.bz2"
+          "size": 364379974,
+          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/43.0.2357.81/naclsdk_linux.tar.bz2"
         },
         {
           "checksum": {
-            "sha1": "d7f3c2d1739a4c181b931c96fcc34db0cfcf3c07"
+            "sha1": "626f74fbea644b056086fbe038340c6ba261ad37"
           },
           "host_os": "mac",
-          "size": 357686692,
-          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/43.0.2357.65/naclsdk_mac.tar.bz2"
+          "size": 357669712,
+          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/43.0.2357.81/naclsdk_mac.tar.bz2"
         },
         {
           "checksum": {
-            "sha1": "a6f5043eef32d3e42827e941294866d103faad67"
+            "sha1": "3c6807f47703d70c45283ae27f5b6f9c69465e97"
           },
           "host_os": "win",
-          "size": 359641717,
-          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/43.0.2357.65/naclsdk_win.tar.bz2"
+          "size": 359639375,
+          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/43.0.2357.81/naclsdk_win.tar.bz2"
         }
       ],
-      "description": "Chrome 43 bundle. Chrome revision: 385. NaCl revision: bd095c3ad5f1f25a9c6f44b7f38cec89383a5c33",
+      "description": "Chrome 43 bundle. Chrome revision: 434. NaCl revision: bd095c3ad5f1f25a9c6f44b7f38cec89383a5c33",
       "name": "pepper_43",
       "recommended": "yes",
       "repath": "pepper_43",
-      "revision": 385,
+      "revision": 434,
       "stability": "stable",
       "version": 43
     },
@@ -342,42 +299,85 @@
       "archives": [
         {
           "checksum": {
-            "sha1": "9ab2bafffa2eeaca348308223fb36af05ac0bbbd"
+            "sha1": "b5ffe1cc4e3ea8f898771545612e693a6b9d6da5"
           },
           "host_os": "all",
-          "size": 77571079,
-          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/trunk.330503/naclports.tar.bz2"
+          "size": 77796366,
+          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/44.0.2403.18/naclports.tar.bz2"
         },
         {
           "checksum": {
-            "sha1": "12a50dfa547a4c5367a5af8a4ae2f595626aa79d"
+            "sha1": "649971471638a71bc266e385f2d19f2e4650ed0e"
           },
           "host_os": "linux",
-          "size": 364721471,
-          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/trunk.330503/naclsdk_linux.tar.bz2"
+          "size": 364133812,
+          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/44.0.2403.18/naclsdk_linux.tar.bz2"
         },
         {
           "checksum": {
-            "sha1": "3e73af15961761ea7f5cb7ae198fb85b85a36475"
+            "sha1": "bac980d11a1a9b13a0b388f63404783778292e71"
           },
           "host_os": "mac",
-          "size": 354199133,
-          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/trunk.330503/naclsdk_mac.tar.bz2"
+          "size": 354521007,
+          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/44.0.2403.18/naclsdk_mac.tar.bz2"
         },
         {
           "checksum": {
-            "sha1": "cb350b447f2119b8b963f68c9b27e9c82964d88f"
+            "sha1": "429dbecb1c19a98246ff81ed33f8d48e7cb318aa"
           },
           "host_os": "win",
-          "size": 356500620,
-          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/trunk.330503/naclsdk_win.tar.bz2"
+          "size": 356566484,
+          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/44.0.2403.18/naclsdk_win.tar.bz2"
         }
       ],
-      "description": "Chrome 45 bundle. Chrome revision: 330503. NaCl revision: 862ca265aa1fdcabe8b3ab518251381bfbf48468",
+      "description": "Chrome 44 bundle. Chrome revision: 89. NaCl revision: 862ca265aa1fdcabe8b3ab518251381bfbf48468",
+      "name": "pepper_44",
+      "recommended": "no",
+      "repath": "pepper_44",
+      "revision": 89,
+      "stability": "beta",
+      "version": 44
+    },
+    {
+      "archives": [
+        {
+          "checksum": {
+            "sha1": "f301ddc3875c3a87af2ddac7106e236b1cd13c76"
+          },
+          "host_os": "all",
+          "size": 77571501,
+          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/trunk.332141/naclports.tar.bz2"
+        },
+        {
+          "checksum": {
+            "sha1": "00b82b26f2c26182f41ae15f9b427ad31bf01fe3"
+          },
+          "host_os": "linux",
+          "size": 364328542,
+          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/trunk.332141/naclsdk_linux.tar.bz2"
+        },
+        {
+          "checksum": {
+            "sha1": "f24ff4c26097d6a955917050e9ea5373eb22adad"
+          },
+          "host_os": "mac",
+          "size": 353982914,
+          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/trunk.332141/naclsdk_mac.tar.bz2"
+        },
+        {
+          "checksum": {
+            "sha1": "bb8a9386af2d7ffab145e91a0baea092c1076aee"
+          },
+          "host_os": "win",
+          "size": 355571951,
+          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/trunk.332141/naclsdk_win.tar.bz2"
+        }
+      ],
+      "description": "Chrome 45 bundle. Chrome revision: 332141. NaCl revision: ec2d51e124a58435534985710f421145d10b093e",
       "name": "pepper_canary",
       "recommended": "no",
       "repath": "pepper_45",
-      "revision": 330503,
+      "revision": 332141,
       "stability": "canary",
       "version": 45
     },
@@ -385,18 +385,18 @@
       "archives": [
         {
           "checksum": {
-            "sha1": "3b8cba08f2e298febab39dfeb2736310fa472160"
+            "sha1": "b06dc379a2a929b3dc15eb3b2f11c63a4b3a8aea"
           },
           "host_os": "linux",
-          "size": 417287324,
-          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/trunk.330508/naclsdk_bionic.tar.bz2"
+          "size": 416722073,
+          "url": "https://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/trunk.332145/naclsdk_bionic.tar.bz2"
         }
       ],
-      "description": "Chrome 45 bundle. Chrome revision: 330508. NaCl revision: 862ca265aa1fdcabe8b3ab518251381bfbf48468",
+      "description": "Chrome 45 bundle. Chrome revision: 332145. NaCl revision: ec2d51e124a58435534985710f421145d10b093e",
       "name": "bionic_canary",
       "recommended": "no",
       "repath": "pepper_45",
-      "revision": 330508,
+      "revision": 332145,
       "stability": "canary",
       "version": 45
     }
diff --git a/src/build/build_options.py b/src/build/build_options.py
index 2b6bd41..8fdc9b9 100644
--- a/src/build/build_options.py
+++ b/src/build/build_options.py
@@ -108,7 +108,7 @@
     self._goma_dir = None
     self._system_packages = []
     self._values = {}
-    self.parse([], read_defaults_from_file=False)
+    self.parsed = False
 
   def __getattr__(self, name):
     """Provides getters for values originated from the command line options.
@@ -466,6 +466,8 @@
       parser.print_help()
       print '\n', error
       return -1
+
+    self.parsed = True
     return 0
 
   def _check_args(self, args):
@@ -589,4 +591,29 @@
   def get_configure_options_file(self):
     return os.path.join('out', 'configure.options')
 
-OPTIONS = _Options()
+  def check_access(self, name):
+    """Called by AccessControlProxy to check attribute access."""
+    if (not self.parsed and
+        name not in ('parse', 'parsed', 'parse_configure_file')):
+      raise AttributeError(
+          'Attempted to access uninitialized OPTIONS values. Please consider '
+          'calling OPTIONS.parse_configure_file() in the very beginning of '
+          'your script.')
+
+
+class _AccessControlProxy(object):
+  """Wraps an arbitrary object to add attribute access check."""
+
+  __slots__ = ['__target', '__check_access']
+
+  def __init__(self, target, check_access):
+    self.__target = target
+    self.__check_access = check_access
+
+  def __getattr__(self, name):
+    self.__check_access(name)
+    return getattr(self.__target, name)
+
+
+_real_options = _Options()
+OPTIONS = _AccessControlProxy(_real_options, _real_options.check_access)
diff --git a/src/build/make_table_of_contents.py b/src/build/make_table_of_contents.py
index d500e42..7dc3962 100755
--- a/src/build/make_table_of_contents.py
+++ b/src/build/make_table_of_contents.py
@@ -18,6 +18,7 @@
 import subprocess
 import sys
 
+from build_options import OPTIONS
 import toolchain
 from util import file_util
 
@@ -58,6 +59,8 @@
 
 
 def main(args):
+  OPTIONS.parse_configure_file()
+
   if len(args) != 3:
     return -1
 
diff --git a/src/build/ninja_generator.py b/src/build/ninja_generator.py
index e4487f3..e513eb1 100644
--- a/src/build/ninja_generator.py
+++ b/src/build/ninja_generator.py
@@ -1298,7 +1298,7 @@
     return ('$commonflags ' +
             CNinjaGenerator.get_archasmflags() +
             '-pthread -Wall ' + CNinjaGenerator._get_debug_cflags() +
-            '-DANDROID '
+            '-DANDROID -DANDROID_SMP=1 '
             # GCC sometimes predefines the _FORTIFY_SOURCE macro which is
             # not compatible with our function wrapping system. Undefine
             # the macro to turn off the feature. (crbug.com/226930)
@@ -1411,7 +1411,8 @@
 
   @staticmethod
   def get_hostasmflags():
-    return '-DHAVE_ARC_HOST ' + CNinjaGenerator.get_targetflags()
+    return ('-DHAVE_ARC_HOST -DANDROID_SMP=1 ' +
+            CNinjaGenerator.get_targetflags())
 
   @staticmethod
   def get_hostcflags():
diff --git a/src/build/prep_launch_chrome_test.py b/src/build/prep_launch_chrome_test.py
index c8bfcc2..3d2b5b9 100755
--- a/src/build/prep_launch_chrome_test.py
+++ b/src/build/prep_launch_chrome_test.py
@@ -7,6 +7,7 @@
 
 import unittest
 
+from build_options import OPTIONS
 import launch_chrome_options
 
 import prep_launch_chrome
@@ -14,6 +15,9 @@
 
 class PrepLaunchChromeTest(unittest.TestCase):
 
+  def setUp(self):
+    OPTIONS.parse([])
+
   def metadata_from_command_line(self, command):
     args = launch_chrome_options.parse_args(command.split(' '))
     return (prep_launch_chrome.
diff --git a/src/build/run_integration_tests_test.py b/src/build/run_integration_tests_test.py
index 0dc9498..038107e 100755
--- a/src/build/run_integration_tests_test.py
+++ b/src/build/run_integration_tests_test.py
@@ -387,7 +387,8 @@
 # TODO(lpique): Look into making them work without stubbing them out.
 @patch('apk_to_crx.build_crx', _stub_return_none)
 @patch('prep_launch_chrome.update_shell_command', _stub_return_none)
-@patch('build_options.OPTIONS.parse_configure_file', _stub_parse_configure_file)
+@patch('build_options._real_options.parse_configure_file',
+       _stub_parse_configure_file)
 # The unittest files may not be created yet.
 @patch('util.test.unittest_util.get_all_tests', lambda: [])
 class RunIntegrationTestsSlowTest(_RunIntegrationTestsTestBase):
@@ -450,7 +451,8 @@
 # TODO(lpique): Look into making them work without stubbing them out.
 @patch('apk_to_crx.build_crx', _stub_return_none)
 @patch('prep_launch_chrome.update_shell_command', _stub_return_none)
-@patch('build_options.OPTIONS.parse_configure_file', _stub_parse_configure_file)
+@patch('build_options._real_options.parse_configure_file',
+       _stub_parse_configure_file)
 # The unittest files may not be created yet.
 @patch('util.test.unittest_util.get_all_tests', lambda: [])
 # These tests run faster by limiting the number of tests constructed at startup
diff --git a/src/build/util/test/suite_runner_config_test.py b/src/build/util/test/suite_runner_config_test.py
index 9590d5d..24d9bf6 100755
--- a/src/build/util/test/suite_runner_config_test.py
+++ b/src/build/util/test/suite_runner_config_test.py
@@ -7,6 +7,7 @@
 import collections
 import unittest
 
+from build_options import OPTIONS
 from util.test import suite_runner_config
 from util.test.suite_runner import SuiteRunnerBase
 from util.test.suite_runner_config_flags import _ExclusiveFlag
@@ -221,6 +222,9 @@
       },
   }))
 
+  def setUp(self):
+    OPTIONS.parse([])
+
   def _make_suite_runner(self, name):
     return SuiteRunnerBase(
         name,
diff --git a/third_party/chromium-ppapi b/third_party/chromium-ppapi
index 6cdb692..2a4d4cc 160000
--- a/third_party/chromium-ppapi
+++ b/third_party/chromium-ppapi
@@ -1 +1 @@
-Subproject commit 6cdb69279cb4f83fd8d1f31f58eb0edf44d2bec3
+Subproject commit 2a4d4cc8e85d7b94388732f09261f258ed832603
diff --git a/third_party/native_client b/third_party/native_client
index 862ca26..ec2d51e 160000
--- a/third_party/native_client
+++ b/third_party/native_client
@@ -1 +1 @@
-Subproject commit 862ca265aa1fdcabe8b3ab518251381bfbf48468
+Subproject commit ec2d51e124a58435534985710f421145d10b093e
diff --git a/third_party/tools/depot_tools b/third_party/tools/depot_tools
index 79e43ff..e5d984b 160000
--- a/third_party/tools/depot_tools
+++ b/third_party/tools/depot_tools
@@ -1 +1 @@
-Subproject commit 79e43ffaad95119e9d4ba480a45a37832e43e320
+Subproject commit e5d984b90aad82e180780d95d07754aaf09ead13
