Merged r16456 into trunk branch.

Work-around missing librt for cross-compiling Chrome for Android in AOSP.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/23681006

git-svn-id: http://v8.googlecode.com/svn/trunk@16457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/src/platform/time.cc b/src/platform/time.cc
index 653eb14..073ca1e 100644
--- a/src/platform/time.cc
+++ b/src/platform/time.cc
@@ -509,6 +509,15 @@
            info.numer / info.denom);
 #elif V8_OS_SOLARIS
   ticks = (gethrtime() / Time::kNanosecondsPerMicrosecond);
+#elif V8_LIBRT_NOT_AVAILABLE
+  // TODO(bmeurer): This is a temporary hack to support cross-compiling
+  // Chrome for Android in AOSP. Remove this once AOSP is fixed, also
+  // cleanup the tools/gyp/v8.gyp file.
+  struct timeval tv;
+  int result = gettimeofday(&tv, NULL);
+  ASSERT_EQ(0, result);
+  USE(result);
+  ticks = (tv.tv_sec * Time::kMicrosecondsPerSecond + tv.tv_usec);
 #elif V8_OS_POSIX
   struct timespec ts;
   int result = clock_gettime(CLOCK_MONOTONIC, &ts);
diff --git a/src/version.cc b/src/version.cc
index 5644151..bad4b63 100644
--- a/src/version.cc
+++ b/src/version.cc
@@ -35,7 +35,7 @@
 #define MAJOR_VERSION     3
 #define MINOR_VERSION     21
 #define BUILD_NUMBER      7
-#define PATCH_LEVEL       0
+#define PATCH_LEVEL       1
 // Use 1 for candidates and 0 otherwise.
 // (Boolean macro values are not supported by all preprocessors.)
 #define IS_CANDIDATE_VERSION 0
diff --git a/tools/gyp/v8.gyp b/tools/gyp/v8.gyp
index 3f99b13..a73ece0 100644
--- a/tools/gyp/v8.gyp
+++ b/tools/gyp/v8.gyp
@@ -724,15 +724,28 @@
                   }],
                 ],
               }, {
-                'link_settings': {
-                  'target_conditions': [
-                    ['_toolset=="host"', {
-                      'libraries': [
-                        '-lrt'
-                      ]
-                    }]
-                  ]
-                },
+                # TODO(bmeurer): What we really want here, is this:
+                #
+                # 'link_settings': {
+                #   'target_conditions': [
+                #     ['_toolset=="host"', {
+                #       'libraries': [
+                #         '-lrt'
+                #       ]
+                #     }]
+                #   ]
+                # },
+                #
+                # but we can't do this right now, as the AOSP does not support
+                # linking against the host librt, so we need to work around this
+                # for now, using the following hack (see platform/time.cc):
+                'target_conditions': [
+                  ['_toolset=="host"', {
+                    'defines': [
+                      'V8_LIBRT_NOT_AVAILABLE',
+                    ],
+                  }],
+                ],
                 'sources': [
                   '../../src/platform-linux.cc'
                 ]