[CI20] Refactor starboard/creator for 16.136005

Refactoring is based on starboard/linux

Change-Id: I0578f57c2fe0cd5f0145b0f902470d60aef29e0a
diff --git a/src/starboard/contrib/creator/README.md b/src/starboard/contrib/creator/README.md
index b1a38f6..f6f57f0 100644
--- a/src/starboard/contrib/creator/README.md
+++ b/src/starboard/contrib/creator/README.md
@@ -1,6 +1,6 @@
 # MIPS support
 
-starboard/creator directory contains port of Cobalt for Creator CI20 platform:
+starboard/contrib/creator directory contains port of Cobalt for Creator CI20 platform:
 https://creatordev.io/ci20.html
 
 
diff --git a/src/starboard/contrib/creator/ci20x11/gcc/4.9/compiler_flags.gypi b/src/starboard/contrib/creator/ci20x11/gcc/4.9/compiler_flags.gypi
index 2e7df1d..b782944 100644
--- a/src/starboard/contrib/creator/ci20x11/gcc/4.9/compiler_flags.gypi
+++ b/src/starboard/contrib/creator/ci20x11/gcc/4.9/compiler_flags.gypi
@@ -72,6 +72,8 @@
       '-Wno-narrowing',
       # Do not remove null this checks.
       '-fno-delete-null-pointer-checks',
+      '-Wno-unused-result',
+      '-Wno-unknown-pragmas',
     ],
     'conditions': [
       ['cobalt_fastbuild==0', {
diff --git a/src/starboard/contrib/creator/ci20x11/gcc/4.9/gyp_configuration.py b/src/starboard/contrib/creator/ci20x11/gcc/4.9/gyp_configuration.py
index e20b9f7..be4a5d9 100644
--- a/src/starboard/contrib/creator/ci20x11/gcc/4.9/gyp_configuration.py
+++ b/src/starboard/contrib/creator/ci20x11/gcc/4.9/gyp_configuration.py
@@ -11,19 +11,14 @@
 # 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.
-"""Starboard Creator CI20 X11 gcc 4.9 platform configuration for gyp_cobalt."""
+"""Starboard Creator CI20 X11 gcc 4.9 platform configuration."""
 
-import logging
 import os
-import subprocess
 
-# pylint: disable=import-self,g-import-not-at-top
-import gyp_utils
-# Import the shared Linux platform configuration.
-from starboard.contrib.creator.shared import gyp_configuration
+from starboard.contrib.creator.shared import gyp_configuration as shared_configuration
 from starboard.tools.testing import test_filter
 
-class PlatformConfig(gyp_configuration.PlatformConfig):
+class PlatformConfig(shared_configuration.CreatorConfiguration):
   """Starboard Creator platform configuration."""
 
   def __init__(self, platform):
@@ -52,63 +47,22 @@
     return env_variables
 
   def GetTestFilters(self):
-    """Gets all tests to be excluded from a unit test run.
-
-    Returns:
-      A list of initialized TestFilter objects.
-    """
-    return [
-        # test is disabled on x64
-        test_filter.TestFilter(
-            'bindings_test', ('GlobalInterfaceBindingsTest.'
-                              'PropertiesAndOperationsAreOwnProperties')),
-        # tests miss the defined delay
-        test_filter.TestFilter(
-            'nplb', 'SbConditionVariableWaitTimedTest.SunnyDay'),
-        test_filter.TestFilter(
-            'nplb', 'SbConditionVariableWaitTimedTest.SunnyDayAutoInit'),
-        # tests sometimes miss the threshold of 10ms
-        test_filter.TestFilter(
-            'nplb', 'Semaphore.ThreadTakesWait_PutBeforeTimeExpires'),
-        test_filter.TestFilter(
-            'nplb', 'RWLock.HoldsLockForTime'),
-        # tests sometimes miss the threshold of 5ms
-        test_filter.TestFilter(
-            'nplb', 'Semaphore.ThreadTakesWait_TimeExpires'),
-        test_filter.TestFilter(
-            'nplb', 'SbWindowCreateTest.SunnyDayDefault'),
-        test_filter.TestFilter(
-            'nplb', 'SbWindowCreateTest.SunnyDayDefaultSet'),
-        test_filter.TestFilter(
-            'nplb', 'SbWindowGetPlatformHandleTest.SunnyDay'),
-        test_filter.TestFilter(
-            'nplb', 'SbWindowGetSizeTest.SunnyDay'),
-        test_filter.TestFilter(
-            'nplb', 'SbPlayerTest.SunnyDay'),
+    filters = super(PlatformConfig, self).GetTestFilters()
+    filters.extend([
         # test fails when built with GCC 4.9, issue was fixed in later versions of GCC
         test_filter.TestFilter(
             'nplb', 'SbAlignTest.AlignAsStackVariable'),
         # tests fail also on x86
         test_filter.TestFilter(
-            'nplb', 'SbSocketAddressTypes/SbSocketGetInterfaceAddressTest.SunnyDayDestination/1'),
+            'nplb', 'SbSystemSymbolizeTest.SunnyDay'),
         test_filter.TestFilter(
-            'nplb', 'SbSocketAddressTypes/SbSocketGetInterfaceAddressTest.SunnyDaySourceForDestination/1'),
+            'nplb', 'SbSystemGetStackTest.SunnyDayStackDirection'),
         test_filter.TestFilter(
-            'nplb', 'SbSocketAddressTypes/SbSocketGetInterfaceAddressTest.SunnyDaySourceNotLoopback/1'),
-        # there are no test cases in this test
+            'nplb', 'SbSystemGetStackTest.SunnyDay'),
         test_filter.TestFilter(
-            'starboard_platform_tests', test_filter.FILTER_ALL),
-        # there are no test cases in this test
-        test_filter.TestFilter(
-            'nplb_blitter_pixel_tests', test_filter.FILTER_ALL),
-        # test fails on x64 also
-        test_filter.TestFilter(
-            'net_unittests', 'HostResolverImplDnsTest.DnsTaskUnspec'),
-        # we don't have proper procedure for running this test
-        test_filter.TestFilter(
-            'web_platform_tests', test_filter.FILTER_ALL),
-    ]
-
+            'nplb', 'SbSystemGetStackTest.SunnyDayShortStack'),
+    ])
+    return filters
 
 def CreatePlatformConfig():
   try:
diff --git a/src/starboard/contrib/creator/ci20x11/gyp_configuration.gypi b/src/starboard/contrib/creator/ci20x11/gyp_configuration.gypi
index 312333e..18611fd 100644
--- a/src/starboard/contrib/creator/ci20x11/gyp_configuration.gypi
+++ b/src/starboard/contrib/creator/ci20x11/gyp_configuration.gypi
@@ -13,6 +13,9 @@
 # limitations under the License.
 
 {
+  'variables': {
+    'gl_type': 'system_gles2',
+  },
   'target_defaults': {
     'default_configuration': 'creator-ci20x11_debug',
     'configurations': {
@@ -33,6 +36,7 @@
 
   'includes': [
     'libraries.gypi',
+    '../shared/compiler_flags.gypi',
     '../shared/gyp_configuration.gypi',
   ],
 }
diff --git a/src/starboard/contrib/creator/ci20x11/gyp_configuration.py b/src/starboard/contrib/creator/ci20x11/gyp_configuration.py
index 09351b4..9268eeb 100644
--- a/src/starboard/contrib/creator/ci20x11/gyp_configuration.py
+++ b/src/starboard/contrib/creator/ci20x11/gyp_configuration.py
@@ -11,81 +11,45 @@
 # 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.
-"""Starboard Creator Ci20 X11 platform configuration for gyp_cobalt."""
+"""Starboard Creator Ci20 X11 platform configuration."""
 
-import logging
-import os
-import sys
+from starboard.contrib.creator.shared import gyp_configuration as shared_configuration
+from starboard.tools.toolchain import ar
+from starboard.tools.toolchain import bash
+from starboard.tools.toolchain import clang
+from starboard.tools.toolchain import clangxx
+from starboard.tools.toolchain import cp
+from starboard.tools.toolchain import touch
 
-import _env  # pylint: disable=unused-import
-# Import the shared Creator platform configuration.
-from starboard.contrib.creator.shared import gyp_configuration
-from starboard.tools.testing import test_filter
+class CreatorCI20X11Configuration(shared_configuration.CreatorConfiguration):
+  """Starboard Creator X11 platform configuration."""
 
-class PlatformConfig(gyp_configuration.PlatformConfig):
+  def __init__(self, platform_name="creator-ci20x11"):
+    super(CreatorCI20X11Configuration, self).__init__(platform_name)
 
-  def __init__(self, platform):
-    super(PlatformConfig, self).__init__(platform)
+  def GetTargetToolchain(self):
+    return self.GetHostToolchain()
 
-  def GetTestFilters(self):
-    """Gets all tests to be excluded from a unit test run.
+  def GetHostToolchain(self):
+    environment_variables = self.GetEnvironmentVariables()
+    cc_path = environment_variables['CC']
+    cxx_path = environment_variables['CXX']
 
-    Returns:
-      A list of initialized TestFilter objects.
-    """
     return [
-        # test is disabled on x64
-        test_filter.TestFilter(
-            'bindings_test', ('GlobalInterfaceBindingsTest.'
-                              'PropertiesAndOperationsAreOwnProperties')),
-        # tests sometimes miss the defined delay
-        test_filter.TestFilter(
-            'nplb', 'SbConditionVariableWaitTimedTest.SunnyDay'),
-        test_filter.TestFilter(
-            'nplb', 'SbConditionVariableWaitTimedTest.SunnyDayAutoInit'),
-        # tests sometimes miss the threshold of 10ms
-        test_filter.TestFilter(
-            'nplb', 'Semaphore.ThreadTakesWait_PutBeforeTimeExpires'),
-        test_filter.TestFilter(
-            'nplb', 'RWLock.HoldsLockForTime'),
-        # tests sometimes miss the threshold of 5ms
-        test_filter.TestFilter(
-            'nplb', 'Semaphore.ThreadTakesWait_TimeExpires'),
-        test_filter.TestFilter(
-            'nplb', 'SbWindowCreateTest.SunnyDayDefault'),
-        test_filter.TestFilter(
-            'nplb', 'SbWindowCreateTest.SunnyDayDefaultSet'),
-        test_filter.TestFilter(
-            'nplb', 'SbWindowGetPlatformHandleTest.SunnyDay'),
-        test_filter.TestFilter(
-            'nplb', 'SbWindowGetSizeTest.SunnyDay'),
-        test_filter.TestFilter(
-            'nplb', 'SbPlayerTest.SunnyDay'),
-        # tests fail also on x86
-        test_filter.TestFilter(
-            'nplb', 'SbSocketAddressTypes/SbSocketGetInterfaceAddressTest.SunnyDayDestination/1'),
-        test_filter.TestFilter(
-            'nplb', 'SbSocketAddressTypes/SbSocketGetInterfaceAddressTest.SunnyDaySourceForDestination/1'),
-        test_filter.TestFilter(
-            'nplb', 'SbSocketAddressTypes/SbSocketGetInterfaceAddressTest.SunnyDaySourceNotLoopback/1'),
-        # there are no test cases in this test
-        test_filter.TestFilter(
-            'starboard_platform_tests', test_filter.FILTER_ALL),
-        # there are no test cases in this test
-        test_filter.TestFilter(
-            'nplb_blitter_pixel_tests', test_filter.FILTER_ALL),
-        # test fails on x64 also
-        test_filter.TestFilter(
-            'net_unittests', 'HostResolverImplDnsTest.DnsTaskUnspec'),
-        # we don't have proper procedure for running this test
-        test_filter.TestFilter(
-            'web_platform_tests', test_filter.FILTER_ALL),
+        clang.CCompiler(path=cc_path),
+        clang.CxxCompiler(path=cxx_path),
+        clang.AssemblerWithCPreprocessor(path=cc_path),
+        ar.StaticThinLinker(),
+        ar.StaticLinker(),
+        clangxx.ExecutableLinker(path=cxx_path),
+        cp.Copy(),
+        touch.Stamp(),
+        bash.Shell(),
     ]
 
+  def GetTestFilters(self):
+    filters = super(CreatorCI20X11Configuration, self).GetTestFilters()
+    return filters
 
 def CreatePlatformConfig():
-  try:
-    return PlatformConfig("creator-ci20x11")
-  except RuntimeError as e:
-    logging.critical(e)
-    return None
+  return CreatorCI20X11Configuration()
diff --git a/src/starboard/contrib/creator/ci20x11/main.cc b/src/starboard/contrib/creator/ci20x11/main.cc
index 7086895..87df150 100644
--- a/src/starboard/contrib/creator/ci20x11/main.cc
+++ b/src/starboard/contrib/creator/ci20x11/main.cc
@@ -15,6 +15,7 @@
 #include "starboard/configuration.h"
 #include "starboard/shared/signal/crash_signals.h"
 #include "starboard/shared/signal/suspend_signals.h"
+#include "starboard/shared/starboard/link_receiver.h"
 #include "starboard/shared/x11/application_x11.h"
 
 extern "C" SB_EXPORT_PLATFORM int main(int argc, char** argv) {
@@ -22,7 +23,11 @@
   starboard::shared::signal::InstallCrashSignalHandlers();
   starboard::shared::signal::InstallSuspendSignalHandlers();
   starboard::shared::x11::ApplicationX11 application;
-  int result = application.Run(argc, argv);
+  int result = 0;
+  {
+    starboard::shared::starboard::LinkReceiver receiver(&application);
+    result = application.Run(argc, argv);
+  }
   starboard::shared::signal::UninstallSuspendSignalHandlers();
   starboard::shared::signal::UninstallCrashSignalHandlers();
   return result;
diff --git a/src/starboard/contrib/creator/ci20x11/starboard_platform.gyp b/src/starboard/contrib/creator/ci20x11/starboard_platform.gyp
index 3ae1a09..6d3b880 100644
--- a/src/starboard/contrib/creator/ci20x11/starboard_platform.gyp
+++ b/src/starboard/contrib/creator/ci20x11/starboard_platform.gyp
@@ -12,348 +12,28 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 {
+  'includes': [
+    'starboard_platform.gypi'
+  ],
   'targets': [
     {
-      'target_name': 'starboard_base_symbolize',
-      'type': 'static_library',
-      'sources': [
-        '<(DEPTH)/base/third_party/symbolize/demangle.cc',
-        '<(DEPTH)/base/third_party/symbolize/symbolize.cc',
-      ],
-    },
-    {
       'target_name': 'starboard_platform',
       'type': 'static_library',
       'sources': [
-        '<(DEPTH)/starboard/contrib/creator/ci20x11/atomic_public.h',
-        '<(DEPTH)/starboard/contrib/creator/ci20x11/configuration_public.h',
-        '<(DEPTH)/starboard/contrib/creator/ci20x11/main.cc',
-        '<(DEPTH)/starboard/contrib/creator/ci20x11/system_get_property.cc',
-        '<(DEPTH)/starboard/contrib/creator/shared/player_components_impl.cc',
-        '<(DEPTH)/starboard/linux/shared/atomic_public.h',
-        '<(DEPTH)/starboard/linux/shared/decode_target_internal.h',
-        '<(DEPTH)/starboard/linux/shared/decode_target_internal.cc',
-        '<(DEPTH)/starboard/linux/shared/system_get_connection_type.cc',
-        '<(DEPTH)/starboard/linux/shared/system_get_device_type.cc',
-        '<(DEPTH)/starboard/linux/shared/system_get_path.cc',
-        '<(DEPTH)/starboard/linux/shared/system_has_capability.cc',
-        '<(DEPTH)/starboard/shared/alsa/alsa_audio_sink_type.cc',
-        '<(DEPTH)/starboard/shared/alsa/alsa_audio_sink_type.h',
-        '<(DEPTH)/starboard/shared/alsa/alsa_util.cc',
-        '<(DEPTH)/starboard/shared/alsa/alsa_util.h',
-        '<(DEPTH)/starboard/shared/alsa/audio_sink_get_max_channels.cc',
-        '<(DEPTH)/starboard/shared/alsa/audio_sink_get_nearest_supported_sample_frequency.cc',
-        '<(DEPTH)/starboard/shared/alsa/audio_sink_is_audio_frame_storage_type_supported.cc',
-        '<(DEPTH)/starboard/shared/alsa/audio_sink_is_audio_sample_type_supported.cc',
-        '<(DEPTH)/starboard/shared/dlmalloc/memory_allocate_aligned_unchecked.cc',
-        '<(DEPTH)/starboard/shared/dlmalloc/memory_allocate_unchecked.cc',
-        '<(DEPTH)/starboard/shared/dlmalloc/memory_free.cc',
-        '<(DEPTH)/starboard/shared/dlmalloc/memory_free_aligned.cc',
-        '<(DEPTH)/starboard/shared/dlmalloc/memory_map.cc',
-        '<(DEPTH)/starboard/shared/dlmalloc/memory_reallocate_unchecked.cc',
-        '<(DEPTH)/starboard/shared/dlmalloc/memory_unmap.cc',
-        '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_audio_decoder.cc',
-        '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_audio_decoder.h',
-        '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_audio_resampler.cc',
-        '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_audio_resampler.h',
-        '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_common.cc',
-        '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_common.h',
-        '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_video_decoder.cc',
-        '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_video_decoder.h',
-        '<(DEPTH)/starboard/shared/gcc/atomic_gcc_public.h',
-        '<(DEPTH)/starboard/shared/iso/character_is_alphanumeric.cc',
-        '<(DEPTH)/starboard/shared/iso/character_is_digit.cc',
-        '<(DEPTH)/starboard/shared/iso/character_is_hex_digit.cc',
-        '<(DEPTH)/starboard/shared/iso/character_is_space.cc',
-        '<(DEPTH)/starboard/shared/iso/character_is_upper.cc',
-        '<(DEPTH)/starboard/shared/iso/character_to_lower.cc',
-        '<(DEPTH)/starboard/shared/iso/character_to_upper.cc',
-        '<(DEPTH)/starboard/shared/iso/directory_close.cc',
-        '<(DEPTH)/starboard/shared/iso/directory_get_next.cc',
-        '<(DEPTH)/starboard/shared/iso/directory_open.cc',
-        '<(DEPTH)/starboard/shared/iso/double_absolute.cc',
-        '<(DEPTH)/starboard/shared/iso/double_exponent.cc',
-        '<(DEPTH)/starboard/shared/iso/double_floor.cc',
-        '<(DEPTH)/starboard/shared/iso/double_is_finite.cc',
-        '<(DEPTH)/starboard/shared/iso/double_is_nan.cc',
-        '<(DEPTH)/starboard/shared/iso/memory_compare.cc',
-        '<(DEPTH)/starboard/shared/iso/memory_copy.cc',
-        '<(DEPTH)/starboard/shared/iso/memory_find_byte.cc',
-        '<(DEPTH)/starboard/shared/iso/memory_move.cc',
-        '<(DEPTH)/starboard/shared/iso/memory_set.cc',
-        '<(DEPTH)/starboard/shared/iso/string_compare.cc',
-        '<(DEPTH)/starboard/shared/iso/string_compare_all.cc',
-        '<(DEPTH)/starboard/shared/iso/string_find_character.cc',
-        '<(DEPTH)/starboard/shared/iso/string_find_last_character.cc',
-        '<(DEPTH)/starboard/shared/iso/string_find_string.cc',
-        '<(DEPTH)/starboard/shared/iso/string_get_length.cc',
-        '<(DEPTH)/starboard/shared/iso/string_get_length_wide.cc',
-        '<(DEPTH)/starboard/shared/iso/string_parse_double.cc',
-        '<(DEPTH)/starboard/shared/iso/string_parse_signed_integer.cc',
-        '<(DEPTH)/starboard/shared/iso/string_parse_uint64.cc',
-        '<(DEPTH)/starboard/shared/iso/string_parse_unsigned_integer.cc',
-        '<(DEPTH)/starboard/shared/iso/string_scan.cc',
-        '<(DEPTH)/starboard/shared/iso/system_binary_search.cc',
-        '<(DEPTH)/starboard/shared/iso/system_sort.cc',
-        '<(DEPTH)/starboard/shared/libevent/socket_waiter_add.cc',
-        '<(DEPTH)/starboard/shared/libevent/socket_waiter_create.cc',
-        '<(DEPTH)/starboard/shared/libevent/socket_waiter_destroy.cc',
-        '<(DEPTH)/starboard/shared/libevent/socket_waiter_internal.cc',
-        '<(DEPTH)/starboard/shared/libevent/socket_waiter_remove.cc',
-        '<(DEPTH)/starboard/shared/libevent/socket_waiter_wait.cc',
-        '<(DEPTH)/starboard/shared/libevent/socket_waiter_wait_timed.cc',
-        '<(DEPTH)/starboard/shared/libevent/socket_waiter_wake_up.cc',
-        '<(DEPTH)/starboard/shared/linux/byte_swap.cc',
-        '<(DEPTH)/starboard/shared/linux/get_home_directory.cc',
-        '<(DEPTH)/starboard/shared/linux/dev_input/dev_input.cc',
-        '<(DEPTH)/starboard/shared/linux/memory_get_stack_bounds.cc',
-        '<(DEPTH)/starboard/shared/linux/page_internal.cc',
-        '<(DEPTH)/starboard/shared/linux/socket_get_interface_address.cc',
-        '<(DEPTH)/starboard/shared/linux/system_get_random_data.cc',
-        '<(DEPTH)/starboard/shared/linux/system_get_stack.cc',
-        '<(DEPTH)/starboard/shared/linux/system_get_total_cpu_memory.cc',
-        '<(DEPTH)/starboard/shared/linux/system_get_used_cpu_memory.cc',
-        '<(DEPTH)/starboard/shared/linux/system_is_debugger_attached.cc',
-        '<(DEPTH)/starboard/shared/linux/system_symbolize.cc',
-        '<(DEPTH)/starboard/shared/linux/thread_get_id.cc',
-        '<(DEPTH)/starboard/shared/linux/thread_get_name.cc',
-        '<(DEPTH)/starboard/shared/linux/thread_set_name.cc',
-        '<(DEPTH)/starboard/shared/nouser/user_get_current.cc',
-        '<(DEPTH)/starboard/shared/nouser/user_get_property.cc',
-        '<(DEPTH)/starboard/shared/nouser/user_get_signed_in.cc',
-        '<(DEPTH)/starboard/shared/nouser/user_internal.cc',
-        '<(DEPTH)/starboard/shared/posix/directory_create.cc',
-        '<(DEPTH)/starboard/shared/posix/file_can_open.cc',
-        '<(DEPTH)/starboard/shared/posix/file_close.cc',
-        '<(DEPTH)/starboard/shared/posix/file_delete.cc',
-        '<(DEPTH)/starboard/shared/posix/file_exists.cc',
-        '<(DEPTH)/starboard/shared/posix/file_flush.cc',
-        '<(DEPTH)/starboard/shared/posix/file_get_info.cc',
-        '<(DEPTH)/starboard/shared/posix/file_get_path_info.cc',
-        '<(DEPTH)/starboard/shared/posix/file_open.cc',
-        '<(DEPTH)/starboard/shared/posix/file_read.cc',
-        '<(DEPTH)/starboard/shared/posix/file_seek.cc',
-        '<(DEPTH)/starboard/shared/posix/file_truncate.cc',
-        '<(DEPTH)/starboard/shared/posix/file_write.cc',
-        '<(DEPTH)/starboard/shared/posix/log.cc',
-        '<(DEPTH)/starboard/shared/posix/log_flush.cc',
-        '<(DEPTH)/starboard/shared/posix/log_format.cc',
-        '<(DEPTH)/starboard/shared/posix/log_is_tty.cc',
-        '<(DEPTH)/starboard/shared/posix/log_raw.cc',
-        '<(DEPTH)/starboard/shared/posix/memory_flush.cc',
-        '<(DEPTH)/starboard/shared/posix/set_non_blocking_internal.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_accept.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_bind.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_clear_last_error.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_connect.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_create.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_destroy.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_free_resolution.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_get_last_error.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_get_local_address.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_internal.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_is_connected.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_is_connected_and_idle.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_join_multicast_group.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_listen.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_receive_from.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_resolve.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_send_to.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_set_broadcast.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_set_receive_buffer_size.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_set_reuse_address.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_set_send_buffer_size.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_set_tcp_keep_alive.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_set_tcp_no_delay.cc',
-        '<(DEPTH)/starboard/shared/posix/socket_set_tcp_window_scaling.cc',
-        '<(DEPTH)/starboard/shared/posix/string_compare_no_case.cc',
-        '<(DEPTH)/starboard/shared/posix/string_compare_no_case_n.cc',
-        '<(DEPTH)/starboard/shared/posix/string_compare_wide.cc',
-        '<(DEPTH)/starboard/shared/posix/string_format.cc',
-        '<(DEPTH)/starboard/shared/posix/string_format_wide.cc',
-        '<(DEPTH)/starboard/shared/posix/system_break_into_debugger.cc',
-        '<(DEPTH)/starboard/shared/posix/system_clear_last_error.cc',
-        '<(DEPTH)/starboard/shared/posix/system_get_error_string.cc',
-        '<(DEPTH)/starboard/shared/posix/system_get_last_error.cc',
-        '<(DEPTH)/starboard/shared/posix/system_get_locale_id.cc',
-        '<(DEPTH)/starboard/shared/posix/system_get_number_of_processors.cc',
-        '<(DEPTH)/starboard/shared/posix/thread_sleep.cc',
-        '<(DEPTH)/starboard/shared/posix/time_get_monotonic_now.cc',
-        '<(DEPTH)/starboard/shared/posix/time_get_monotonic_thread_now.cc',
-        '<(DEPTH)/starboard/shared/posix/time_get_now.cc',
-        '<(DEPTH)/starboard/shared/posix/time_zone_get_current.cc',
-        '<(DEPTH)/starboard/shared/posix/time_zone_get_dst_name.cc',
-        '<(DEPTH)/starboard/shared/posix/time_zone_get_name.cc',
-        '<(DEPTH)/starboard/shared/pthread/condition_variable_broadcast.cc',
-        '<(DEPTH)/starboard/shared/pthread/condition_variable_create.cc',
-        '<(DEPTH)/starboard/shared/pthread/condition_variable_destroy.cc',
-        '<(DEPTH)/starboard/shared/pthread/condition_variable_signal.cc',
-        '<(DEPTH)/starboard/shared/pthread/condition_variable_wait.cc',
-        '<(DEPTH)/starboard/shared/pthread/condition_variable_wait_timed.cc',
-        '<(DEPTH)/starboard/shared/pthread/mutex_acquire.cc',
-        '<(DEPTH)/starboard/shared/pthread/mutex_acquire_try.cc',
-        '<(DEPTH)/starboard/shared/pthread/mutex_create.cc',
-        '<(DEPTH)/starboard/shared/pthread/mutex_destroy.cc',
-        '<(DEPTH)/starboard/shared/pthread/mutex_release.cc',
-        '<(DEPTH)/starboard/shared/pthread/once.cc',
-        '<(DEPTH)/starboard/shared/pthread/thread_create.cc',
-        '<(DEPTH)/starboard/shared/pthread/thread_create_local_key.cc',
-        '<(DEPTH)/starboard/shared/pthread/thread_create_priority.h',
-        '<(DEPTH)/starboard/shared/pthread/thread_destroy_local_key.cc',
-        '<(DEPTH)/starboard/shared/pthread/thread_detach.cc',
-        '<(DEPTH)/starboard/shared/pthread/thread_get_current.cc',
-        '<(DEPTH)/starboard/shared/pthread/thread_get_local_value.cc',
-        '<(DEPTH)/starboard/shared/pthread/thread_is_equal.cc',
-        '<(DEPTH)/starboard/shared/pthread/thread_join.cc',
-        '<(DEPTH)/starboard/shared/pthread/thread_set_local_value.cc',
-        '<(DEPTH)/starboard/shared/pthread/thread_yield.cc',
-        '<(DEPTH)/starboard/shared/signal/crash_signals.h',
-        '<(DEPTH)/starboard/shared/signal/crash_signals_sigaction.cc',
-        '<(DEPTH)/starboard/shared/signal/suspend_signals.cc',
-        '<(DEPTH)/starboard/shared/signal/suspend_signals.h',
-        '<(DEPTH)/starboard/shared/starboard/application.cc',
-        '<(DEPTH)/starboard/shared/starboard/command_line.cc',
-        '<(DEPTH)/starboard/shared/starboard/command_line.h',
-        '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_create.cc',
-        '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_destroy.cc',
-        '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_internal.cc',
-        '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_internal.h',
-        '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_is_valid.cc',
-        '<(DEPTH)/starboard/shared/starboard/audio_sink/stub_audio_sink_type.cc',
-        '<(DEPTH)/starboard/shared/starboard/audio_sink/stub_audio_sink_type.h',
-        '<(DEPTH)/starboard/shared/starboard/directory_can_open.cc',
-        '<(DEPTH)/starboard/shared/starboard/event_cancel.cc',
-        '<(DEPTH)/starboard/shared/starboard/event_schedule.cc',
-        '<(DEPTH)/starboard/shared/starboard/file_mode_string_to_flags.cc',
-        '<(DEPTH)/starboard/shared/starboard/file_storage/storage_close_record.cc',
-        '<(DEPTH)/starboard/shared/starboard/file_storage/storage_delete_record.cc',
-        '<(DEPTH)/starboard/shared/starboard/file_storage/storage_get_record_size.cc',
-        '<(DEPTH)/starboard/shared/starboard/file_storage/storage_open_record.cc',
-        '<(DEPTH)/starboard/shared/starboard/file_storage/storage_read_record.cc',
-        '<(DEPTH)/starboard/shared/starboard/file_storage/storage_write_record.cc',
-        '<(DEPTH)/starboard/shared/starboard/log_message.cc',
-        '<(DEPTH)/starboard/shared/starboard/log_raw_dump_stack.cc',
-        '<(DEPTH)/starboard/shared/starboard/log_raw_format.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/codec_util.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/codec_util.h',
-        '<(DEPTH)/starboard/shared/starboard/media/media_can_play_mime_and_key_system.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/media_get_audio_configuration_stereo_only.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/media_get_audio_output_count_stereo_only.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/media_is_audio_supported_aac_only.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/media_is_output_protected.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/media_is_video_supported_h264_1080p_sfr_only.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/media_set_output_protection.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/media_util.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/media_util.h',
-        '<(DEPTH)/starboard/shared/starboard/media/mime_type.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/mime_type.h',
-        '<(DEPTH)/starboard/shared/starboard/media/codec_util.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/codec_util.h',
-        '<(DEPTH)/starboard/shared/starboard/media/media_can_play_mime_and_key_system.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/media_is_output_protected.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/media_set_output_protection.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/mime_type.cc',
-        '<(DEPTH)/starboard/shared/starboard/media/mime_type.h',
-        '<(DEPTH)/starboard/shared/starboard/new.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/decoded_audio_internal.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/decoded_audio_internal.h',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/audio_decoder_internal.h',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/audio_frame_tracker.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/audio_frame_tracker.h',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/audio_time_stretcher.h',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/audio_time_stretcher.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/audio_renderer_impl_internal.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/audio_renderer_impl_internal.h',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/audio_renderer_internal.h',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/audio_renderer_sink.h',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/audio_renderer_sink_impl.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/audio_renderer_sink_impl.h',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/decoded_audio_queue.h',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/decoded_audio_queue.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/filter_based_player_worker_handler.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/filter_based_player_worker_handler.h',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/player_components.h',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/video_decoder_internal.h',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/video_renderer_impl_internal.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/video_renderer_impl_internal.h',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/video_renderer_internal.h',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/wsola_internal.h',
-        '<(DEPTH)/starboard/shared/starboard/player/filter/wsola_internal.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/input_buffer_internal.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/input_buffer_internal.h',
-        '<(DEPTH)/starboard/shared/starboard/player/job_queue.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/job_queue.h',
-        '<(DEPTH)/starboard/shared/starboard/player/player_create.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/player_destroy.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/player_get_current_frame.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/player_get_info.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/player_output_mode_supported.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/player_internal.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/player_internal.h',
-        '<(DEPTH)/starboard/shared/starboard/player/player_seek.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/player_set_bounds.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/player_set_playback_rate.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/player_set_volume.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/player_worker.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/player_worker.h',
-        '<(DEPTH)/starboard/shared/starboard/player/player_write_end_of_stream.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/player_write_sample.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/video_frame_internal.cc',
-        '<(DEPTH)/starboard/shared/starboard/player/video_frame_internal.h',
-        '<(DEPTH)/starboard/shared/starboard/queue_application.cc',
-        '<(DEPTH)/starboard/shared/starboard/string_concat.cc',
-        '<(DEPTH)/starboard/shared/starboard/string_concat_wide.cc',
-        '<(DEPTH)/starboard/shared/starboard/string_copy.cc',
-        '<(DEPTH)/starboard/shared/starboard/string_copy_wide.cc',
-        '<(DEPTH)/starboard/shared/starboard/string_duplicate.cc',
-        '<(DEPTH)/starboard/shared/starboard/system_get_random_uint64.cc',
-        '<(DEPTH)/starboard/shared/starboard/system_request_pause.cc',
-        '<(DEPTH)/starboard/shared/starboard/system_request_stop.cc',
-        '<(DEPTH)/starboard/shared/starboard/system_request_suspend.cc',
-        '<(DEPTH)/starboard/shared/starboard/system_request_unpause.cc',
-        '<(DEPTH)/starboard/shared/starboard/window_set_default_options.cc',
-        '<(DEPTH)/starboard/shared/stub/accessibility_get_display_settings.cc',
-        '<(DEPTH)/starboard/shared/stub/accessibility_get_text_to_speech_settings.cc',
-        '<(DEPTH)/starboard/shared/stub/cryptography_create_transformer.cc',
-        '<(DEPTH)/starboard/shared/stub/cryptography_destroy_transformer.cc',
-        '<(DEPTH)/starboard/shared/stub/cryptography_get_tag.cc',
-        '<(DEPTH)/starboard/shared/stub/cryptography_set_authenticated_data.cc',
-        '<(DEPTH)/starboard/shared/stub/cryptography_set_initialization_vector.cc',
-        '<(DEPTH)/starboard/shared/stub/cryptography_transform.cc',
-        '<(DEPTH)/starboard/shared/stub/decode_target_get_info.cc',
-        '<(DEPTH)/starboard/shared/stub/decode_target_release.cc',
-        '<(DEPTH)/starboard/shared/stub/drm_close_session.cc',
-        '<(DEPTH)/starboard/shared/stub/drm_create_system.cc',
-        '<(DEPTH)/starboard/shared/stub/drm_destroy_system.cc',
-        '<(DEPTH)/starboard/shared/stub/drm_generate_session_update_request.cc',
-        '<(DEPTH)/starboard/shared/stub/drm_system_internal.h',
-        '<(DEPTH)/starboard/shared/stub/drm_update_session.cc',
-        '<(DEPTH)/starboard/shared/stub/image_decode.cc',
-        '<(DEPTH)/starboard/shared/stub/image_is_decode_supported.cc',
-        '<(DEPTH)/starboard/shared/stub/media_is_supported.cc',
-        '<(DEPTH)/starboard/shared/stub/media_is_transfer_characteristics_supported.cc',
-        '<(DEPTH)/starboard/shared/stub/system_clear_platform_error.cc',
-        '<(DEPTH)/starboard/shared/stub/system_get_total_gpu_memory.cc',
-        '<(DEPTH)/starboard/shared/stub/system_get_used_gpu_memory.cc',
-        '<(DEPTH)/starboard/shared/stub/system_hide_splash_screen.cc',
-        '<(DEPTH)/starboard/shared/stub/system_raise_platform_error.cc',
-        '<(DEPTH)/starboard/shared/x11/application_x11.cc',
-        '<(DEPTH)/starboard/shared/x11/window_create.cc',
-        '<(DEPTH)/starboard/shared/x11/window_destroy.cc',
-        '<(DEPTH)/starboard/shared/x11/window_get_platform_handle.cc',
-        '<(DEPTH)/starboard/shared/x11/window_get_size.cc',
-        '<(DEPTH)/starboard/shared/x11/window_internal.cc',
+        '<@(starboard_platform_sources)',
+        '<(DEPTH)/starboard/shared/starboard/player/video_dmp_common.cc',
+        '<(DEPTH)/starboard/shared/starboard/player/video_dmp_common.h',
+        '<(DEPTH)/starboard/shared/starboard/player/video_dmp_writer.cc',
+        '<(DEPTH)/starboard/shared/starboard/player/video_dmp_writer.h',
       ],
       'defines': [
+        'SB_PLAYER_ENABLE_VIDEO_DUMPER',
         # This must be defined when building Starboard, and must not when
         # building Starboard client code.
         'STARBOARD_IMPLEMENTATION',
       ],
       'dependencies': [
-        '<(DEPTH)/starboard/common/common.gyp:common',
-        '<(DEPTH)/third_party/dlmalloc/dlmalloc.gyp:dlmalloc',
-        '<(DEPTH)/third_party/libevent/libevent.gyp:libevent',
-        'starboard_base_symbolize',
+        '<@(starboard_platform_dependencies)',
       ],
     },
   ],
diff --git a/src/starboard/contrib/creator/ci20x11/starboard_platform.gypi b/src/starboard/contrib/creator/ci20x11/starboard_platform.gypi
new file mode 100644
index 0000000..a58b89e
--- /dev/null
+++ b/src/starboard/contrib/creator/ci20x11/starboard_platform.gypi
@@ -0,0 +1,32 @@
+# Copyright 2016 Google Inc. 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.
+{
+  'includes': ['../shared/starboard_platform.gypi'],
+
+  'variables': {
+    'starboard_platform_sources': [
+      '<(DEPTH)/starboard/contrib/creator/ci20x11/atomic_public.h',
+      '<(DEPTH)/starboard/contrib/creator/ci20x11/configuration_public.h',
+      '<(DEPTH)/starboard/contrib/creator/ci20x11/main.cc',
+      '<(DEPTH)/starboard/contrib/creator/ci20x11/system_get_property.cc',
+      '<(DEPTH)/starboard/shared/starboard/link_receiver.cc',
+      '<(DEPTH)/starboard/shared/x11/application_x11.cc',
+      '<(DEPTH)/starboard/shared/x11/window_create.cc',
+      '<(DEPTH)/starboard/shared/x11/window_destroy.cc',
+      '<(DEPTH)/starboard/shared/x11/window_get_platform_handle.cc',
+      '<(DEPTH)/starboard/shared/x11/window_get_size.cc',
+      '<(DEPTH)/starboard/shared/x11/window_internal.cc',
+    ],
+  },
+}
diff --git a/src/starboard/contrib/creator/ci20x11/system_get_property.cc b/src/starboard/contrib/creator/ci20x11/system_get_property.cc
index 35aba8b..2e88d56 100644
--- a/src/starboard/contrib/creator/ci20x11/system_get_property.cc
+++ b/src/starboard/contrib/creator/ci20x11/system_get_property.cc
@@ -14,6 +14,11 @@
 
 #include "starboard/system.h"
 
+#include <netdb.h>
+#include <linux/if.h>  // NOLINT(build/include_alpha)
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+
 #include "starboard/log.h"
 #include "starboard/string.h"
 
@@ -31,6 +36,48 @@
   return true;
 }
 
+bool GetPlatformUuid(char* out_value, int value_length) {
+  struct ifreq interface;
+  struct ifconf config;
+  char buf[1024];
+
+  int fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
+  if (fd == -1) {
+    return false;
+  }
+  config.ifc_len = sizeof(buf);
+  config.ifc_buf = buf;
+  int result = ioctl(fd, SIOCGIFCONF, &config);
+  if (result == -1) {
+    return false;
+  }
+
+  struct ifreq* cur_interface = config.ifc_req;
+  const struct ifreq* const end = cur_interface +
+      (config.ifc_len / sizeof(struct ifreq));
+
+  for (; cur_interface != end; ++cur_interface) {
+    SbStringCopy(interface.ifr_name,
+        cur_interface->ifr_name,
+        sizeof(cur_interface->ifr_name));
+    if (ioctl(fd, SIOCGIFFLAGS, &interface) == -1) {
+      continue;
+    }
+    if (interface.ifr_flags & IFF_LOOPBACK) {
+      continue;
+    }
+    if (ioctl(fd, SIOCGIFHWADDR, &interface) == -1) {
+      continue;
+    }
+    SbStringFormatF(out_value, value_length, "%x:%x:%x:%x:%x:%x",
+        interface.ifr_addr.sa_data[0], interface.ifr_addr.sa_data[1],
+        interface.ifr_addr.sa_data[2], interface.ifr_addr.sa_data[3],
+        interface.ifr_addr.sa_data[4], interface.ifr_addr.sa_data[5]);
+    return true;
+  }
+  return false;
+}
+
 }  // namespace
 
 bool SbSystemGetProperty(SbSystemPropertyId property_id,
@@ -57,8 +104,7 @@
       return CopyStringAndTestIfSuccess(out_value, value_length, kPlatformName);
 
     case kSbSystemPropertyPlatformUuid:
-      SB_NOTIMPLEMENTED();
-      return CopyStringAndTestIfSuccess(out_value, value_length, "N/A");
+      return GetPlatformUuid(out_value, value_length);
 
     default:
       SB_DLOG(WARNING) << __FUNCTION__
diff --git a/src/starboard/contrib/creator/shared/compiler_flags.gypi b/src/starboard/contrib/creator/shared/compiler_flags.gypi
new file mode 100644
index 0000000..3cbdf7c
--- /dev/null
+++ b/src/starboard/contrib/creator/shared/compiler_flags.gypi
@@ -0,0 +1,164 @@
+# Copyright 2016 Google Inc. 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.
+
+# Platform specific compiler flags for Linux on Starboard. Included from
+# gyp_configuration.gypi.
+#
+{
+  'variables': {
+    'compiler_flags_host': [
+      '-O2',
+    ],
+    'linker_flags': [
+    ],
+    'compiler_flags_debug': [
+      '-frtti',
+      '-O0',
+    ],
+    'compiler_flags_devel': [
+      '-frtti',
+      '-O2',
+    ],
+    'compiler_flags_qa': [
+      '-fno-rtti',
+      '-O2',
+      '-gline-tables-only',
+    ],
+    'compiler_flags_gold': [
+      '-fno-rtti',
+      '-O2',
+      '-gline-tables-only',
+    ],
+    'conditions': [
+      ['clang==1', {
+        'linker_flags': [
+          '-fuse-ld=lld',
+          '--target=mipsel-linux-gnu',
+          '--gcc-toolchain=<(sysroot)/..',
+        ],
+        'common_clang_flags': [
+          '-Werror',
+          '-fcolor-diagnostics',
+          # Default visibility to hidden, to enable dead stripping.
+          '-fvisibility=hidden',
+          # Warn for implicit type conversions that may change a value.
+          '-Wconversion',
+          '-Wno-c++11-compat',
+          # This complains about 'override', which we use heavily.
+          '-Wno-c++11-extensions',
+          # Warns on switches on enums that cover all enum values but
+          # also contain a default: branch. Chrome is full of that.
+          '-Wno-covered-switch-default',
+          # protobuf uses hash_map.
+          '-Wno-deprecated',
+          '-fno-exceptions',
+          # Don't warn about the "struct foo f = {0};" initialization pattern.
+          '-Wno-missing-field-initializers',
+          # Do not warn for implicit sign conversions.
+          '-Wno-sign-conversion',
+          '-fno-strict-aliasing',  # See http://crbug.com/32204
+          '-Wno-unnamed-type-template-args',
+          # Triggered by the COMPILE_ASSERT macro.
+          '-Wno-unused-local-typedef',
+          # Do not warn if a function or variable cannot be implicitly
+          # instantiated.
+          '-Wno-undefined-var-template',
+          # Do not warn about an implicit exception spec mismatch.
+          '-Wno-implicit-exception-spec-mismatch',
+          # needed for backtrace()
+          '-fasynchronous-unwind-tables',
+          '-Wno-tautological-constant-out-of-range-compare',
+          '-Wno-undefined-inline',
+        ],
+      }],
+      ['cobalt_fastbuild==0', {
+        'compiler_flags_debug': [
+          '-g',
+        ],
+        'compiler_flags_devel': [
+          '-g',
+        ],
+        'compiler_flags_qa': [
+          '-gline-tables-only',
+        ],
+        'compiler_flags_gold': [
+          '-gline-tables-only',
+        ],
+      }],
+    ],
+  },
+
+  'target_defaults': {
+    'defines': [
+      # By default, <EGL/eglplatform.h> pulls in some X11 headers that have some
+      # nasty macros (|Status|, for example) that conflict with Chromium base.
+      #'MESA_EGL_NO_X11_HEADERS'
+    ],
+    'target_conditions': [
+      ['clang==1', {
+        'cflags_c': [
+          '-std=c11',
+          '--target=mipsel-linux-gnu',
+          '-march=mipsel',
+          '-mcpu=mips32r2',
+          '--gcc-toolchain=<(sysroot)/..',
+        ],
+        'cflags_cc': [
+          '-std=gnu++11',
+          '--target=mipsel-linux-gnu',
+          '-march=mipsel',
+          '-mcpu=mips32r2',
+        ],
+      },{
+        # gcc
+        'cflags_c': [
+          '-std=c11',
+          '-EL',
+        ],
+        'cflags_cc': [
+          '-std=gnu++11',
+          '-Wno-literal-suffix',
+          # needed for backtrace()
+          '-fasynchronous-unwind-tables',
+        ],
+      }],
+      ['sb_pedantic_warnings==1', {
+        'cflags': [
+          '-Wall',
+          '-Wextra',
+          '-Wunreachable-code',
+          '<@(common_clang_flags)',
+        ],
+      },{
+        'cflags': [
+          '<@(common_clang_flags)',
+          # 'this' pointer cannot be NULL...pointer may be assumed
+          # to always convert to true.
+          '-Wno-undefined-bool-conversion',
+          # Skia doesn't use overrides.
+          '-Wno-inconsistent-missing-override',
+          # Do not warn about unused function params.
+          '-Wno-unused-parameter',
+          # Do not warn for implicit type conversions that may change a value.
+          '-Wno-conversion',
+          # shifting a negative signed value is undefined
+          '-Wno-shift-negative-value',
+          # Width of bit-field exceeds width of its type- value will be truncated
+          '-Wno-bitfield-width',
+          '-Wno-undefined-var-template',
+        ],
+      }],
+    ],
+  }, # end of target_defaults
+}
diff --git a/src/starboard/contrib/creator/shared/gyp_configuration.gypi b/src/starboard/contrib/creator/shared/gyp_configuration.gypi
index 4710bfd..fd1b5cb 100644
--- a/src/starboard/contrib/creator/shared/gyp_configuration.gypi
+++ b/src/starboard/contrib/creator/shared/gyp_configuration.gypi
@@ -17,43 +17,29 @@
     'target_arch': 'mips',
     'target_os': 'linux',
 
-    'enable_webdriver': 0,
+    'cobalt_media_source_2016': 1,
     'in_app_dial%': 0,
-    'gl_type%': 'system_gles2',
     'rasterizer_type': 'direct-gles',
-
     'scratch_surface_cache_size_in_bytes' : 0,
 
-    # This should have a default value in cobalt/base.gypi. See the comment
-    # there for acceptable values for this variable.
-    'javascript_engine': 'mozjs-45',
-    'cobalt_enable_jit': 1,
-    'cobalt_media_source_2016': 1,
-
-    'cobalt_font_package': 'expanded',
-    # Define platform specific compiler and linker flags.
-    # Refer to base.gypi for a list of all available variables.
-    'compiler_flags_host': [
-      '-O2',
+    'platform_libraries': [
+      '-lasound',
+      '-lavcodec',
+      '-lavformat',
+      '-lavresample',
+      '-lavutil',
+      '-lm',
+      '-lpthread',
+      '-lrt',
     ],
+
     'compiler_flags': [
       # We'll pretend not to be Linux, but Starboard instead.
       '-U__linux__',
       '--sysroot=<(sysroot)',
       '-EL',
-
-      # Suppress some warnings that will be hard to fix.
-      '-Wno-unused-local-typedefs',
-      '-Wno-unused-result',
-      '-Wno-deprecated-declarations',
-      '-Wno-missing-field-initializers',
-      '-Wno-comment',
-      '-Wno-narrowing',
-      '-Wno-unknown-pragmas',
-      '-Wno-type-limits',  # TODO: We should actually look into these.
-      # Do not warn about sign compares.
-      '-Wno-sign-compare',
     ],
+
     'linker_flags': [
       '--sysroot=<(sysroot)',
       '-EL',
@@ -71,61 +57,6 @@
       '-Wl,--wrap=malloc_stats_fast',
       '-Wl,--wrap=__cxa_demangle',
     ],
-    'compiler_flags_debug': [
-      '-O0',
-    ],
-    'compiler_flags_cc_debug': [
-      '-frtti',
-    ],
-    'compiler_flags_devel': [
-      '-O2',
-    ],
-    'compiler_flags_cc_devel': [
-      '-frtti',
-    ],
-    'compiler_flags_qa': [
-      '-O2',
-    ],
-    'compiler_flags_cc_qa': [
-      '-fno-rtti',
-    ],
-    'compiler_flags_gold': [
-      '-O2',
-    ],
-    'compiler_flags_cc_gold': [
-      '-fno-rtti',
-    ],
-    'platform_libraries': [
-      '-lasound',
-      '-lavcodec',
-      '-lavformat',
-      '-lavresample',
-      '-lavutil',
-      '-lm',
-      '-lpthread',
-      '-lrt',
-    ],
-    'conditions': [
-      ['cobalt_fastbuild==0', {
-        'compiler_flags_debug': [
-          '-g',
-        ],
-        'compiler_flags_devel': [
-          '-g',
-        ],
-        'compiler_flags_qa': [
-        ],
-        'compiler_flags_gold': [
-        ],
-      }],
-      ['clang==1', {
-        'linker_flags': [
-          '-fuse-ld=lld',
-          '--target=mipsel-linux-gnu',
-          '--gcc-toolchain=<(sysroot)/..',
-        ],
-      }],
-    ],
   },
 
   'target_defaults': {
@@ -136,98 +67,5 @@
       # Enable GNU extensions to get prototypes like ffsl.
       '_GNU_SOURCE=1',
     ],
-    'conditions': [
-      ['clang==1', {
-        'cflags_c': [
-          '-std=c11',
-          '--target=mipsel-linux-gnu',
-          '-march=mipsel',
-          '-mcpu=mips32r2',
-          '--gcc-toolchain=<(sysroot)/..',
-        ],
-        'cflags_cc': [
-          '-std=gnu++11',
-          '--target=mipsel-linux-gnu',
-          '-march=mipsel',
-          '-mcpu=mips32r2',
-          '-Werror',
-          '-fcolor-diagnostics',
-          # Default visibility to hidden, to enable dead stripping.
-          '-fvisibility=hidden',
-          '-Wno-c++11-compat',
-          # This complains about 'override', which we use heavily.
-          '-Wno-c++11-extensions',
-          # Warns on switches on enums that cover all enum values but
-          # also contain a default: branch. Chrome is full of that.
-          '-Wno-covered-switch-default',
-          # protobuf uses hash_map.
-          '-Wno-deprecated',
-          '-fno-exceptions',
-          # needed for backtrace()
-          '-fasynchronous-unwind-tables',
-          # Don't warn about the "struct foo f = {0};" initialization pattern.
-          '-Wno-missing-field-initializers',
-          # Do not warn for implicit sign conversions.
-          '-Wno-sign-conversion',
-          '-fno-strict-aliasing',  # See http://crbug.com/32204
-          '-Wno-unnamed-type-template-args',
-          # Triggered by the COMPILE_ASSERT macro.
-          '-Wno-unused-local-typedef',
-          # Do not warn if a function or variable cannot be implicitly
-          # instantiated.
-          '-Wno-undefined-var-template',
-          # Do not warn about an implicit exception spec mismatch.
-          '-Wno-implicit-exception-spec-mismatch',
-          '-Wno-tautological-constant-out-of-range-compare',
-          '-Wno-undefined-inline',
-        ],
-      },{
-        # gcc
-        'cflags_c': [
-          '-std=c11',
-          '-EL',
-        ],
-        'cflags_cc': [
-          '-std=gnu++11',
-          '-Wno-literal-suffix',
-          # needed for backtrace()
-          '-fasynchronous-unwind-tables',
-        ],
-      }],
-    ],
-    'target_conditions': [
-      ['sb_pedantic_warnings==1', {
-        'cflags': [
-          '-Wall',
-          '-Wextra',
-          '-Wunreachable-code',
-        ],
-      },{
-        'conditions': [
-          ['clang==1', {
-            'cflags': [
-              # 'this' pointer cannot be NULL...pointer may be assumed
-              # to always convert to true.
-              '-Wno-undefined-bool-conversion',
-              # Skia doesn't use overrides.
-              '-Wno-inconsistent-missing-override',
-              # Do not warn about unused function params.
-              '-Wno-unused-parameter',
-              # Do not warn for implicit type conversions that may change a value.
-              '-Wno-conversion',
-              # shifting a negative signed value is undefined
-              '-Wno-shift-negative-value',
-              # Width of bit-field exceeds width of its type- value will be truncated
-              '-Wno-bitfield-width',
-              '-Wno-undefined-var-template',
-            ],
-          },{ # gcc
-            'cflags': [
-              '-Wno-multichar',
-            ],
-          }],
-        ],
-      }],
-    ],
   }, # end of target_defaults
 }
diff --git a/src/starboard/contrib/creator/shared/gyp_configuration.py b/src/starboard/contrib/creator/shared/gyp_configuration.py
index cbee9c8..6bc7db9 100644
--- a/src/starboard/contrib/creator/shared/gyp_configuration.py
+++ b/src/starboard/contrib/creator/shared/gyp_configuration.py
@@ -11,25 +11,24 @@
 # 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.
-"""Starboard Creator Ci20 platform configuration for gyp_cobalt."""
+"""Starboard Creator Ci20 platform configuration."""
 
 import logging
-import imp
 import os
 import sys
 
-import config.base
-import gyp_utils
-
-import _env  # pylint: disable=unused-import
+from starboard.build import clang
+from starboard.build import platform_configuration
+from starboard.tools import build
 from starboard.tools.testing import test_filter
 
 
-class PlatformConfig(config.starboard.PlatformConfigStarboard):
+class CreatorConfiguration(platform_configuration.PlatformConfiguration):
   """Starboard ci20 platform configuration."""
 
   def __init__(self, platform):
-    super(PlatformConfig, self).__init__(platform)
+    super(CreatorConfiguration, self).__init__(platform)
+    self.AppendApplicationConfigurationPath(os.path.dirname(__file__))
 
   def _GetCi20Home(self):
     try:
@@ -40,7 +39,7 @@
       sys.exit(1)
     return ci20_home
 
-  def GetVariables(self, configuration):
+  def GetVariables(self, config_name):
     relative_sysroot = os.path.join('sysroot')
     sysroot = os.path.join(self.ci20_home, relative_sysroot)
 
@@ -49,17 +48,30 @@
           'ci20 builds require $CI20_HOME/%s to be a valid directory.',
           relative_sysroot)
       sys.exit(1)
-    variables = super(PlatformConfig, self).GetVariables(configuration)
+    variables = super(CreatorConfiguration, self).GetVariables(config_name,
+                                                               use_clang=1)
     variables.update({
-        'clang': 1,
         'sysroot': sysroot,
     })
 
     return variables
 
+  def GetLauncherPath(self):
+    """Gets the path to the launcher module for this platform."""
+    # Use launcher.py from src/starboard/linux/shared/
+    linux_shared = os.path.join(
+        os.path.dirname(__file__), '..', '..', '..', 'linux', 'shared')
+    return linux_shared
+
+  def GetGeneratorVariables(self, config_name):
+    del config_name
+    generator_variables = {'qtcreator_session_name_prefix': 'cobalt',}
+    return generator_variables
+
   def GetEnvironmentVariables(self):
     self.ci20_home = self._GetCi20Home()
-    self.host_compiler_environment = gyp_utils.GetHostCompilerEnvironment(0)
+    self.host_compiler_environment =  build.GetHostCompilerEnvironment(
+        clang.GetClangSpecification(), False)
     env_variables = self.host_compiler_environment
     env_variables = {
       'CC': self.host_compiler_environment['CC_host'],
@@ -73,23 +85,9 @@
 
     return env_variables
 
-  def GetLauncher(self):
-    """Gets the module used to launch applications on this platform."""
-    # Use launcher.py from src/starboard/linux/shared/
-    linux_shared = os.path.join(
-        os.path.dirname(__file__), '..', '..', 'linux', 'shared')
-    module_path = os.path.abspath(os.path.join(
-        linux_shared, 'launcher.py'))
-    launcher_module = imp.load_source('launcher', module_path)
-    return launcher_module
-
   def GetTestFilters(self):
-    """Gets all tests to be excluded from a unit test run.
-
-    Returns:
-      A list of initialized TestFilter objects.
-    """
-    return [
+    filters = super(CreatorConfiguration, self).GetTestFilters()
+    filters.extend([
         # test is disabled on x64
         test_filter.TestFilter(
             'bindings_test', ('GlobalInterfaceBindingsTest.'
@@ -126,9 +124,6 @@
             'nplb', 'SbSocketAddressTypes/SbSocketGetInterfaceAddressTest.SunnyDaySourceNotLoopback/1'),
         # there are no test cases in this test
         test_filter.TestFilter(
-            'starboard_platform_tests', test_filter.FILTER_ALL),
-        # there are no test cases in this test
-        test_filter.TestFilter(
             'nplb_blitter_pixel_tests', test_filter.FILTER_ALL),
         # test fails on x64 also
         test_filter.TestFilter(
@@ -136,5 +131,5 @@
         # we don't have proper procedure for running this test
         test_filter.TestFilter(
             'web_platform_tests', test_filter.FILTER_ALL),
-    ]
-
+    ])
+    return filters
diff --git a/src/starboard/contrib/creator/shared/player_components_impl.cc b/src/starboard/contrib/creator/shared/player_components_impl.cc
index 5b3410b..51c9de1 100644
--- a/src/starboard/contrib/creator/shared/player_components_impl.cc
+++ b/src/starboard/contrib/creator/shared/player_components_impl.cc
@@ -14,12 +14,20 @@
 
 #include "starboard/shared/starboard/player/filter/player_components.h"
 
-#include "starboard/audio_sink.h"
+#include "starboard/common/ref_counted.h"
+#include "starboard/common/scoped_ptr.h"
+#include "starboard/media.h"
 #include "starboard/shared/ffmpeg/ffmpeg_audio_decoder.h"
 #include "starboard/shared/ffmpeg/ffmpeg_video_decoder.h"
-#include "starboard/shared/starboard/player/filter/audio_renderer_impl_internal.h"
+#include "starboard/shared/starboard/player/filter/audio_decoder_internal.h"
+#include "starboard/shared/starboard/player/filter/audio_renderer_sink.h"
 #include "starboard/shared/starboard/player/filter/audio_renderer_sink_impl.h"
-#include "starboard/shared/starboard/player/filter/video_renderer_impl_internal.h"
+#include "starboard/shared/starboard/player/filter/punchout_video_renderer_sink.h"
+#include "starboard/shared/starboard/player/filter/video_decoder_internal.h"
+#include "starboard/shared/starboard/player/filter/video_render_algorithm.h"
+#include "starboard/shared/starboard/player/filter/video_render_algorithm_impl.h"
+#include "starboard/shared/starboard/player/filter/video_renderer_sink.h"
+#include "starboard/time.h"
 
 namespace starboard {
 namespace shared {
@@ -27,48 +35,62 @@
 namespace player {
 namespace filter {
 
+namespace {
+
+class PlayerComponentsImpl : public PlayerComponents {
+  void CreateAudioComponents(
+      const AudioParameters& audio_parameters,
+      scoped_ptr<AudioDecoder>* audio_decoder,
+      scoped_ptr<AudioRendererSink>* audio_renderer_sink) override {
+    typedef ::starboard::shared::ffmpeg::AudioDecoder AudioDecoderImpl;
+
+    SB_DCHECK(audio_decoder);
+    SB_DCHECK(audio_renderer_sink);
+
+    scoped_ptr<AudioDecoderImpl> audio_decoder_impl(new AudioDecoderImpl(
+        audio_parameters.audio_codec, audio_parameters.audio_header));
+    if (audio_decoder_impl->is_valid()) {
+      audio_decoder->reset(audio_decoder_impl.release());
+    } else {
+      audio_decoder->reset();
+    }
+    audio_renderer_sink->reset(new AudioRendererSinkImpl);
+  }
+
+  void CreateVideoComponents(
+      const VideoParameters& video_parameters,
+      scoped_ptr<VideoDecoder>* video_decoder,
+      scoped_ptr<VideoRenderAlgorithm>* video_render_algorithm,
+      scoped_refptr<VideoRendererSink>* video_renderer_sink) override {
+    typedef ::starboard::shared::ffmpeg::VideoDecoder FfmpegVideoDecoderImpl;
+
+    const SbTime kVideoSinkRenderInterval = 10 * kSbTimeMillisecond;
+
+    SB_DCHECK(video_decoder);
+    SB_DCHECK(video_render_algorithm);
+    SB_DCHECK(video_renderer_sink);
+
+    video_decoder->reset();
+
+    scoped_ptr<FfmpegVideoDecoderImpl> ffmpeg_video_decoder(
+        new FfmpegVideoDecoderImpl(
+            video_parameters.video_codec, video_parameters.output_mode,
+            video_parameters.decode_target_graphics_context_provider));
+    if (ffmpeg_video_decoder->is_valid()) {
+      video_decoder->reset(ffmpeg_video_decoder.release());
+    }
+
+    video_render_algorithm->reset(new VideoRenderAlgorithmImpl);
+    *video_renderer_sink = new PunchoutVideoRendererSink(
+        video_parameters.player, kVideoSinkRenderInterval);
+  }
+};
+
+} // namespace
+
 // static
-scoped_ptr<PlayerComponents> PlayerComponents::Create(
-    const AudioParameters& audio_parameters,
-    const VideoParameters& video_parameters) {
-  typedef ::starboard::shared::ffmpeg::AudioDecoder AudioDecoderImpl;
-  typedef ::starboard::shared::ffmpeg::VideoDecoder FfmpegVideoDecoderImpl;
-
-  // TODO: This is not ideal as we should really handle the creation failure of
-  // audio sink inside the audio renderer to give the renderer a chance to
-  // resample the decoded audio.
-  const int audio_channels = audio_parameters.audio_header.number_of_channels;
-  if (audio_channels > SbAudioSinkGetMaxChannels()) {
-    return scoped_ptr<PlayerComponents>(NULL);
-  }
-
-  AudioDecoderImpl* audio_decoder = new AudioDecoderImpl(
-      audio_parameters.audio_codec, audio_parameters.audio_header);
-  if (!audio_decoder->is_valid()) {
-    delete audio_decoder;
-    return scoped_ptr<PlayerComponents>(NULL);
-  }
-
-  scoped_ptr<HostedVideoDecoder> video_decoder;
-  FfmpegVideoDecoderImpl* ffmpeg_video_decoder = new FfmpegVideoDecoderImpl(
-      video_parameters.video_codec, video_parameters.output_mode,
-      video_parameters.decode_target_graphics_context_provider);
-  if (!ffmpeg_video_decoder->is_valid()) {
-    delete ffmpeg_video_decoder;
-    return scoped_ptr<PlayerComponents>(NULL);
-  }
-  video_decoder.reset(ffmpeg_video_decoder);
-
-  AudioRendererImpl* audio_renderer = new AudioRendererImpl(
-      make_scoped_ptr<AudioDecoder>(audio_decoder),
-      make_scoped_ptr<AudioRendererSink>(new AudioRendererSinkImpl),
-      audio_parameters.audio_header);
-
-  VideoRendererImpl* video_renderer =
-      new VideoRendererImpl(video_decoder.Pass());
-
-  return scoped_ptr<PlayerComponents>(
-      new PlayerComponents(audio_renderer, video_renderer));
+scoped_ptr<PlayerComponents> PlayerComponents::Create() {
+  return make_scoped_ptr<PlayerComponents>(new PlayerComponentsImpl);
 }
 
 }  // namespace filter
diff --git a/src/starboard/contrib/creator/shared/starboard_platform.gypi b/src/starboard/contrib/creator/shared/starboard_platform.gypi
new file mode 100644
index 0000000..be6b570
--- /dev/null
+++ b/src/starboard/contrib/creator/shared/starboard_platform.gypi
@@ -0,0 +1,340 @@
+# Copyright 2016 Google Inc. 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.
+{
+  'variables': {
+    'starboard_platform_sources': [
+      '<(DEPTH)/starboard/contrib/creator/shared/player_components_impl.cc',
+      '<(DEPTH)/starboard/linux/shared/atomic_public.h',
+      '<(DEPTH)/starboard/linux/shared/decode_target_internal.h',
+      '<(DEPTH)/starboard/linux/shared/decode_target_internal.cc',
+      '<(DEPTH)/starboard/linux/shared/system_get_connection_type.cc',
+      '<(DEPTH)/starboard/linux/shared/system_get_device_type.cc',
+      '<(DEPTH)/starboard/linux/shared/system_get_path.cc',
+      '<(DEPTH)/starboard/linux/shared/system_has_capability.cc',
+      '<(DEPTH)/starboard/shared/alsa/alsa_audio_sink_type.cc',
+      '<(DEPTH)/starboard/shared/alsa/alsa_audio_sink_type.h',
+      '<(DEPTH)/starboard/shared/alsa/alsa_util.cc',
+      '<(DEPTH)/starboard/shared/alsa/alsa_util.h',
+      '<(DEPTH)/starboard/shared/alsa/audio_sink_get_max_channels.cc',
+      '<(DEPTH)/starboard/shared/alsa/audio_sink_get_nearest_supported_sample_frequency.cc',
+      '<(DEPTH)/starboard/shared/alsa/audio_sink_is_audio_frame_storage_type_supported.cc',
+      '<(DEPTH)/starboard/shared/alsa/audio_sink_is_audio_sample_type_supported.cc',
+      '<(DEPTH)/starboard/shared/dlmalloc/memory_allocate_aligned_unchecked.cc',
+      '<(DEPTH)/starboard/shared/dlmalloc/memory_allocate_unchecked.cc',
+      '<(DEPTH)/starboard/shared/dlmalloc/memory_free.cc',
+      '<(DEPTH)/starboard/shared/dlmalloc/memory_free_aligned.cc',
+      '<(DEPTH)/starboard/shared/dlmalloc/memory_map.cc',
+      '<(DEPTH)/starboard/shared/dlmalloc/memory_reallocate_unchecked.cc',
+      '<(DEPTH)/starboard/shared/dlmalloc/memory_unmap.cc',
+      '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_audio_decoder.cc',
+      '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_audio_decoder.h',
+      '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_audio_resampler.cc',
+      '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_audio_resampler.h',
+      '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_common.cc',
+      '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_common.h',
+      '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_video_decoder.cc',
+      '<(DEPTH)/starboard/shared/ffmpeg/ffmpeg_video_decoder.h',
+      '<(DEPTH)/starboard/shared/gcc/atomic_gcc_public.h',
+      '<(DEPTH)/starboard/shared/iso/character_is_alphanumeric.cc',
+      '<(DEPTH)/starboard/shared/iso/character_is_digit.cc',
+      '<(DEPTH)/starboard/shared/iso/character_is_hex_digit.cc',
+      '<(DEPTH)/starboard/shared/iso/character_is_space.cc',
+      '<(DEPTH)/starboard/shared/iso/character_is_upper.cc',
+      '<(DEPTH)/starboard/shared/iso/character_to_lower.cc',
+      '<(DEPTH)/starboard/shared/iso/character_to_upper.cc',
+      '<(DEPTH)/starboard/shared/iso/directory_close.cc',
+      '<(DEPTH)/starboard/shared/iso/directory_get_next.cc',
+      '<(DEPTH)/starboard/shared/iso/directory_open.cc',
+      '<(DEPTH)/starboard/shared/iso/double_absolute.cc',
+      '<(DEPTH)/starboard/shared/iso/double_exponent.cc',
+      '<(DEPTH)/starboard/shared/iso/double_floor.cc',
+      '<(DEPTH)/starboard/shared/iso/double_is_finite.cc',
+      '<(DEPTH)/starboard/shared/iso/double_is_nan.cc',
+      '<(DEPTH)/starboard/shared/iso/memory_compare.cc',
+      '<(DEPTH)/starboard/shared/iso/memory_copy.cc',
+      '<(DEPTH)/starboard/shared/iso/memory_find_byte.cc',
+      '<(DEPTH)/starboard/shared/iso/memory_move.cc',
+      '<(DEPTH)/starboard/shared/iso/memory_set.cc',
+      '<(DEPTH)/starboard/shared/iso/string_compare.cc',
+      '<(DEPTH)/starboard/shared/iso/string_compare_all.cc',
+      '<(DEPTH)/starboard/shared/iso/string_find_character.cc',
+      '<(DEPTH)/starboard/shared/iso/string_find_last_character.cc',
+      '<(DEPTH)/starboard/shared/iso/string_find_string.cc',
+      '<(DEPTH)/starboard/shared/iso/string_get_length.cc',
+      '<(DEPTH)/starboard/shared/iso/string_get_length_wide.cc',
+      '<(DEPTH)/starboard/shared/iso/string_parse_double.cc',
+      '<(DEPTH)/starboard/shared/iso/string_parse_signed_integer.cc',
+      '<(DEPTH)/starboard/shared/iso/string_parse_uint64.cc',
+      '<(DEPTH)/starboard/shared/iso/string_parse_unsigned_integer.cc',
+      '<(DEPTH)/starboard/shared/iso/string_scan.cc',
+      '<(DEPTH)/starboard/shared/iso/system_binary_search.cc',
+      '<(DEPTH)/starboard/shared/iso/system_sort.cc',
+      '<(DEPTH)/starboard/shared/libevent/socket_waiter_add.cc',
+      '<(DEPTH)/starboard/shared/libevent/socket_waiter_create.cc',
+      '<(DEPTH)/starboard/shared/libevent/socket_waiter_destroy.cc',
+      '<(DEPTH)/starboard/shared/libevent/socket_waiter_internal.cc',
+      '<(DEPTH)/starboard/shared/libevent/socket_waiter_remove.cc',
+      '<(DEPTH)/starboard/shared/libevent/socket_waiter_wait.cc',
+      '<(DEPTH)/starboard/shared/libevent/socket_waiter_wait_timed.cc',
+      '<(DEPTH)/starboard/shared/libevent/socket_waiter_wake_up.cc',
+      '<(DEPTH)/starboard/shared/linux/byte_swap.cc',
+      '<(DEPTH)/starboard/shared/linux/get_home_directory.cc',
+      '<(DEPTH)/starboard/shared/linux/dev_input/dev_input.cc',
+      '<(DEPTH)/starboard/shared/linux/memory_get_stack_bounds.cc',
+      '<(DEPTH)/starboard/shared/linux/page_internal.cc',
+      '<(DEPTH)/starboard/shared/linux/socket_get_interface_address.cc',
+      '<(DEPTH)/starboard/shared/linux/system_get_random_data.cc',
+      '<(DEPTH)/starboard/shared/linux/system_get_stack.cc',
+      '<(DEPTH)/starboard/shared/linux/system_get_total_cpu_memory.cc',
+      '<(DEPTH)/starboard/shared/linux/system_get_used_cpu_memory.cc',
+      '<(DEPTH)/starboard/shared/linux/system_is_debugger_attached.cc',
+      '<(DEPTH)/starboard/shared/linux/system_symbolize.cc',
+      '<(DEPTH)/starboard/shared/linux/thread_get_id.cc',
+      '<(DEPTH)/starboard/shared/linux/thread_get_name.cc',
+      '<(DEPTH)/starboard/shared/linux/thread_set_name.cc',
+      '<(DEPTH)/starboard/shared/nouser/user_get_current.cc',
+      '<(DEPTH)/starboard/shared/nouser/user_get_property.cc',
+      '<(DEPTH)/starboard/shared/nouser/user_get_signed_in.cc',
+      '<(DEPTH)/starboard/shared/nouser/user_internal.cc',
+      '<(DEPTH)/starboard/shared/posix/directory_create.cc',
+      '<(DEPTH)/starboard/shared/posix/file_can_open.cc',
+      '<(DEPTH)/starboard/shared/posix/file_close.cc',
+      '<(DEPTH)/starboard/shared/posix/file_delete.cc',
+      '<(DEPTH)/starboard/shared/posix/file_exists.cc',
+      '<(DEPTH)/starboard/shared/posix/file_flush.cc',
+      '<(DEPTH)/starboard/shared/posix/file_get_info.cc',
+      '<(DEPTH)/starboard/shared/posix/file_get_path_info.cc',
+      '<(DEPTH)/starboard/shared/posix/file_open.cc',
+      '<(DEPTH)/starboard/shared/posix/file_read.cc',
+      '<(DEPTH)/starboard/shared/posix/file_seek.cc',
+      '<(DEPTH)/starboard/shared/posix/file_truncate.cc',
+      '<(DEPTH)/starboard/shared/posix/file_write.cc',
+      '<(DEPTH)/starboard/shared/posix/log.cc',
+      '<(DEPTH)/starboard/shared/posix/log_flush.cc',
+      '<(DEPTH)/starboard/shared/posix/log_format.cc',
+      '<(DEPTH)/starboard/shared/posix/log_is_tty.cc',
+      '<(DEPTH)/starboard/shared/posix/log_raw.cc',
+      '<(DEPTH)/starboard/shared/posix/memory_flush.cc',
+      '<(DEPTH)/starboard/shared/posix/set_non_blocking_internal.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_accept.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_bind.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_clear_last_error.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_connect.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_create.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_destroy.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_free_resolution.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_get_last_error.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_get_local_address.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_internal.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_is_connected.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_is_connected_and_idle.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_join_multicast_group.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_listen.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_receive_from.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_resolve.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_send_to.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_set_broadcast.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_set_receive_buffer_size.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_set_reuse_address.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_set_send_buffer_size.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_set_tcp_keep_alive.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_set_tcp_no_delay.cc',
+      '<(DEPTH)/starboard/shared/posix/socket_set_tcp_window_scaling.cc',
+      '<(DEPTH)/starboard/shared/posix/string_compare_no_case.cc',
+      '<(DEPTH)/starboard/shared/posix/string_compare_no_case_n.cc',
+      '<(DEPTH)/starboard/shared/posix/string_compare_wide.cc',
+      '<(DEPTH)/starboard/shared/posix/string_format.cc',
+      '<(DEPTH)/starboard/shared/posix/string_format_wide.cc',
+      '<(DEPTH)/starboard/shared/posix/system_break_into_debugger.cc',
+      '<(DEPTH)/starboard/shared/posix/system_clear_last_error.cc',
+      '<(DEPTH)/starboard/shared/posix/system_get_error_string.cc',
+      '<(DEPTH)/starboard/shared/posix/system_get_last_error.cc',
+      '<(DEPTH)/starboard/shared/posix/system_get_locale_id.cc',
+      '<(DEPTH)/starboard/shared/posix/system_get_number_of_processors.cc',
+      '<(DEPTH)/starboard/shared/posix/thread_sleep.cc',
+      '<(DEPTH)/starboard/shared/posix/time_get_monotonic_now.cc',
+      '<(DEPTH)/starboard/shared/posix/time_get_monotonic_thread_now.cc',
+      '<(DEPTH)/starboard/shared/posix/time_get_now.cc',
+      '<(DEPTH)/starboard/shared/posix/time_zone_get_current.cc',
+      '<(DEPTH)/starboard/shared/posix/time_zone_get_dst_name.cc',
+      '<(DEPTH)/starboard/shared/posix/time_zone_get_name.cc',
+      '<(DEPTH)/starboard/shared/pthread/condition_variable_broadcast.cc',
+      '<(DEPTH)/starboard/shared/pthread/condition_variable_create.cc',
+      '<(DEPTH)/starboard/shared/pthread/condition_variable_destroy.cc',
+      '<(DEPTH)/starboard/shared/pthread/condition_variable_signal.cc',
+      '<(DEPTH)/starboard/shared/pthread/condition_variable_wait.cc',
+      '<(DEPTH)/starboard/shared/pthread/condition_variable_wait_timed.cc',
+      '<(DEPTH)/starboard/shared/pthread/mutex_acquire.cc',
+      '<(DEPTH)/starboard/shared/pthread/mutex_acquire_try.cc',
+      '<(DEPTH)/starboard/shared/pthread/mutex_create.cc',
+      '<(DEPTH)/starboard/shared/pthread/mutex_destroy.cc',
+      '<(DEPTH)/starboard/shared/pthread/mutex_release.cc',
+      '<(DEPTH)/starboard/shared/pthread/once.cc',
+      '<(DEPTH)/starboard/shared/pthread/thread_create.cc',
+      '<(DEPTH)/starboard/shared/pthread/thread_create_local_key.cc',
+      '<(DEPTH)/starboard/shared/pthread/thread_create_priority.h',
+      '<(DEPTH)/starboard/shared/pthread/thread_destroy_local_key.cc',
+      '<(DEPTH)/starboard/shared/pthread/thread_detach.cc',
+      '<(DEPTH)/starboard/shared/pthread/thread_get_current.cc',
+      '<(DEPTH)/starboard/shared/pthread/thread_get_local_value.cc',
+      '<(DEPTH)/starboard/shared/pthread/thread_is_equal.cc',
+      '<(DEPTH)/starboard/shared/pthread/thread_join.cc',
+      '<(DEPTH)/starboard/shared/pthread/thread_set_local_value.cc',
+      '<(DEPTH)/starboard/shared/pthread/thread_yield.cc',
+      '<(DEPTH)/starboard/shared/signal/crash_signals.h',
+      '<(DEPTH)/starboard/shared/signal/crash_signals_sigaction.cc',
+      '<(DEPTH)/starboard/shared/signal/suspend_signals.cc',
+      '<(DEPTH)/starboard/shared/signal/suspend_signals.h',
+      '<(DEPTH)/starboard/shared/starboard/application.cc',
+      '<(DEPTH)/starboard/shared/starboard/command_line.cc',
+      '<(DEPTH)/starboard/shared/starboard/command_line.h',
+      '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_create.cc',
+      '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_destroy.cc',
+      '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_internal.cc',
+      '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_internal.h',
+      '<(DEPTH)/starboard/shared/starboard/audio_sink/audio_sink_is_valid.cc',
+      '<(DEPTH)/starboard/shared/starboard/audio_sink/stub_audio_sink_type.cc',
+      '<(DEPTH)/starboard/shared/starboard/audio_sink/stub_audio_sink_type.h',
+      '<(DEPTH)/starboard/shared/starboard/directory_can_open.cc',
+      '<(DEPTH)/starboard/shared/starboard/event_cancel.cc',
+      '<(DEPTH)/starboard/shared/starboard/event_schedule.cc',
+      '<(DEPTH)/starboard/shared/starboard/file_mode_string_to_flags.cc',
+      '<(DEPTH)/starboard/shared/starboard/file_storage/storage_close_record.cc',
+      '<(DEPTH)/starboard/shared/starboard/file_storage/storage_delete_record.cc',
+      '<(DEPTH)/starboard/shared/starboard/file_storage/storage_get_record_size.cc',
+      '<(DEPTH)/starboard/shared/starboard/file_storage/storage_open_record.cc',
+      '<(DEPTH)/starboard/shared/starboard/file_storage/storage_read_record.cc',
+      '<(DEPTH)/starboard/shared/starboard/file_storage/storage_write_record.cc',
+      '<(DEPTH)/starboard/shared/starboard/log_message.cc',
+      '<(DEPTH)/starboard/shared/starboard/log_raw_dump_stack.cc',
+      '<(DEPTH)/starboard/shared/starboard/log_raw_format.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/codec_util.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/codec_util.h',
+      '<(DEPTH)/starboard/shared/starboard/media/media_can_play_mime_and_key_system.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/media_get_audio_configuration_stereo_only.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/media_get_audio_output_count_stereo_only.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/media_is_audio_supported_aac_only.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/media_is_output_protected.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/media_is_video_supported_h264_1080p_sfr_only.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/media_set_output_protection.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/media_util.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/media_util.h',
+      '<(DEPTH)/starboard/shared/starboard/media/mime_type.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/mime_type.h',
+      '<(DEPTH)/starboard/shared/starboard/media/codec_util.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/codec_util.h',
+      '<(DEPTH)/starboard/shared/starboard/media/media_can_play_mime_and_key_system.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/media_is_output_protected.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/media_set_output_protection.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/mime_type.cc',
+      '<(DEPTH)/starboard/shared/starboard/media/mime_type.h',
+      '<(DEPTH)/starboard/shared/starboard/new.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/decoded_audio_internal.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/decoded_audio_internal.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/audio_decoder_internal.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/audio_frame_tracker.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/audio_frame_tracker.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/audio_time_stretcher.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/audio_time_stretcher.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/audio_renderer_internal.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/audio_renderer_internal.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/audio_renderer_sink.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/audio_renderer_sink_impl.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/audio_renderer_sink_impl.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/cpu_video_frame.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/cpu_video_frame.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/decoded_audio_queue.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/decoded_audio_queue.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/filter_based_player_worker_handler.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/filter_based_player_worker_handler.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/media_time_provider.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/media_time_provider_impl.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/media_time_provider_impl.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/player_components.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/punchout_video_renderer_sink.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/punchout_video_renderer_sink.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/video_decoder_internal.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/video_frame_internal.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/video_render_algorithm.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/video_render_algorithm_impl.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/video_render_algorithm_impl.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/video_renderer_internal.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/video_renderer_internal.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/wsola_internal.h',
+      '<(DEPTH)/starboard/shared/starboard/player/filter/wsola_internal.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/input_buffer_internal.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/input_buffer_internal.h',
+      '<(DEPTH)/starboard/shared/starboard/player/job_queue.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/job_queue.h',
+      '<(DEPTH)/starboard/shared/starboard/player/player_create.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/player_destroy.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/player_get_current_frame.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/player_get_info.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/player_output_mode_supported.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/player_internal.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/player_internal.h',
+      '<(DEPTH)/starboard/shared/starboard/player/player_seek.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/player_set_bounds.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/player_set_playback_rate.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/player_set_volume.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/player_worker.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/player_worker.h',
+      '<(DEPTH)/starboard/shared/starboard/player/player_write_end_of_stream.cc',
+      '<(DEPTH)/starboard/shared/starboard/player/player_write_sample.cc',
+      '<(DEPTH)/starboard/shared/starboard/queue_application.cc',
+      '<(DEPTH)/starboard/shared/starboard/string_concat.cc',
+      '<(DEPTH)/starboard/shared/starboard/string_concat_wide.cc',
+      '<(DEPTH)/starboard/shared/starboard/string_copy.cc',
+      '<(DEPTH)/starboard/shared/starboard/string_copy_wide.cc',
+      '<(DEPTH)/starboard/shared/starboard/string_duplicate.cc',
+      '<(DEPTH)/starboard/shared/starboard/system_get_random_uint64.cc',
+      '<(DEPTH)/starboard/shared/starboard/system_request_pause.cc',
+      '<(DEPTH)/starboard/shared/starboard/system_request_stop.cc',
+      '<(DEPTH)/starboard/shared/starboard/system_request_suspend.cc',
+      '<(DEPTH)/starboard/shared/starboard/system_request_unpause.cc',
+      '<(DEPTH)/starboard/shared/starboard/window_set_default_options.cc',
+      '<(DEPTH)/starboard/shared/stub/accessibility_get_display_settings.cc',
+      '<(DEPTH)/starboard/shared/stub/accessibility_get_text_to_speech_settings.cc',
+      '<(DEPTH)/starboard/shared/stub/cryptography_create_transformer.cc',
+      '<(DEPTH)/starboard/shared/stub/cryptography_destroy_transformer.cc',
+      '<(DEPTH)/starboard/shared/stub/cryptography_get_tag.cc',
+      '<(DEPTH)/starboard/shared/stub/cryptography_set_authenticated_data.cc',
+      '<(DEPTH)/starboard/shared/stub/cryptography_set_initialization_vector.cc',
+      '<(DEPTH)/starboard/shared/stub/cryptography_transform.cc',
+      '<(DEPTH)/starboard/shared/stub/decode_target_get_info.cc',
+      '<(DEPTH)/starboard/shared/stub/decode_target_release.cc',
+      '<(DEPTH)/starboard/shared/stub/drm_close_session.cc',
+      '<(DEPTH)/starboard/shared/stub/drm_create_system.cc',
+      '<(DEPTH)/starboard/shared/stub/drm_destroy_system.cc',
+      '<(DEPTH)/starboard/shared/stub/drm_generate_session_update_request.cc',
+      '<(DEPTH)/starboard/shared/stub/drm_system_internal.h',
+      '<(DEPTH)/starboard/shared/stub/drm_update_session.cc',
+      '<(DEPTH)/starboard/shared/stub/image_decode.cc',
+      '<(DEPTH)/starboard/shared/stub/image_is_decode_supported.cc',
+      '<(DEPTH)/starboard/shared/stub/media_is_supported.cc',
+      '<(DEPTH)/starboard/shared/stub/media_is_transfer_characteristics_supported.cc',
+      '<(DEPTH)/starboard/shared/stub/system_clear_platform_error.cc',
+      '<(DEPTH)/starboard/shared/stub/system_get_total_gpu_memory.cc',
+      '<(DEPTH)/starboard/shared/stub/system_get_used_gpu_memory.cc',
+      '<(DEPTH)/starboard/shared/stub/system_hide_splash_screen.cc',
+      '<(DEPTH)/starboard/shared/stub/system_raise_platform_error.cc',
+    ],
+    'starboard_platform_dependencies': [
+      '<(DEPTH)/starboard/common/common.gyp:common',
+      '<(DEPTH)/starboard/linux/shared/starboard_base_symbolize.gyp:starboard_base_symbolize',
+      '<(DEPTH)/third_party/dlmalloc/dlmalloc.gyp:dlmalloc',
+      '<(DEPTH)/third_party/libevent/libevent.gyp:libevent',
+    ],
+  },
+}
diff --git a/src/third_party/ci20/packagelist.jessie.mipsel.extra b/src/third_party/ci20/packagelist.jessie.mipsel.extra
index d99b951..2bd4f53 100644
--- a/src/third_party/ci20/packagelist.jessie.mipsel.extra
+++ b/src/third_party/ci20/packagelist.jessie.mipsel.extra
@@ -65,6 +65,7 @@
 libfreetype6-dev
 libgbm1
 libgbm-dev
+libgcc-4.8-dev
 libgconf-2-4
 libgconf2-dev
 libgcrypt11-dev