From 37c7eb27227b15c2ac4ce3fb55464d3f0a5492bc Mon Sep 17 00:00:00 2001 From: Omer Katz Date: Thu, 15 Apr 2021 02:40:05 +0200 Subject: [PATCH] cppgc: Explicitly fail on V8 target with cppgc_is_standalone building the unittests target for example fails when cppgc_is_standalone is set to true due to conflicting implementations of trace-event.h. It is not clear from the output for these failures that V8 targets cannot be built with cppgc_is_standalone. We could disable all non-cppgc targets that depend on cppgc when cppgc_is_standalone is set, but that would be fragile and dirty. Since all V8 targets need to include cppgc-js headers, adding a static assert in cpp-heap.h would cover all V8 targets. The static assert doesn't hide the current output, butadds a clear and expllicit message stating that it cannot be done. Bug: chromium:1056170 Change-Id: I8bd1b1a5ada18d9688e6b78de4693386539d78bf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2826535 Reviewed-by: Michael Lippautz Commit-Queue: Omer Katz Cr-Commit-Position: refs/heads/master@{#73968} --- src/heap/cppgc-js/cpp-heap.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/heap/cppgc-js/cpp-heap.h b/src/heap/cppgc-js/cpp-heap.h index b13fd25a32..119e34f7f1 100644 --- a/src/heap/cppgc-js/cpp-heap.h +++ b/src/heap/cppgc-js/cpp-heap.h @@ -5,6 +5,11 @@ #ifndef V8_HEAP_CPPGC_JS_CPP_HEAP_H_ #define V8_HEAP_CPPGC_JS_CPP_HEAP_H_ +#if CPPGC_IS_STANDALONE +static_assert( + false, "V8 targets can not be built with cppgc_is_standalone set to true."); +#endif + #include "include/v8-cppgc.h" #include "include/v8.h" #include "src/base/macros.h"