Revert "Revert "Upgrade to 5.0.71.48"" DO NOT MERGE

This reverts commit f2e3994fa5148cc3d9946666f0b0596290192b0e,
and updates the x64 makefile properly so it doesn't break that
build.

FPIIM-449

Change-Id: Ib83e35bfbae6af627451c926a9650ec57c045605
(cherry picked from commit 109988c7ccb6f3fd1a58574fa3dfb88beaef6632)
diff --git a/build/symlink.gni b/build/symlink.gni
new file mode 100644
index 0000000..95a498d
--- /dev/null
+++ b/build/symlink.gni
@@ -0,0 +1,78 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Creates a symlink.
+# Args:
+#   source: Path to link to.
+#   output: Where to create the symlink.
+template("symlink") {
+  action(target_name) {
+    forward_variables_from(invoker,
+                           [
+                             "deps",
+                             "testonly",
+                             "visibility",
+                           ])
+    outputs = [
+      invoker.output,
+    ]
+    script = "//build/symlink.py"
+    args = [
+      "-f",
+      rebase_path(invoker.source, get_path_info(invoker.output, "dir")),
+      rebase_path(invoker.output, root_build_dir),
+    ]
+  }
+}
+
+# Creates a symlink from root_build_dir/target_name to |binary_label|. This rule
+# is meant to be used within if (current_toolchain == default_toolchain) blocks
+# and point to targets in the non-default toolchain.
+# Note that for executables, using a copy (as opposed to a symlink) does not
+# work when is_component_build=true, since dependent libraries are found via
+# relative location.
+#
+# Args:
+#   binary_label: Target that builds the file to symlink to. e.g.:
+#       ":$target_name($host_toolchain)".
+#   binary_output_name: The output_name set by the binary_label target
+#       (if applicable).
+#   output_name: Where to create the symlink
+#       (default="$root_out_dir/$binary_output_name").
+#
+# Example:
+#   if (current_toolchain == host_toolchain) {
+#     executable("foo") { ... }
+#   } else if (current_toolchain == default_toolchain) {
+#     binary_symlink("foo") {
+#       binary_label = ":foo($host_toolchain)"
+#     }
+#   }
+template("binary_symlink") {
+  symlink(target_name) {
+    forward_variables_from(invoker,
+                           [
+                             "output",
+                             "testonly",
+                             "visibility",
+                           ])
+    deps = [
+      invoker.binary_label,
+    ]
+
+    _out_dir = get_label_info(invoker.binary_label, "root_out_dir")
+    if (defined(invoker.binary_output_name)) {
+      _name = invoker.binary_output_name
+    } else {
+      _name = get_label_info(invoker.binary_label, "name")
+    }
+    source = "$_out_dir/$_name"
+
+    _output_name = _name
+    if (defined(invoker.output_name)) {
+      _output_name = invoker.output_name
+    }
+    output = "$root_out_dir/$_output_name"
+  }
+}