Date: Friday, September 16, 2011 @ 13:02:52 Author: foutrelis Revision: 138107
upgpkg: chromium 14.0.835.163-1 New upstream release. Added: chromium/trunk/webrtc-r240-r242-make-pulseaudio-optional.patch Modified: chromium/trunk/PKGBUILD chromium/trunk/gcc-4.6.patch Deleted: chromium/trunk/glibc-2.14.patch chromium/trunk/make-hash-tools-use-if-instead-of-switch.patch chromium/trunk/v8-r8472-crbug-77625-huge-number-of-cpu-wakeups.patch -------------------------------------------------------+ PKGBUILD | 40 - gcc-4.6.patch | 13 glibc-2.14.patch | 51 - make-hash-tools-use-if-instead-of-switch.patch | 37 - v8-r8472-crbug-77625-huge-number-of-cpu-wakeups.patch | 506 ---------------- webrtc-r240-r242-make-pulseaudio-optional.patch | 122 +++ 6 files changed, 136 insertions(+), 633 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2011-09-16 16:35:58 UTC (rev 138106) +++ PKGBUILD 2011-09-16 17:02:52 UTC (rev 138107) @@ -5,7 +5,7 @@ # Contributor: Daniel J Griffiths <ghost1...@archlinux.us> pkgname=chromium -pkgver=13.0.782.220 +pkgver=14.0.835.163 pkgrel=1 pkgdesc="The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser" arch=('i686' 'x86_64') @@ -22,16 +22,12 @@ chromium.desktop chromium.sh gcc-4.6.patch - glibc-2.14.patch - make-hash-tools-use-if-instead-of-switch.patch - v8-r8472-crbug-77625-huge-number-of-cpu-wakeups.patch) -md5sums=('b16d438a44a54b6f9e88ed9d3c7ba937' - '075c3c2fa5902e16b8547dd31d437191' - '096a46ef386817988250d2d7bddd1b34' - '690f2be42bf2a31755753a466653eb33' - '543a32b09f138fd47858b9a4a7c82dfb' - '9d9e66c8365d7333e55305796b49fd77' - '19c08d35303be15e414f2e881000140d') + webrtc-r240-r242-make-pulseaudio-optional.patch) +sha1sums=('f38e8835f4c12a61734eb99ee0a16d1386e2726d' + '7d97535ec0ed124e95888de84b2c6a3654a27d4a' + '427ecf06cae11f28f59b1912d659ad5541391682' + '39999918746524fff30e73dc656754733df5c2c2' + 'db66921c9801ad5930920faf87bd5c313a3fc702') build() { cd "$srcdir/chromium-$pkgver" @@ -40,24 +36,13 @@ # http://code.google.com/p/chromium/issues/detail?id=80071 patch -Np0 -i "$srcdir/gcc-4.6.patch" - # Fix build with glibc 2.14 - # http://code.google.com/p/chromium/issues/detail?id=86646 - patch -Np2 -i "$srcdir/glibc-2.14.patch" - - # Fix build with Perl 5.14 - patch -d third_party/WebKit -Np2 -i \ - "$srcdir/make-hash-tools-use-if-instead-of-switch.patch" - # Fix build with CUPS 1.5 sed -i '/#include <cups\/cups.h>/ a #include <cups/ppd.h>' \ chrome/browser/ui/webui/print_preview_handler.cc - # Fix upstream issue #77625: Chromium Generates HUGE numbers of CPU wakeups - # and uses massive amounts of power - # http://code.google.com/p/chromium/issues/detail?id=77625 - # Patch from: http://code.google.com/p/v8/source/detail?r=8472 - patch -d v8/src -Np0 -i \ - "$srcdir/v8-r8472-crbug-77625-huge-number-of-cpu-wakeups.patch" + # Make PulseAudio optional in WebRTC + patch -d third_party/webrtc -Np1 -i \ + "$srcdir/webrtc-r240-r242-make-pulseaudio-optional.patch" # Use Python 2 find . -type f -exec sed -i -r \ @@ -91,7 +76,7 @@ -Duse_system_yasm=1 \ -Duse_system_zlib=1 \ -Duse_gconf=0 \ - -Ddisable_sse2=1 \ + -Ddisable_nacl=1 \ $([[ $CARCH == i686 ]] && echo '-Ddisable_sse2=1') make chrome chrome_sandbox BUILDTYPE=Release @@ -105,8 +90,9 @@ install -Dm4755 -o root -g root out/Release/chrome_sandbox \ "$pkgdir/usr/lib/chromium/chromium-sandbox" + # Add out/Release/{libppGoogleNaClPluginChrome.so,nacl_irt_x86_*.nexe} again + # when NaCl build is fixed cp out/Release/{{chrome,resources}.pak,libffmpegsumo.so} \ - out/Release/{libppGoogleNaClPluginChrome.so,nacl_irt_x86_*.nexe} \ "$pkgdir/usr/lib/chromium/" # These links are only needed when building with system ffmpeg Modified: gcc-4.6.patch =================================================================== --- gcc-4.6.patch 2011-09-16 16:35:58 UTC (rev 138106) +++ gcc-4.6.patch 2011-09-16 17:02:52 UTC (rev 138107) @@ -68,9 +68,9 @@ --- third_party/tcmalloc/chromium/src/common.cc 2011-04-13 13:23:04.000000000 +0400 +++ third_party/tcmalloc/chromium/src/common.cc 2011-04-20 19:32:58.000000000 +0400 @@ -34,6 +34,7 @@ - #include "system-alloc.h" #include "config.h" #include "common.h" + #include "system-alloc.h" +#include <cstddef> namespace tcmalloc { @@ -86,17 +86,6 @@ using std::map; -diff -u -r third_party/tcmalloc/chromium/src/system-alloc.h third_party/tcmalloc/chromium/src/system-alloc.h ---- third_party/tcmalloc/chromium/src/system-alloc.h 2011-04-13 13:23:04.000000000 +0400 -+++ third_party/tcmalloc/chromium/src/system-alloc.h 2011-04-20 19:32:58.000000000 +0400 -@@ -37,6 +37,7 @@ - #define TCMALLOC_SYSTEM_ALLOC_H_ - - #include <config.h> -+#include <cstddef> - #include "internal_logging.h" - - // REQUIRES: "alignment" is a power of two or "0" to indicate default alignment diff -u -r ui/gfx/codec/jpeg_codec.h ui/gfx/codec/jpeg_codec.h --- ui/gfx/codec/jpeg_codec.h 2011-04-13 13:23:45.000000000 +0400 +++ ui/gfx/codec/jpeg_codec.h 2011-04-20 19:32:58.000000000 +0400 Deleted: glibc-2.14.patch =================================================================== --- glibc-2.14.patch 2011-09-16 16:35:58 UTC (rev 138106) +++ glibc-2.14.patch 2011-09-16 17:02:52 UTC (rev 138107) @@ -1,51 +0,0 @@ ---- trunk/src/third_party/tcmalloc/chromium/src/tcmalloc.cc 2011/06/21 07:36:46 89799 -+++ trunk/src/third_party/tcmalloc/chromium/src/tcmalloc.cc 2011/06/21 07:37:01 89800 -@@ -150,6 +150,13 @@ - # define WIN32_DO_PATCHING 1 - #endif - -+// GLibc 2.14+ requires the hook functions be declared volatile, based on the -+// value of the define __MALLOC_HOOK_VOLATILE. For compatibility with -+// older/non-GLibc implementations, provide an empty definition. -+#if !defined(__MALLOC_HOOK_VOLATILE) -+#define __MALLOC_HOOK_VOLATILE -+#endif -+ - using std::max; - using tcmalloc::PageHeap; - using tcmalloc::SizeMap; -@@ -403,7 +410,7 @@ - return tc_malloc(size); - } - --void* (*__malloc_hook)( -+void* (*__MALLOC_HOOK_VOLATILE __malloc_hook)( - size_t size, const void* caller) = tc_ptmalloc_malloc_hook; - - static void* tc_ptmalloc_realloc_hook( -@@ -411,14 +418,14 @@ - return tc_realloc(ptr, size); - } - --void* (*__realloc_hook)( -+void* (*__MALLOC_HOOK_VOLATILE __realloc_hook)( - void* ptr, size_t size, const void* caller) = tc_ptmalloc_realloc_hook; - - static void tc_ptmalloc_free_hook(void* ptr, const void* caller) { - tc_free(ptr); - } - --void (*__free_hook)(void* ptr, const void* caller) = tc_ptmalloc_free_hook; -+void (*__MALLOC_HOOK_VOLATILE __free_hook)(void* ptr, const void* caller) = tc_ptmalloc_free_hook; - - #endif - -@@ -1757,7 +1764,7 @@ - MallocHook::InvokeNewHook(result, size); - return result; - } --void *(*__memalign_hook)(size_t, size_t, const void *) = MemalignOverride; -+void *(*__MALLOC_HOOK_VOLATILE __memalign_hook)(size_t, size_t, const void *) = MemalignOverride; - #endif // #ifndef TCMALLOC_FOR_DEBUGALLOCATION - - // ---Double free() debugging implementation ----------------------------------- Deleted: make-hash-tools-use-if-instead-of-switch.patch =================================================================== --- make-hash-tools-use-if-instead-of-switch.patch 2011-09-16 16:35:58 UTC (rev 138106) +++ make-hash-tools-use-if-instead-of-switch.patch 2011-09-16 17:02:52 UTC (rev 138107) @@ -1,37 +0,0 @@ -Index: /trunk/Source/WebCore/make-hash-tools.pl -=================================================================== ---- /trunk/Source/WebCore/make-hash-tools.pl (revision 72664) -+++ /trunk/Source/WebCore/make-hash-tools.pl (revision 89265) -@@ -21,5 +21,4 @@ - - use strict; --use Switch; - use File::Basename; - -@@ -29,7 +28,5 @@ - - --switch ($option) { -- --case "DocTypeStrings" { -+if ($option eq "DocTypeStrings") { - - my $docTypeStringsGenerated = "$outdir/DocTypeStrings.cpp"; -@@ -39,7 +36,5 @@ - system("gperf --key-positions=\"*\" -s 2 $docTypeStringsGperf > $docTypeStringsGenerated") == 0 || die "calling gperf failed: $?"; - --} # case "DocTypeStrings" -- --case "ColorData" { -+} elsif ($option eq "ColorData") { - - my $colorDataGenerated = "$outdir/ColorData.cpp"; -@@ -49,5 +44,5 @@ - system("gperf --key-positions=\"*\" -D -s 2 $colorDataGperf > $colorDataGenerated") == 0 || die "calling gperf failed: $?"; - --} # case "ColorData" -- --} # switch ($option) -+} else { -+ die "Unknown option."; -+} Deleted: v8-r8472-crbug-77625-huge-number-of-cpu-wakeups.patch =================================================================== --- v8-r8472-crbug-77625-huge-number-of-cpu-wakeups.patch 2011-09-16 16:35:58 UTC (rev 138106) +++ v8-r8472-crbug-77625-huge-number-of-cpu-wakeups.patch 2011-09-16 17:02:52 UTC (rev 138107) @@ -1,506 +0,0 @@ -Index: compilation-cache.h -=================================================================== ---- compilation-cache.h (revision 8471) -+++ compilation-cache.h (revision 8472) -@@ -223,14 +223,6 @@ - JSRegExp::Flags flags, - Handle<FixedArray> data); - -- // Support for eager optimization tracking. -- bool ShouldOptimizeEagerly(Handle<JSFunction> function); -- void MarkForEagerOptimizing(Handle<JSFunction> function); -- void MarkForLazyOptimizing(Handle<JSFunction> function); -- -- // Reset the eager optimization tracking data. -- void ResetEagerOptimizingData(); -- - // Clear the cache - also used to initialize the cache at startup. - void Clear(); - -@@ -274,8 +266,6 @@ - // Current enable state of the compilation cache. - bool enabled_; - -- HashMap* eager_optimizing_set_; -- - friend class Isolate; - - DISALLOW_COPY_AND_ASSIGN(CompilationCache); -Index: objects.cc -=================================================================== ---- objects.cc (revision 8471) -+++ objects.cc (revision 8472) -@@ -6287,19 +6287,6 @@ - } - - --uint32_t JSFunction::SourceHash() { -- uint32_t hash = 0; -- Object* script = shared()->script(); -- if (!script->IsUndefined()) { -- Object* source = Script::cast(script)->source(); -- if (source->IsUndefined()) hash = String::cast(source)->Hash(); -- } -- hash ^= ComputeIntegerHash(shared()->start_position_and_type()); -- hash += ComputeIntegerHash(shared()->end_position()); -- return hash; --} -- -- - bool JSFunction::IsInlineable() { - if (IsBuiltin()) return false; - SharedFunctionInfo* shared_info = shared(); -Index: runtime-profiler.cc -=================================================================== ---- runtime-profiler.cc (revision 8471) -+++ runtime-profiler.cc (revision 8472) -@@ -43,32 +43,6 @@ - namespace internal { - - --class PendingListNode : public Malloced { -- public: -- explicit PendingListNode(JSFunction* function); -- ~PendingListNode() { Destroy(); } -- -- PendingListNode* next() const { return next_; } -- void set_next(PendingListNode* node) { next_ = node; } -- Handle<JSFunction> function() { return Handle<JSFunction>::cast(function_); } -- -- // If the function is garbage collected before we've had the chance -- // to optimize it the weak handle will be null. -- bool IsValid() { return !function_.is_null(); } -- -- // Returns the number of microseconds this node has been pending. -- int Delay() const { return static_cast<int>(OS::Ticks() - start_); } -- -- private: -- void Destroy(); -- static void WeakCallback(v8::Persistent<v8::Value> object, void* data); -- -- PendingListNode* next_; -- Handle<Object> function_; // Weak handle. -- int64_t start_; --}; -- -- - // Optimization sampler constants. - static const int kSamplerFrameCount = 2; - static const int kSamplerFrameWeight[kSamplerFrameCount] = { 2, 1 }; -@@ -80,33 +54,10 @@ - static const int kSamplerThresholdDelta = 1; - - static const int kSamplerThresholdSizeFactorInit = 3; --static const int kSamplerThresholdSizeFactorMin = 1; --static const int kSamplerThresholdSizeFactorDelta = 1; - - static const int kSizeLimit = 1500; - - --PendingListNode::PendingListNode(JSFunction* function) : next_(NULL) { -- GlobalHandles* global_handles = Isolate::Current()->global_handles(); -- function_ = global_handles->Create(function); -- start_ = OS::Ticks(); -- global_handles->MakeWeak(function_.location(), this, &WeakCallback); --} -- -- --void PendingListNode::Destroy() { -- if (!IsValid()) return; -- GlobalHandles* global_handles = Isolate::Current()->global_handles(); -- global_handles->Destroy(function_.location()); -- function_= Handle<Object>::null(); --} -- -- --void PendingListNode::WeakCallback(v8::Persistent<v8::Value>, void* data) { -- reinterpret_cast<PendingListNode*>(data)->Destroy(); --} -- -- - Atomic32 RuntimeProfiler::state_ = 0; - // TODO(isolates): Create the semaphore lazily and clean it up when no - // longer required. -@@ -125,16 +76,8 @@ - sampler_threshold_(kSamplerThresholdInit), - sampler_threshold_size_factor_(kSamplerThresholdSizeFactorInit), - sampler_ticks_until_threshold_adjustment_( -- kSamplerTicksBetweenThresholdAdjustment), -- js_ratio_(0), -- sampler_window_position_(0), -- optimize_soon_list_(NULL), -- state_window_position_(0), -- state_window_ticks_(0) { -- state_counts_[IN_NON_JS_STATE] = kStateWindowSize; -- state_counts_[IN_JS_STATE] = 0; -- STATIC_ASSERT(IN_NON_JS_STATE == 0); -- memset(state_window_, 0, sizeof(state_window_)); -+ kSamplerTicksBetweenThresholdAdjustment), -+ sampler_window_position_(0) { - ClearSampleBuffer(); - } - -@@ -148,16 +91,13 @@ - } - - --void RuntimeProfiler::Optimize(JSFunction* function, bool eager, int delay) { -+void RuntimeProfiler::Optimize(JSFunction* function) { - ASSERT(function->IsOptimizable()); - if (FLAG_trace_opt) { -- PrintF("[marking (%s) ", eager ? "eagerly" : "lazily"); -+ PrintF("[marking "); - function->PrintName(); - PrintF(" 0x%" V8PRIxPTR, reinterpret_cast<intptr_t>(function->address())); - PrintF(" for recompilation"); -- if (delay > 0) { -- PrintF(" (delayed %0.3f ms)", static_cast<double>(delay) / 1000); -- } - PrintF("]\n"); - } - -@@ -243,20 +183,6 @@ - - void RuntimeProfiler::OptimizeNow() { - HandleScope scope(isolate_); -- PendingListNode* current = optimize_soon_list_; -- while (current != NULL) { -- PendingListNode* next = current->next(); -- if (current->IsValid()) { -- Handle<JSFunction> function = current->function(); -- int delay = current->Delay(); -- if (function->IsOptimizable()) { -- Optimize(*function, true, delay); -- } -- } -- delete current; -- current = next; -- } -- optimize_soon_list_ = NULL; - - // Run through the JavaScript frames and collect them. If we already - // have a sample of the function, we mark it for optimizations -@@ -303,24 +229,9 @@ - : 1; - - int threshold = sampler_threshold_ * threshold_size_factor; -- int current_js_ratio = NoBarrier_Load(&js_ratio_); - -- // Adjust threshold depending on the ratio of time spent -- // in JS code. -- if (current_js_ratio < 20) { -- // If we spend less than 20% of the time in JS code, -- // do not optimize. -- continue; -- } else if (current_js_ratio < 75) { -- // Below 75% of time spent in JS code, only optimize very -- // frequently used functions. -- threshold *= 3; -- } -- - if (LookupSample(function) >= threshold) { -- Optimize(function, false, 0); -- isolate_->compilation_cache()->MarkForEagerOptimizing( -- Handle<JSFunction>(function)); -+ Optimize(function); - } - } - -@@ -333,40 +244,8 @@ - } - - --void RuntimeProfiler::OptimizeSoon(JSFunction* function) { -- if (!function->IsOptimizable()) return; -- PendingListNode* node = new PendingListNode(function); -- node->set_next(optimize_soon_list_); -- optimize_soon_list_ = node; --} -- -- --#ifdef ENABLE_LOGGING_AND_PROFILING --void RuntimeProfiler::UpdateStateRatio(SamplerState current_state) { -- SamplerState old_state = state_window_[state_window_position_]; -- state_counts_[old_state]--; -- state_window_[state_window_position_] = current_state; -- state_counts_[current_state]++; -- ASSERT(IsPowerOf2(kStateWindowSize)); -- state_window_position_ = (state_window_position_ + 1) & -- (kStateWindowSize - 1); -- // Note: to calculate correct ratio we have to track how many valid -- // ticks are actually in the state window, because on profiler -- // startup this number can be less than the window size. -- state_window_ticks_ = Min(kStateWindowSize, state_window_ticks_ + 1); -- NoBarrier_Store(&js_ratio_, state_counts_[IN_JS_STATE] * 100 / -- state_window_ticks_); --} --#endif -- -- - void RuntimeProfiler::NotifyTick() { - #ifdef ENABLE_LOGGING_AND_PROFILING -- // Record state sample. -- SamplerState state = IsSomeIsolateInJS() -- ? IN_JS_STATE -- : IN_NON_JS_STATE; -- UpdateStateRatio(state); - isolate_->stack_guard()->RequestRuntimeProfilerTick(); - #endif - } -@@ -424,7 +303,6 @@ - // to get the right count of active isolates. - NoBarrier_AtomicIncrement(&state_, 1); - semaphore_->Signal(); -- isolate->ResetEagerOptimizingData(); - #endif - } - -@@ -471,15 +349,8 @@ - - bool RuntimeProfilerRateLimiter::SuspendIfNecessary() { - #ifdef ENABLE_LOGGING_AND_PROFILING -- static const int kNonJSTicksThreshold = 100; -- if (RuntimeProfiler::IsSomeIsolateInJS()) { -- non_js_ticks_ = 0; -- } else { -- if (non_js_ticks_ < kNonJSTicksThreshold) { -- ++non_js_ticks_; -- } else { -- return RuntimeProfiler::WaitForSomeIsolateToEnterJS(); -- } -+ if (!RuntimeProfiler::IsSomeIsolateInJS()) { -+ return RuntimeProfiler::WaitForSomeIsolateToEnterJS(); - } - #endif - return false; -Index: runtime.cc -=================================================================== ---- runtime.cc (revision 8471) -+++ runtime.cc (revision 8472) -@@ -7821,7 +7821,6 @@ - } - } - -- isolate->compilation_cache()->MarkForLazyOptimizing(function); - if (type == Deoptimizer::EAGER) { - RUNTIME_ASSERT(function->IsOptimized()); - } else { -Index: objects.h -=================================================================== ---- objects.h (revision 8471) -+++ objects.h (revision 8472) -@@ -4924,9 +4924,6 @@ - // recompilation. - inline bool IsMarkedForLazyRecompilation(); - -- // Compute a hash code for the source code of this function. -- uint32_t SourceHash(); -- - // Check whether or not this function is inlineable. - bool IsInlineable(); - -Index: compilation-cache.cc -=================================================================== ---- compilation-cache.cc (revision 8471) -+++ compilation-cache.cc (revision 8472) -@@ -52,8 +52,7 @@ - eval_global_(isolate, kEvalGlobalGenerations), - eval_contextual_(isolate, kEvalContextualGenerations), - reg_exp_(isolate, kRegExpGenerations), -- enabled_(true), -- eager_optimizing_set_(NULL) { -+ enabled_(true) { - CompilationSubCache* subcaches[kSubCacheCount] = - {&script_, &eval_global_, &eval_contextual_, ®_exp_}; - for (int i = 0; i < kSubCacheCount; ++i) { -@@ -62,10 +61,7 @@ - } - - --CompilationCache::~CompilationCache() { -- delete eager_optimizing_set_; -- eager_optimizing_set_ = NULL; --} -+CompilationCache::~CompilationCache() {} - - - static Handle<CompilationCacheTable> AllocateTable(Isolate* isolate, int size) { -@@ -457,47 +453,6 @@ - } - - --static bool SourceHashCompare(void* key1, void* key2) { -- return key1 == key2; --} -- -- --HashMap* CompilationCache::EagerOptimizingSet() { -- if (eager_optimizing_set_ == NULL) { -- eager_optimizing_set_ = new HashMap(&SourceHashCompare); -- } -- return eager_optimizing_set_; --} -- -- --bool CompilationCache::ShouldOptimizeEagerly(Handle<JSFunction> function) { -- if (FLAG_opt_eagerly) return true; -- uint32_t hash = function->SourceHash(); -- void* key = reinterpret_cast<void*>(hash); -- return EagerOptimizingSet()->Lookup(key, hash, false) != NULL; --} -- -- --void CompilationCache::MarkForEagerOptimizing(Handle<JSFunction> function) { -- uint32_t hash = function->SourceHash(); -- void* key = reinterpret_cast<void*>(hash); -- EagerOptimizingSet()->Lookup(key, hash, true); --} -- -- --void CompilationCache::MarkForLazyOptimizing(Handle<JSFunction> function) { -- uint32_t hash = function->SourceHash(); -- void* key = reinterpret_cast<void*>(hash); -- EagerOptimizingSet()->Remove(key, hash); --} -- -- --void CompilationCache::ResetEagerOptimizingData() { -- HashMap* set = EagerOptimizingSet(); -- if (set->occupancy() > 0) set->Clear(); --} -- -- - void CompilationCache::Clear() { - for (int i = 0; i < kSubCacheCount; i++) { - subcaches_[i]->Clear(); -Index: isolate.h -=================================================================== ---- isolate.h (revision 8471) -+++ isolate.h (revision 8472) -@@ -978,8 +978,6 @@ - } - #endif - -- void ResetEagerOptimizingData(); -- - void SetData(void* data) { embedder_data_ = data; } - void* GetData() { return embedder_data_; } - -Index: runtime-profiler.h -=================================================================== ---- runtime-profiler.h (revision 8471) -+++ runtime-profiler.h (revision 8472) -@@ -37,7 +37,6 @@ - class Isolate; - class JSFunction; - class Object; --class PendingListNode; - class Semaphore; - - class RuntimeProfiler { -@@ -52,7 +51,6 @@ - } - - void OptimizeNow(); -- void OptimizeSoon(JSFunction* function); - - void NotifyTick(); - -@@ -106,7 +104,7 @@ - - static void HandleWakeUp(Isolate* isolate); - -- void Optimize(JSFunction* function, bool eager, int delay); -+ void Optimize(JSFunction* function); - - void AttemptOnStackReplacement(JSFunction* function); - -@@ -118,31 +116,16 @@ - - void AddSample(JSFunction* function, int weight); - --#ifdef ENABLE_LOGGING_AND_PROFILING -- void UpdateStateRatio(SamplerState current_state); --#endif -- - Isolate* isolate_; - - int sampler_threshold_; - int sampler_threshold_size_factor_; - int sampler_ticks_until_threshold_adjustment_; - -- // The ratio of ticks spent in JS code in percent. -- Atomic32 js_ratio_; -- - Object* sampler_window_[kSamplerWindowSize]; - int sampler_window_position_; - int sampler_window_weight_[kSamplerWindowSize]; - -- // Support for pending 'optimize soon' requests. -- PendingListNode* optimize_soon_list_; -- -- SamplerState state_window_[kStateWindowSize]; -- int state_window_position_; -- int state_window_ticks_; -- int state_counts_[2]; -- - // Possible state values: - // -1 => the profiler thread is waiting on the semaphore - // 0 or positive => the number of isolates running JavaScript code. -@@ -159,7 +142,7 @@ - // Rate limiter intended to be used in the profiler thread. - class RuntimeProfilerRateLimiter BASE_EMBEDDED { - public: -- RuntimeProfilerRateLimiter() : non_js_ticks_(0) { } -+ RuntimeProfilerRateLimiter() {} - - // Suspends the current thread (which must be the profiler thread) - // when not executing JavaScript to minimize CPU usage. Returns -@@ -170,8 +153,6 @@ - bool SuspendIfNecessary(); - - private: -- int non_js_ticks_; -- - DISALLOW_COPY_AND_ASSIGN(RuntimeProfilerRateLimiter); - }; - -Index: compiler.cc -=================================================================== ---- compiler.cc (revision 8471) -+++ compiler.cc (revision 8472) -@@ -109,8 +109,6 @@ - void CompilationInfo::AbortOptimization() { - Handle<Code> code(shared_info()->code()); - SetCode(code); -- Isolate* isolate = code->GetIsolate(); -- isolate->compilation_cache()->MarkForLazyOptimizing(closure()); - } - - -@@ -660,9 +658,6 @@ - CompilationInfo optimized(function); - optimized.SetOptimizing(AstNode::kNoNumber); - return CompileLazy(&optimized); -- } else if (isolate->compilation_cache()->ShouldOptimizeEagerly( -- function)) { -- isolate->runtime_profiler()->OptimizeSoon(*function); - } - } - } -Index: isolate.cc -=================================================================== ---- isolate.cc (revision 8471) -+++ isolate.cc (revision 8472) -@@ -1855,11 +1855,6 @@ - } - - --void Isolate::ResetEagerOptimizingData() { -- compilation_cache_->ResetEagerOptimizingData(); --} -- -- - #ifdef DEBUG - #define ISOLATE_FIELD_OFFSET(type, name, ignored) \ - const intptr_t Isolate::name##_debug_offset_ = OFFSET_OF(Isolate, name##_); Added: webrtc-r240-r242-make-pulseaudio-optional.patch =================================================================== --- webrtc-r240-r242-make-pulseaudio-optional.patch (rev 0) +++ webrtc-r240-r242-make-pulseaudio-optional.patch 2011-09-16 17:02:52 UTC (rev 138107) @@ -0,0 +1,122 @@ +Index: src/build/common.gypi +=================================================================== +--- src/build/common.gypi (revision 239) ++++ src/build/common.gypi (revision 240) +@@ -25,6 +25,13 @@ + 'direct_show_base_classes': + 'C:/Program Files/Microsoft SDKs/Windows/v7.1/Samples/multimedia/directshow/baseclasses/', + }], ++ ['build_with_chromium==1', { ++ # Exclude pulse audio on Chromium since its prerequisites don't ++ # include pulse audio. ++ 'include_pulse_audio%': 0, ++ }, { ++ 'include_pulse_audio%': 1, ++ }], + ], # conditions + }, + 'target_defaults': { +Index: src/modules/audio_device/main/source/audio_device.gyp +=================================================================== +--- src/modules/audio_device/main/source/audio_device.gyp (revision 239) ++++ src/modules/audio_device/main/source/audio_device.gyp (revision 240) +@@ -52,18 +52,12 @@ + 'Linux/alsasymboltable.h', + 'Linux/audio_device_linux_alsa.cc', + 'Linux/audio_device_linux_alsa.h', +- 'Linux/audio_device_linux_pulse.cc', +- 'Linux/audio_device_linux_pulse.h', + 'Linux/audio_device_utility_linux.cc', + 'Linux/audio_device_utility_linux.h', + 'Linux/audio_mixer_manager_linux_alsa.cc', + 'Linux/audio_mixer_manager_linux_alsa.h', +- 'Linux/audio_mixer_manager_linux_pulse.cc', +- 'Linux/audio_mixer_manager_linux_pulse.h', + 'Linux/latebindingsymboltable.cc', + 'Linux/latebindingsymboltable.h', +- 'Linux/pulseaudiosymboltable.cc', +- 'Linux/pulseaudiosymboltable.h', + 'Mac/audio_device_mac.cc', + 'Mac/audio_device_mac.h', + 'Mac/audio_device_utility_mac.cc', +@@ -89,16 +83,10 @@ + 'Linux/alsasymboltable.h', + 'Linux/audio_device_linux_alsa.cc', + 'Linux/audio_device_linux_alsa.h', +- 'Linux/audio_device_linux_pulse.cc', +- 'Linux/audio_device_linux_pulse.h', + 'Linux/audio_mixer_manager_linux_alsa.cc', + 'Linux/audio_mixer_manager_linux_alsa.h', +- 'Linux/audio_mixer_manager_linux_pulse.cc', +- 'Linux/audio_mixer_manager_linux_pulse.h', + 'Linux/latebindingsymboltable.cc', + 'Linux/latebindingsymboltable.h', +- 'Linux/pulseaudiosymboltable.cc', +- 'Linux/pulseaudiosymboltable.h', + # Don't remove these, needed for dummy device + # 'Linux/audio_device_utility_linux.cc', + # 'Linux/audio_device_utility_linux.h', +@@ -131,7 +119,6 @@ + }], + ['OS=="linux"', { + 'defines': [ +- 'LINUX_PULSE', + 'LINUX_ALSA', + ], + 'include_dirs': [ +@@ -141,9 +128,28 @@ + 'libraries': [ + '-ldl', + '-lasound', +- '-lpulse', + ], + }, ++ 'conditions': [ ++ ['include_pulse_audio==1', { ++ 'defines': [ ++ 'LINUX_PULSE', ++ ], ++ 'sources': [ ++ 'Linux/audio_device_linux_pulse.cc', ++ 'Linux/audio_device_linux_pulse.h', ++ 'Linux/audio_mixer_manager_linux_pulse.cc', ++ 'Linux/audio_mixer_manager_linux_pulse.h', ++ 'Linux/pulseaudiosymboltable.cc', ++ 'Linux/pulseaudiosymboltable.h', ++ ], ++ 'link_settings': { ++ 'libraries': [ ++ '-lpulse', ++ ], ++ }, ++ }], ++ ], + }], + ['OS=="mac"', { + 'include_dirs': [ +Index: src/build/common.gypi +=================================================================== +--- src/build/common.gypi (revision 241) ++++ src/build/common.gypi (revision 242) +@@ -10,9 +10,19 @@ + + { + 'variables': { +- # TODO(ajm): use webrtc_standalone to match NaCl? +- 'build_with_chromium%': 1, # 1 to build webrtc with chromium ++ # Putting a variables dict inside another variables dict looks kind of ++ # weird. This is done so that 'build_with_chromium' is defined as ++ # variable within the outer variables dict here. This is necessary ++ # to get these variables defined for the conditions within this variables ++ # dict that operate on these variables (e.g., for setting ++ # 'include_pulse_audio', we need to have 'build_with_chromium' already set). ++ 'variables': { ++ # TODO(ajm): use webrtc_standalone to match NaCl? ++ 'build_with_chromium%': 1, # 1 to build webrtc with chromium ++ }, + ++ 'build_with_chromium%': '<(build_with_chromium)', ++ + # Selects fixed-point code where possible. + # TODO(ajm): we'd like to set this based on the target OS/architecture. + 'prefer_fixed_point%': 0,