It seems like the bug was fixed in branch 10.5 by this patch [1]. I was able to successfully compile branch 10.5 on both Linux and MacOS. And I suppose the patch will be back-ported to branch 10.4 sooner or later.
[1] https://github.com/v8/v8/commit/904c8cedf85c7223f96ea084953089fea9a36bdd Angelo Il giorno mercoledì 27 luglio 2022 alle 10:32:52 UTC+2 [email protected] ha scritto: > Hi Angelo and Maddie, > > The root cause is *unsigned long* is missed the static_assert. Here is > the git patch for your reference. I just had it built successfully. > > --- a/src/objects/simd.cc > +++ b/src/objects/simd.cc > @@ -153,6 +153,7 @@ inline uintptr_t fast_search_noavx(T* array, uintptr_t > array_len, > uintptr_t index, T search_element) { > > static_assert(std::is_same<T, uint32_t>::value || > std::is_same<T, uint64_t>::value || > *+ std::is_same<T, unsigned long>::value ||* > std::is_same<T, double>::value); > > #if !(defined(__SSE3__) || defined(NEON64)) > @@ -245,6 +246,7 @@ TARGET_AVX2 inline uintptr_t fast_search_avx(T* array, > uintptr_t array_len, > T search_element) { > > static_assert(std::is_same<T, uint32_t>::value || > std::is_same<T, uint64_t>::value || > *+ std::is_same<T, unsigned long>::value ||* > std::is_same<T, double>::value); > > const int target_align = 32; > > Cheers, > Sam > > On Wednesday, July 27, 2022 at 3:50:24 PM UTC+8 Maddie Zhan wrote: > >> Hit the same error on both Intel and M1 Mac running macOS Monterey 12.4, >> with XCode 13.3. >> >> Compiling V8 v10.4.132.20, the same codebase compiled just fine for Linux >> and Windows. >> >> [513/1352] CXX obj/v8_base_without_compiler/simd.o >> FAILED: obj/v8_base_without_compiler/simd.o >> ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF >> obj/v8_base_without_compiler/simd.o.d -D__STDC_CONSTANT_MACROS >> -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 >> -D_LIBCPP_HAS_NO_ALIGNED_ALLOCATION -DCR_XCODE_VERSION=1330 >> -DCR_CLANG_REVISION=\"llvmorg-15-init-11722-g3f3a235a-2\" >> -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0 -DNDEBUG >> -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 >> -DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64 -DENABLE_GDB_JIT_INTERFACE >> -DV8_ATOMIC_OBJECT_FIELD_WRITES -DV8_ENABLE_LAZY_SOURCE_POSITIONS >> -DV8_SHARED_RO_HEAP -DV8_WIN64_UNWINDING_INFO >> -DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH -DV8_SHORT_BUILTIN_CALLS >> -DV8_ENABLE_SYSTEM_INSTRUMENTATION -DV8_ENABLE_WEBASSEMBLY >> -DV8_ALLOCATION_FOLDING -DV8_ALLOCATION_SITE_TRACKING >> -DV8_ADVANCED_BIGINT_ALGORITHMS -DV8_DEPRECATION_WARNINGS >> -DV8_IMMINENT_DEPRECATION_WARNINGS -DCPPGC_CAGED_HEAP >> -DCPPGC_YOUNG_GENERATION -DV8_TARGET_ARCH_X64 -DV8_HAVE_TARGET_OS >> -DV8_TARGET_OS_MACOS -I../.. -Igen -I../../include -Igen/include >> -I../../third_party/zlib -Wall -Werror -Wextra -Wimplicit-fallthrough >> -Wunreachable-code-aggressive -Wthread-safety -Wunguarded-availability >> -Wno-missing-field-initializers -Wno-unused-parameter -Wloop-analysis >> -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-psabi >> -Wno-ignored-pragma-optimize -Wno-unqualified-std-cast-call -Xclang >> -no-opaque-pointers -Wshadow -fno-delete-null-pointer-checks -fno-ident >> -fno-strict-aliasing -fstack-protector -fcolor-diagnostics >> -fmerge-all-constants >> -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm >> -instcombine-lower-dbg-declare=0 -ffp-contract=off -arch x86_64 >> -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= >> -ffile-compilation-dir=. -no-canonical-prefixes -fno-omit-frame-pointer -g0 >> -isysroot >> ../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk >> >> -mmacosx-version-min=10.13 -Wheader-hygiene -Wstring-conversion >> -Wtautological-overlap-compare -Wmissing-field-initializers -Wno-shadow >> -Wunreachable-code -Wshorten-64-to-32 -O3 -fvisibility=default >> -Wexit-time-destructors -std=c++17 -Wno-trigraphs -fno-aligned-new >> -fno-excepti >> >> ons -fno-rtti -c ../../src/objects/simd.cc -o >> obj/v8_base_without_compiler/simd.o >> ../../src/objects/simd.cc:246:3: error: static_assert failed due to >> requirement 'std::is_same<unsigned long, unsigned int>::value || >> std::is_same<unsigned long, unsigned long long>::value || >> std::is_same<unsigned long, double>::value' >> static_assert(std::is_same<T, uint32_t>::value || >> ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> ../../src/objects/simd.cc:315:12: note: in instantiation of function >> template specialization 'v8::internal::(anonymous >> namespace)::fast_search_avx<unsigned long>' requested here >> return fast_search_avx(array, array_len, index, search_element); >> ^ >> ../../src/objects/simd.cc:380:12: note: in instantiation of function >> template specialization 'v8::internal::(anonymous >> namespace)::search<unsigned long>' requested here >> return search<Tagged_t>(array, array_len, from_index, >> ^ >> ../../src/objects/simd.cc:391:10: note: in instantiation of function >> template specialization 'v8::internal::(anonymous >> namespace)::ArrayIndexOfIncludes<v8::internal::(anonymous >> namespace)::ArrayIndexOfIncludesKind::OBJECTORSMI>' requested here >> return ArrayIndexOfIncludes<ArrayIndexOfIncludesKind::OBJECTORSMI>( >> ^ >> ../../src/objects/simd.cc:154:3: error: static_assert failed due to >> requirement 'std::is_same<unsigned long, unsigned int>::value || >> std::is_same<unsigned long, unsigned long long>::value || >> std::is_same<unsigned long, double>::value' >> static_assert(std::is_same<T, uint32_t>::value || >> ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> ../../src/objects/simd.cc:317:12: note: in instantiation of function >> template specialization 'v8::internal::(anonymous >> namespace)::fast_search_noavx<unsigned long>' requested here >> return fast_search_noavx(array, array_len, index, search_element); >> ^ >> ../../src/objects/simd.cc:380:12: note: in instantiation of function >> template specialization 'v8::internal::(anonymous >> namespace)::search<unsigned long>' requested here >> return search<Tagged_t>(array, array_len, from_index, >> ^ >> ../../src/objects/simd.cc:391:10: note: in instantiation of function >> template specialization 'v8::internal::(anonymous >> namespace)::ArrayIndexOfIncludes<v8::internal::(anonymous >> namespace)::ArrayIndexOfIncludesKind::OBJECTORSMI>' requested here >> return ArrayIndexOfIncludes<ArrayIndexOfIncludesKind::OBJECTORSMI>( >> ^ >> 2 errors generated. >> >> On Monday, June 20, 2022 at 8:32:51 PM UTC+8 [email protected] wrote: >> >>> >>> Just wanted to report that I observed the following error while >>> compiling >>> V8 v10.4.132.8 on OSX platform. The error is NOT reproducible on Linux. >>> >>> Ciao, >>> Angelo >>> >>> [1401/1848] CXX obj/v8_base_without_compiler/simd.o >>> FAILED: obj/v8_base_without_compiler/simd.o >>> ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF >>> obj/v8_base_without_compiler/simd.o.d -DDCHECK_ALWAYS_ON=1 >>> -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS >>> -D_LIBCPP_HAS_NO_ALIGNED_ALLOCATION -DCR_XCODE_VERSION=1240 >>> -DCR_CLANG_REVISION=\"llvmorg-15-init-11722-g3f3a235a-2\" >>> -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0 -D_DEBUG >>> -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DCPPGC_VERIFY_HEAP >>> -DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64 -DENABLE_GDB_JIT_INTERFACE >>> -DOBJECT_PRINT -DVERIFY_HEAP -DV8_TRACE_MAPS -DV8_ENABLE_ALLOCATION_TIMEOUT >>> -DV8_ENABLE_FORCE_SLOW_PATH -DV8_ENABLE_DOUBLE_CONST_STORE_CHECK >>> -DV8_INTL_SUPPORT -DENABLE_HANDLE_ZAPPING -DV8_CODE_COMMENTS >>> -DV8_ENABLE_DEBUG_CODE -DV8_ENABLE_HEAP_SNAPSHOT_VERIFY >>> -DV8_SNAPSHOT_NATIVE_CODE_COUNTERS -DV8_ATOMIC_OBJECT_FIELD_WRITES >>> -DV8_ENABLE_LAZY_SOURCE_POSITIONS -DV8_SHARED_RO_HEAP >>> -DV8_WIN64_UNWINDING_INFO -DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH >>> -DV8_SHORT_BUILTIN_CALLS -DV8_ENABLE_SYSTEM_INSTRUMENTATION >>> -DV8_ENABLE_WEBASSEMBLY -DV8_ALLOCATION_FOLDING >>> -DV8_ALLOCATION_SITE_TRACKING -DV8_ADVANCED_BIGINT_ALGORITHMS >>> -DV8_ENABLE_CHECKS -DV8_DEPRECATION_WARNINGS >>> -DV8_IMMINENT_DEPRECATION_WARNINGS -DCPPGC_CAGED_HEAP >>> -DCPPGC_YOUNG_GENERATION -DV8_TARGET_ARCH_X64 -DV8_HAVE_TARGET_OS >>> -DV8_TARGET_OS_MACOS -DDEBUG -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 >>> -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0 >>> -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../.. >>> -Igen -I../../include -Igen/include -I../../third_party/icu/source/common >>> -I../../third_party/icu/source/i18n -I../../third_party/zlib -Wall -Wextra >>> -Wimplicit-fallthrough -Wunreachable-code-aggressive -Wthread-safety >>> -Wunguarded-availability -Wno-missing-field-initializers >>> -Wno-unused-parameter -Wloop-analysis -Wno-unneeded-internal-declaration >>> -Wenum-compare-conditional -Wno-psabi -Wno-ignored-pragma-optimize >>> -Wno-unqualified-std-cast-call -Xclang -no-opaque-pointers -Wshadow >>> -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing >>> -fstack-protector-strong -fcolor-diagnostics -fmerge-all-constants >>> -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm >>> -instcombine-lower-dbg-declare=0 -ffp-contract=off -arch x86_64 >>> -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= >>> -ffile-compilation-dir=. -no-canonical-prefixes >>> -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -g2 -gdwarf-aranges >>> -Xclang -debug-info-kind=limited -isysroot >>> ../../../../../../../../Applications/ >>> Xcode_12.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk >>> >>> -mmacosx-version-min=10.13 -Wheader-hygiene -Wstring-conversion >>> -Wtautological-overlap-compare -Wmissing-field-initializers -Wno-shadow >>> -Wunreachable-code -Wshorten-64-to-32 -O3 -fvisibility=default >>> -Wexit-time-destructors -Wno-undefined-bool-conversion >>> -Wno-tautological-undefined-compare -std=c++17 -Wno-trigraphs >>> -fno-aligned-new -fno-exceptions -fno-rtti -c ../../src/objects/simd.cc -o >>> obj/v8_base_without_compiler/simd.o >>> ../../src/objects/simd.cc:246:3: error: static_assert failed due to >>> requirement 'std::is_same<unsigned long, unsigned int>::value || >>> std::is_same<unsigned long, unsigned long long>::value || >>> std::is_same<unsigned long, double>::value' >>> static_assert(std::is_same<T, uint32_t>::value || >>> ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> ../../src/objects/simd.cc:315:12: note: in instantiation of function >>> template specialization 'v8::internal::(anonymous >>> namespace)::fast_search_avx<unsigned long>' requested here >>> return fast_search_avx(array, array_len, index, search_element); >>> ^ >>> ../../src/objects/simd.cc:380:12: note: in instantiation of function >>> template specialization 'v8::internal::(anonymous >>> namespace)::search<unsigned long>' requested here >>> return search<Tagged_t>(array, array_len, from_index, >>> ^ >>> ../../src/objects/simd.cc:391:10: note: in instantiation of function >>> template specialization 'v8::internal::(anonymous >>> namespace)::ArrayIndexOfIncludes<v8::internal::(anonymous >>> namespace)::ArrayIndexOfIncludesKind::OBJECTORSMI>' requested here >>> return ArrayIndexOfIncludes<ArrayIndexOfIncludesKind::OBJECTORSMI>( >>> ^ >>> ../../src/objects/simd.cc:154:3: error: static_assert failed due to >>> requirement 'std::is_same<unsigned long, unsigned int>::value || >>> std::is_same<unsigned long, unsigned long long>::value || >>> std::is_same<unsigned long, double>::value' >>> static_assert(std::is_same<T, uint32_t>::value || >>> ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> ../../src/objects/simd.cc:317:12: note: in instantiation of function >>> template specialization 'v8::internal::(anonymous >>> namespace)::fast_search_noavx<unsigned long>' requested here >>> return fast_search_noavx(array, array_len, index, search_element); >>> ^ >>> ../../src/objects/simd.cc:380:12: note: in instantiation of function >>> template specialization 'v8::internal::(anonymous >>> namespace)::search<unsigned long>' requested here >>> return search<Tagged_t>(array, array_len, from_index, >>> ^ >>> ../../src/objects/simd.cc:391:10: note: in instantiation of function >>> template specialization 'v8::internal::(anonymous >>> namespace)::ArrayIndexOfIncludes<v8::internal::(anonymous >>> namespace)::ArrayIndexOfIncludesKind::OBJECTORSMI>' requested here >>> return ArrayIndexOfIncludes<ArrayIndexOfIncludesKind::OBJECTORSMI>( >>> ^ >>> 2 errors generated. >>> >> -- -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-dev/d41bea4d-2fcc-48da-8c5a-78b658151235n%40googlegroups.com.
