Import Cobalt 21.master.0.267507

Includes the following patches:
  https://cobalt-review.googlesource.com/c/cobalt/+/5630
    by devin.cai@mediatek.com
  https://cobalt-review.googlesource.com/c/cobalt/+/5710
    by p.mirgos@samsung.com
  https://cobalt-review.googlesource.com/c/cobalt/+/5730
    by lizhi.fan@samsung.com
diff --git a/src/starboard/evergreen/arm/hardfp/configuration_public.h b/src/starboard/evergreen/arm/hardfp/configuration_public.h
index b813c19..cdeafc9 100644
--- a/src/starboard/evergreen/arm/hardfp/configuration_public.h
+++ b/src/starboard/evergreen/arm/hardfp/configuration_public.h
@@ -163,7 +163,7 @@
 
 // Whether this platform has and should use an MMAP function to map physical
 // memory to the virtual address space.
-#if SB_API_VERSION < SB_MMAP_REQUIRED_VERSION
+#if SB_API_VERSION < 12
 #define SB_HAS_MMAP 1
 #endif
 
diff --git a/src/starboard/evergreen/arm/hardfp/gyp_configuration.py b/src/starboard/evergreen/arm/hardfp/gyp_configuration.py
index 467ce05..db3e2cb 100644
--- a/src/starboard/evergreen/arm/hardfp/gyp_configuration.py
+++ b/src/starboard/evergreen/arm/hardfp/gyp_configuration.py
@@ -22,4 +22,4 @@
 def CreatePlatformConfig():
   return parent_configuration.EvergreenArmConfiguration(
       'evergreen-arm-hardfp',
-      sabi_json_path='starboard/sabi/arm/hardfp/sabi.json')
+      sabi_json_path='starboard/sabi/arm/hardfp/sabi-v{sb_api_version}.json')
diff --git a/src/starboard/evergreen/arm/hardfp/sbversion/12/atomic_public.h b/src/starboard/evergreen/arm/hardfp/sbversion/12/atomic_public.h
new file mode 100644
index 0000000..7f66416
--- /dev/null
+++ b/src/starboard/evergreen/arm/hardfp/sbversion/12/atomic_public.h
@@ -0,0 +1,20 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef STARBOARD_EVERGREEN_ARM_HARDFP_SBVERSION_12_ATOMIC_PUBLIC_H_
+#define STARBOARD_EVERGREEN_ARM_HARDFP_SBVERSION_12_ATOMIC_PUBLIC_H_
+
+#include "starboard/evergreen/arm/hardfp/atomic_public.h"
+
+#endif  // STARBOARD_EVERGREEN_ARM_HARDFP_SBVERSION_12_ATOMIC_PUBLIC_H_
diff --git a/src/starboard/evergreen/arm/hardfp/sbversion/12/configuration_public.h b/src/starboard/evergreen/arm/hardfp/sbversion/12/configuration_public.h
new file mode 100644
index 0000000..4be69b0
--- /dev/null
+++ b/src/starboard/evergreen/arm/hardfp/sbversion/12/configuration_public.h
@@ -0,0 +1,26 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// The Starboard configuration for X86_64. Other devices will have
+// specific Starboard implementations.
+
+// Other source files should never include this header directly, but should
+// include the generic "starboard/configuration.h" instead.
+
+#ifndef STARBOARD_EVERGREEN_ARM_HARDFP_SBVERSION_12_CONFIGURATION_PUBLIC_H_
+#define STARBOARD_EVERGREEN_ARM_HARDFP_SBVERSION_12_CONFIGURATION_PUBLIC_H_
+
+#include "starboard/evergreen/arm/hardfp/configuration_public.h"
+
+#endif  // STARBOARD_EVERGREEN_ARM_HARDFP_SBVERSION_12_CONFIGURATION_PUBLIC_H_
diff --git a/src/starboard/evergreen/arm/hardfp/sbversion/12/gyp_configuration.gypi b/src/starboard/evergreen/arm/hardfp/sbversion/12/gyp_configuration.gypi
new file mode 100644
index 0000000..0c67bd5
--- /dev/null
+++ b/src/starboard/evergreen/arm/hardfp/sbversion/12/gyp_configuration.gypi
@@ -0,0 +1,42 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+
+{
+  'variables': {
+    'sb_target_platform': 'evergreen-arm-hardfp',
+  },
+  'target_defaults': {
+    'default_configuration': 'evergreen-arm-hardfp-sbversion-12_debug',
+    'configurations': {
+      'evergreen-arm-hardfp-sbversion-12_debug': {
+        'inherit_from': ['debug_base'],
+      },
+      'evergreen-arm-hardfp-sbversion-12_devel': {
+        'inherit_from': ['devel_base'],
+      },
+      'evergreen-arm-hardfp-sbversion-12_qa': {
+        'inherit_from': ['qa_base'],
+      },
+      'evergreen-arm-hardfp-sbversion-12_gold': {
+        'inherit_from': ['gold_base'],
+      },
+    }, # end of configurations
+  },
+  'includes': [
+    '<(DEPTH)/starboard/evergreen/arm/shared/gyp_configuration.gypi',
+  ],
+}
diff --git a/src/starboard/evergreen/arm/hardfp/sbversion/12/gyp_configuration.py b/src/starboard/evergreen/arm/hardfp/sbversion/12/gyp_configuration.py
new file mode 100644
index 0000000..6097401
--- /dev/null
+++ b/src/starboard/evergreen/arm/hardfp/sbversion/12/gyp_configuration.py
@@ -0,0 +1,25 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+"""Starboard evergreen-arm-hardfp platform configuration for gyp_cobalt."""
+
+from starboard.evergreen.arm.shared import gyp_configuration as parent_configuration
+
+
+def CreatePlatformConfig():
+  return parent_configuration.EvergreenArmConfiguration(
+      'evergreen-arm-hardfp-sbversion-12',
+      sabi_json_path='starboard/sabi/arm/hardfp/sabi-v12.json')
diff --git a/src/starboard/evergreen/arm/hardfp/sbversion/12/starboard_platform.gyp b/src/starboard/evergreen/arm/hardfp/sbversion/12/starboard_platform.gyp
new file mode 100644
index 0000000..29566d2
--- /dev/null
+++ b/src/starboard/evergreen/arm/hardfp/sbversion/12/starboard_platform.gyp
@@ -0,0 +1,25 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+
+{
+  'includes': [
+    # Note that we are 'includes'ing a 'gyp' file, not a 'gypi' file.  The idea
+    # is that we just want this file to *be* the parent gyp file.
+    '<(DEPTH)/starboard/evergreen/arm/hardfp/starboard_platform.gyp',
+  ],
+}
+
diff --git a/src/starboard/evergreen/arm/hardfp/sbversion/12/thread_types_public.h b/src/starboard/evergreen/arm/hardfp/sbversion/12/thread_types_public.h
new file mode 100644
index 0000000..903d6bd
--- /dev/null
+++ b/src/starboard/evergreen/arm/hardfp/sbversion/12/thread_types_public.h
@@ -0,0 +1,23 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This file was initially generated by starboard/tools/create_derived_build.py,
+// though it may have been modified since its creation.
+
+#ifndef STARBOARD_EVERGREEN_ARM_HARDFP_SBVERSION_12_THREAD_TYPES_PUBLIC_H_
+#define STARBOARD_EVERGREEN_ARM_HARDFP_SBVERSION_12_THREAD_TYPES_PUBLIC_H_
+
+#include "starboard/evergreen/arm/hardfp/thread_types_public.h"
+
+#endif  // STARBOARD_EVERGREEN_ARM_HARDFP_SBVERSION_12_THREAD_TYPES_PUBLIC_H_
diff --git a/src/starboard/evergreen/arm/shared/gyp_configuration.py b/src/starboard/evergreen/arm/shared/gyp_configuration.py
index d442333..c6c67ed 100644
--- a/src/starboard/evergreen/arm/shared/gyp_configuration.py
+++ b/src/starboard/evergreen/arm/shared/gyp_configuration.py
@@ -35,7 +35,7 @@
                platform_name='evergreen-arm',
                asan_enabled_by_default=False,
                goma_supports_compiler=True,
-               sabi_json_path=None):
+               sabi_json_path='starboard/sabi/default/sabi.json'):
     # pylint: disable=useless-super-delegation
     super(EvergreenArmConfiguration,
           self).__init__(platform_name, asan_enabled_by_default,
@@ -43,10 +43,10 @@
     self.AppendApplicationConfigurationPath(os.path.dirname(__file__))
     self._host_toolchain = None
 
-  def GetTargetToolchain(self):
-    return self.GetHostToolchain()
+  def GetTargetToolchain(self, **kwargs):
+    return self.GetHostToolchain(**kwargs)
 
-  def GetHostToolchain(self):
+  def GetHostToolchain(self, **kwargs):
     if not self._host_toolchain:
       if not hasattr(self, 'host_compiler_environment'):
         self.host_compiler_environment = build.GetHostCompilerEnvironment(
@@ -84,7 +84,8 @@
     return filters
 
   def GetVariables(self, configuration):
-    variables = super(EvergreenArmConfiguration, self).GetVariables(configuration)
+    variables = super(EvergreenArmConfiguration,
+                      self).GetVariables(configuration)
     variables.update({
         'include_path_platform_deploy_gypi':
             'starboard/evergreen/arm/shared/platform_deploy.gypi',
diff --git a/src/starboard/evergreen/arm/softfp/configuration_public.h b/src/starboard/evergreen/arm/softfp/configuration_public.h
index 1743bba..b6ced7d 100644
--- a/src/starboard/evergreen/arm/softfp/configuration_public.h
+++ b/src/starboard/evergreen/arm/softfp/configuration_public.h
@@ -166,7 +166,7 @@
 
 // Whether this platform has and should use an MMAP function to map physical
 // memory to the virtual address space.
-#if SB_API_VERSION < SB_MMAP_REQUIRED_VERSION
+#if SB_API_VERSION < 12
 #define SB_HAS_MMAP 1
 #endif
 
diff --git a/src/starboard/evergreen/arm/softfp/gyp_configuration.py b/src/starboard/evergreen/arm/softfp/gyp_configuration.py
index 8c649b9..46418c1 100644
--- a/src/starboard/evergreen/arm/softfp/gyp_configuration.py
+++ b/src/starboard/evergreen/arm/softfp/gyp_configuration.py
@@ -22,4 +22,4 @@
 def CreatePlatformConfig():
   return parent_configuration.EvergreenArmConfiguration(
       'evergreen-arm-softfp',
-      sabi_json_path='starboard/sabi/arm/softfp/sabi.json')
+      sabi_json_path='starboard/sabi/arm/softfp/sabi-v{sb_api_version}.json')
diff --git a/src/starboard/evergreen/arm/softfp/sbversion/12/atomic_public.h b/src/starboard/evergreen/arm/softfp/sbversion/12/atomic_public.h
new file mode 100644
index 0000000..d11da25
--- /dev/null
+++ b/src/starboard/evergreen/arm/softfp/sbversion/12/atomic_public.h
@@ -0,0 +1,20 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef STARBOARD_EVERGREEN_ARM_SOFTFP_SBVERSION_12_ATOMIC_PUBLIC_H_
+#define STARBOARD_EVERGREEN_ARM_SOFTFP_SBVERSION_12_ATOMIC_PUBLIC_H_
+
+#include "starboard/evergreen/arm/softfp/atomic_public.h"
+
+#endif  // STARBOARD_EVERGREEN_ARM_SOFTFP_SBVERSION_12_ATOMIC_PUBLIC_H_
diff --git a/src/starboard/evergreen/arm/softfp/sbversion/12/configuration_public.h b/src/starboard/evergreen/arm/softfp/sbversion/12/configuration_public.h
new file mode 100644
index 0000000..e4f45f4
--- /dev/null
+++ b/src/starboard/evergreen/arm/softfp/sbversion/12/configuration_public.h
@@ -0,0 +1,26 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// The Starboard configuration for X86_64. Other devices will have
+// specific Starboard implementations.
+
+// Other source files should never include this header directly, but should
+// include the generic "starboard/configuration.h" instead.
+
+#ifndef STARBOARD_EVERGREEN_ARM_SOFTFP_SBVERSION_12_CONFIGURATION_PUBLIC_H_
+#define STARBOARD_EVERGREEN_ARM_SOFTFP_SBVERSION_12_CONFIGURATION_PUBLIC_H_
+
+#include "starboard/evergreen/arm/softfp/configuration_public.h"
+
+#endif  // STARBOARD_EVERGREEN_ARM_SOFTFP_SBVERSION_12_CONFIGURATION_PUBLIC_H_
diff --git a/src/starboard/evergreen/arm/softfp/sbversion/12/gyp_configuration.gypi b/src/starboard/evergreen/arm/softfp/sbversion/12/gyp_configuration.gypi
new file mode 100644
index 0000000..d31f2b7
--- /dev/null
+++ b/src/starboard/evergreen/arm/softfp/sbversion/12/gyp_configuration.gypi
@@ -0,0 +1,42 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+
+{
+  'variables': {
+    'sb_target_platform': 'evergreen-arm-softfp',
+  },
+  'target_defaults': {
+    'default_configuration': 'evergreen-arm-softfp-sbversion-12_debug',
+    'configurations': {
+      'evergreen-arm-softfp-sbversion-12_debug': {
+        'inherit_from': ['debug_base'],
+      },
+      'evergreen-arm-softfp-sbversion-12_devel': {
+        'inherit_from': ['devel_base'],
+      },
+      'evergreen-arm-softfp-sbversion-12_qa': {
+        'inherit_from': ['qa_base'],
+      },
+      'evergreen-arm-softfp-sbversion-12_gold': {
+        'inherit_from': ['gold_base'],
+      },
+    }, # end of configurations
+  },
+  'includes': [
+    '<(DEPTH)/starboard/evergreen/arm/shared/gyp_configuration.gypi',
+  ],
+}
diff --git a/src/starboard/evergreen/arm/softfp/sbversion/12/gyp_configuration.py b/src/starboard/evergreen/arm/softfp/sbversion/12/gyp_configuration.py
new file mode 100644
index 0000000..f5d1aff
--- /dev/null
+++ b/src/starboard/evergreen/arm/softfp/sbversion/12/gyp_configuration.py
@@ -0,0 +1,25 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+"""Starboard evergreen-arm-softfp platform configuration for gyp_cobalt."""
+
+from starboard.evergreen.arm.shared import gyp_configuration as parent_configuration
+
+
+def CreatePlatformConfig():
+  return parent_configuration.EvergreenArmConfiguration(
+      'evergreen-arm-softfp-sbversion-12',
+      sabi_json_path='starboard/sabi/arm/softfp/sabi-v12.json')
diff --git a/src/starboard/evergreen/arm/softfp/sbversion/12/starboard_platform.gyp b/src/starboard/evergreen/arm/softfp/sbversion/12/starboard_platform.gyp
new file mode 100644
index 0000000..b4aa959
--- /dev/null
+++ b/src/starboard/evergreen/arm/softfp/sbversion/12/starboard_platform.gyp
@@ -0,0 +1,25 @@
+# Copyright 2019 The Cobalt Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file was initially generated by starboard/tools/create_derived_build.py,
+# though it may have been modified since its creation.
+
+{
+  'includes': [
+    # Note that we are 'includes'ing a 'gyp' file, not a 'gypi' file.  The idea
+    # is that we just want this file to *be* the parent gyp file.
+    '<(DEPTH)/starboard/evergreen/arm/softfp/starboard_platform.gyp',
+  ],
+}
+
diff --git a/src/starboard/evergreen/arm/softfp/sbversion/12/thread_types_public.h b/src/starboard/evergreen/arm/softfp/sbversion/12/thread_types_public.h
new file mode 100644
index 0000000..ac72552
--- /dev/null
+++ b/src/starboard/evergreen/arm/softfp/sbversion/12/thread_types_public.h
@@ -0,0 +1,23 @@
+// Copyright 2019 The Cobalt Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This file was initially generated by starboard/tools/create_derived_build.py,
+// though it may have been modified since its creation.
+
+#ifndef STARBOARD_EVERGREEN_ARM_SOFTFP_SBVERSION_12_THREAD_TYPES_PUBLIC_H_
+#define STARBOARD_EVERGREEN_ARM_SOFTFP_SBVERSION_12_THREAD_TYPES_PUBLIC_H_
+
+#include "starboard/evergreen/arm/softfp/thread_types_public.h"
+
+#endif  // STARBOARD_EVERGREEN_ARM_SOFTFP_SBVERSION_12_THREAD_TYPES_PUBLIC_H_