Commit d2ba3bf8 authored by Daniel Bratell's avatar Daniel Bratell Committed by Commit Bot

Turn off jumbo for everything built with the nacl toolchain

nacl is using an old toolchain and it seem there are constructs
in the current code it cannot handle. Rather than chasing those
down, just disable jumbo for everything built with the nacl
toolchain.

Example error:

In file included from newlib_pnacl_nonsfi/gen/ipc/ipc_jumbo_1.cc:7:
In file included from ./../../ipc/ipc_channel_common.cc:6:
In file included from ../../ipc/ipc_channel.h:14:
In file included from ../../base/bind.h:10:
In file included from ../../base/bind_internal.h:17:
../../base/memory/raw_scoped_refptr_mismatch_checker.h:30:61: error: 'AddRef' is a private member of 'scoped_refptr<IPC::ChannelProxy::Context>'
                        void_t<decltype(std::declval<T*>()->AddRef()),
                                                            ^
../../base/bind_internal.h:905:11: note: in instantiation of template class 'base::internal::IsRefCountedType<IPC::SyncChannel::ReceivedSyncMsgQueue, void>' requested here
          IsRefCountedType<std::remove_pointer_t<DecayedReceiver>>::value,
          ^
../../base/bind_internal.h:922:1: note: in instantiation of template class 'base::internal::MakeBindStateTypeImpl<true, void (IPC::SyncChannel::ReceivedSyncMsgQueue::*)(IPC::SyncChannel::SyncContext *), IPC::SyncChannel::ReceivedSyncMsgQueue *, base::internal::RetainedRefWrapper<IPC::SyncChannel::SyncContext> >' requested here
using MakeBindStateType =
^
../../base/bind.h:247:31: note: in instantiation of template type alias 'MakeBindStateType' requested here
  using BindState = internal::MakeBindStateType<Functor, Args...>;
                              ^
../../base/bind.h:270:16: note: in instantiation of function template specialization 'base::BindRepeating<void (IPC::SyncChannel::ReceivedSyncMsgQueue::*)(IPC::SyncChannel::SyncContext *), IPC::SyncChannel::ReceivedSyncMsgQueue *, base::internal::RetainedRefWrapper<IPC::SyncChannel::SyncContext> >' requested here
  return base::BindRepeating(std::forward<Functor>(functor),
               ^
./../../ipc/ipc_sync_channel.cc:175:28: note: in instantiation of function template specialization 'base::Bind<void (IPC::SyncChannel::ReceivedSyncMsgQueue::*)(IPC::SyncChannel::SyncContext *), IPC::SyncChannel::ReceivedSyncMsgQueue *, base::internal::RetainedRefWrapper<IPC::SyncChannel::SyncContext> >' requested here
          FROM_HERE, base::Bind(&ReceivedSyncMsgQueue::DispatchMessagesTask,
                           ^
../../base/memory/scoped_refptr.h:277:15: note: declared private here
  static void AddRef(T* ptr);
              ^

Change-Id: I82a13431a74c743cc3ad20c6d4308e2986d88a5c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1474947
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#681247}
parent 236a79bd
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
import("//build/config/nacl/config.gni") # To see if jumbo should be turned off
import("//build/split_static_library.gni") # When someone uses that target_type import("//build/split_static_library.gni") # When someone uses that target_type
import("//build/toolchain/goma.gni") import("//build/toolchain/goma.gni")
...@@ -78,6 +79,11 @@ template("internal_jumbo_target") { ...@@ -78,6 +79,11 @@ template("internal_jumbo_target") {
if (defined(invoker.never_build_jumbo) && invoker.never_build_jumbo) { if (defined(invoker.never_build_jumbo) && invoker.never_build_jumbo) {
use_jumbo_build_for_target = false use_jumbo_build_for_target = false
} }
if (is_nacl_irt || is_nacl_nonsfi) {
# The code is barely compatible with the nacl toolchain anymore and we
# don't want to stress it further with jumbo compilation units.
use_jumbo_build_for_target = false
}
foreach(excluded_target, jumbo_build_excluded) { foreach(excluded_target, jumbo_build_excluded) {
if (excluded_target == target_name || if (excluded_target == target_name ||
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment