diff --git a/config/BUILDCONFIG.gn b/config/BUILDCONFIG.gnindex 9e843f3..6e718e1 100644--- a/config/BUILDCONFIG.gn+++ b/config/BUILDCONFIG.gn@@ -438,7 +438,6 @@ default_compiler_configs = [ "//build/config/compiler:no_exceptions", "//build/config/compiler:no_rtti", "//build/config/compiler:runtime_library",- "//build/config/compiler:thin_archive", "//build/config/coverage:default_coverage", "//build/config/sanitizers:default_sanitizer_flags", ]diff --git a/config/android/BUILD.gn b/config/android/BUILD.gnindex b69d42b..c2c0897 100644--- a/config/android/BUILD.gn+++ b/config/android/BUILD.gn@@ -27,6 +27,9 @@ config("compiler") { # Forces full rebuilds on NDK rolls. To rebuild everything when NDK version # stays the same, increment the suffix number. "ANDROID_NDK_VERSION_ROLL=${android_ndk_version}_1",+ "_GLIBCXX_USE_C99=1",+ "_GLIBCXX_HAVE_WCSTOF=1",+ "_GLIBCXX_USE_C99_MATH_TR1=1", ]
if (current_cpu == "mips64el") {@@ -109,6 +112,26 @@ config("runtime_library") { rebase_path("$android_ndk_root/sources/android/support/include", root_build_dir) ]
+ if (current_cpu == "arm") {+ cflags_cc += [+ "-isystem" ++ rebase_path("$android_ndk_root/sources/cxx-stl/gnu-libstdc++/4.9/include",+ root_build_dir),+ "-isystem" ++ rebase_path("$android_ndk_root/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include",+ root_build_dir),+ ]+ } else if (current_cpu == "arm64") {+ cflags_cc += [+ "-isystem" ++ rebase_path("$android_ndk_root/sources/cxx-stl/gnu-libstdc++/4.9/include",+ root_build_dir),+ "-isystem" ++ rebase_path("$android_ndk_root/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include",+ root_build_dir),+ ]+ }+ defines = [ "__GNU_SOURCE=1", # Necessary for clone(). "CHROMIUM_CXX_TWEAK_INLINES", # Saves binary size.diff --git a/config/compiler/BUILD.gn b/config/compiler/BUILD.gnindex 402dac4..ee3015a 100644--- a/config/compiler/BUILD.gn+++ b/config/compiler/BUILD.gn@@ -1456,7 +1456,7 @@ config("default_warnings") {
# Don't warn about "maybe" uninitialized. Clang doesn't include this # in -Wall but gcc does, and it gives false positives.- cflags += [ "-Wno-maybe-uninitialized" ]+ cflags += [ "-Wno-uninitialized" ] cflags += [ "-Wno-deprecated-declarations" ]
# -Wcomment gives too many false positives in the case a# Build arguments go here.# See "gn args <out_dir> --list" for available build arguments.is_debug = trueandroid_full_debug = is_debugis_component_build = falsetarget_os = "android"target_cpu = "arm64"use_custom_libcxx = falseuse_custom_libcxx_for_host = trueuse_allocator_shim = falsev8_enable_i18n_support = falsev8_use_external_startup_data = falsev8_use_snapshot = falsev8_static_library = true07-15 16:02:35.393 7153 7269 E v8 : #07-15 16:02:35.393 7153 7269 E v8 : # Fatal error in ../../src/handles.cc, line 8607-15 16:02:35.393 7153 7269 E v8 : #07-15 16:02:35.393 7153 7269 E v8 : Debug check failed: limit - current->next < kHandleBlockSize (1022 vs. 1022).07-15 16:02:35.393 7153 7269 E v8 :07-15 16:02:35.393 7153 7269 E v8 : #07-15 16:02:35.393 7153 7269 E v8 : #07-15 16:02:35.393 7153 7269 E v8 : #07-15 16:02:35.393 7153 7269 E v8 : #FailureMessage Object: 0x74f95e01a007-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : # Fatal error in ../../src/api.cc, line 135007-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : Check failed: !value_obj->IsJSReceiver() || value_obj->IsTemplateInfo().07-15 13:42:24.488 23217 23318 E v8 :07-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : #FailureMessage Object: 0x74f95f90e0I built it with these settings:# Build arguments go here.# See "gn args <out_dir> --list" for available build arguments.is_debug = trueandroid_full_debug = is_debugis_component_build = falsetarget_os = "android"target_cpu = "arm64"use_custom_libcxx = falseuse_custom_libcxx_for_host = trueuse_allocator_shim = falsev8_enable_i18n_support = falsev8_use_external_startup_data = falsev8_use_snapshot = falsev8_static_library = true
And I encountered two types of failures. The first one occurs when creating Isolate(Isolate::New).07-15 16:02:35.393 7153 7269 E v8 : #07-15 16:02:35.393 7153 7269 E v8 : # Fatal error in ../../src/handles.cc, line 8607-15 16:02:35.393 7153 7269 E v8 : #07-15 16:02:35.393 7153 7269 E v8 : Debug check failed: limit - current->next < kHandleBlockSize (1022 vs. 1022).07-15 16:02:35.393 7153 7269 E v8 :07-15 16:02:35.393 7153 7269 E v8 : #07-15 16:02:35.393 7153 7269 E v8 : #07-15 16:02:35.393 7153 7269 E v8 : #07-15 16:02:35.393 7153 7269 E v8 : #FailureMessage Object: 0x74f95e01a0
and the second one is when setting field to prototype template(Template->PrototypeTemplate()->Set()).07-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : # Fatal error in ../../src/api.cc, line 135007-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : Check failed: !value_obj->IsJSReceiver() || value_obj->IsTemplateInfo().07-15 13:42:24.488 23217 23318 E v8 :07-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : #FailureMessage Object: 0x74f95f90e0
On Mon, Jul 15, 2019 at 10:05 AM Jaemin Park <pppa...@gmail.com> wrote:I built it with these settings:# Build arguments go here.# See "gn args <out_dir> --list" for available build arguments.is_debug = trueandroid_full_debug = is_debugis_component_build = falsetarget_os = "android"target_cpu = "arm64"use_custom_libcxx = falseuse_custom_libcxx_for_host = trueuse_allocator_shim = falsev8_enable_i18n_support = falsev8_use_external_startup_data = falsev8_use_snapshot = falsev8_static_library = trueAre you sure you want v8_use_snapshot=false ? It massively slows down startup while providing no benefit that I'm aware of.
And I encountered two types of failures. The first one occurs when creating Isolate(Isolate::New).07-15 16:02:35.393 7153 7269 E v8 : #07-15 16:02:35.393 7153 7269 E v8 : # Fatal error in ../../src/handles.cc, line 8607-15 16:02:35.393 7153 7269 E v8 : #07-15 16:02:35.393 7153 7269 E v8 : Debug check failed: limit - current->next < kHandleBlockSize (1022 vs. 1022).07-15 16:02:35.393 7153 7269 E v8 :07-15 16:02:35.393 7153 7269 E v8 : #07-15 16:02:35.393 7153 7269 E v8 : #07-15 16:02:35.393 7153 7269 E v8 : #07-15 16:02:35.393 7153 7269 E v8 : #FailureMessage Object: 0x74f95e01a0At first glance, one might suspect that this check should maybe check for <= rather than <, but it's been this way since 2011, so presumably it's working as intended (and, in fact, maybe ruling out the == case is precisely the point here; I'm not familiar with this code). Can you reproduce this without modifications to V8? Creating Isolates generally works in Debug mode, so I wonder what might be different in your environment.
and the second one is when setting field to prototype template(Template->PrototypeTemplate()->Set()).07-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : # Fatal error in ../../src/api.cc, line 135007-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : Check failed: !value_obj->IsJSReceiver() || value_obj->IsTemplateInfo().07-15 13:42:24.488 23217 23318 E v8 :07-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : #FailureMessage Object: 0x74f95f90e0This looks like you're passing an invalid value to the function. It must be a v8::Object or a v8::ObjectTemplate or a v8::FunctionTemplate.
and the second one is when setting field to prototype template(Template->PrototypeTemplate()->Set()).07-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : # Fatal error in ../../src/api.cc, line 135007-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : Check failed: !value_obj->IsJSReceiver() || value_obj->IsTemplateInfo().07-15 13:42:24.488 23217 23318 E v8 :07-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : #07-15 13:42:24.488 23217 23318 E v8 : #FailureMessage Object: 0x74f95f90e0This looks like you're passing an invalid value to the function. It must be a v8::Object or a v8::ObjectTemplate or a v8::FunctionTemplate.According to code and stack dump, value_obj should be v8::ObjectTemplate or v8::FunctionTemplate. I am going to investigate which type of the object is.