| Index: third_party/tcmalloc/chromium/src/thread_cache.h
|
| diff --git a/third_party/tcmalloc/chromium/src/thread_cache.h b/third_party/tcmalloc/chromium/src/thread_cache.h
|
| index 529402908450e9efb3f06708cdbd6dbecc7c7236..221cacb8eb34b292c92b47d416a588a5b8fd019d 100644
|
| --- a/third_party/tcmalloc/chromium/src/thread_cache.h
|
| +++ b/third_party/tcmalloc/chromium/src/thread_cache.h
|
| @@ -259,7 +259,16 @@ class ThreadCache {
|
| // a good tradeoff for us.
|
| #ifdef HAVE_TLS
|
| static __thread ThreadCache* threadlocal_heap_
|
| -# ifdef HAVE___ATTRIBUTE__
|
| + // This code links against pyautolib.so, which causes dlopen() on that shared
|
| + // object to fail when -fprofile-generate is used with it. Ideally
|
| + // pyautolib.so should not link against this code. There is a bug filed for
|
| + // that:
|
| + // http://code.google.com/p/chromium/issues/detail?id=124489
|
| + // For now the workaround is to pass in -DPGO_GENERATE when building Chrome
|
| + // for instrumentation (-fprofile-generate).
|
| + // For all non-instrumentation builds, this define will not be set and the
|
| + // performance benefit of "intial-exec" will be achieved.
|
| +#if defined(HAVE___ATTRIBUTE__) && !defined(PGO_GENERATE)
|
| __attribute__ ((tls_model ("initial-exec")))
|
| # endif
|
| ;
|
|
|