There was no flag day event where everything was switched to C++20 _en masse_ so what minor/patch works with your compiler and stdlib may be hit or miss. The fact the compiler accepts -std=c++20 means it's at least aware of C++20 - but maybe not everything, and evidently the stdlib isn't fully conformant.
If it helps, I know for sure that 12.4.254.21 builds fine in C++17 mode because that's the version we (Node.js) currently ship in our v22.x release line. Some spelunking through the git history suggests 12.7 turned on C++20, in commit https://github.com/v8/v8/commit/f06f6d1a45fe On Fri, Sep 20, 2024 at 5:37 PM Alex Dovzhanyn <dovzhanyn.a...@gmail.com> wrote: > > Thanks so much for the response, Ben! > > I think that may be the issue -- I'm trying to compile 13.0 and am trying to > build with apple clang c++20, and it's just continually tripping up on > itself. It seems that apple clang doesn't support enable_view. > > I've since switched to trying to build 12.9 but I think I was still trying to > build with c++20. Is there a way to specify within gn.args that c++17 should > be used? I couldn't find a relevant flag in the list of available flags. > Unless 12.9 is indeed c++20? I'm seeing -std=c++20 being passed in as an > argument during the build (and I'm not passing it myself, so I'm guessing its > coming from ninja or somewhere else in v8). > > Apologies for any ignorance on my part -- I've only recently started working > with c++ so I'm not deeply familiar with the tooling. > > Cheers, > Alex > > On Friday, September 20, 2024 at 4:53:30 AM UTC-4 Ben Noordhuis wrote: >> >> On Thu, Sep 19, 2024 at 9:15 PM Alex Dovzhanyn <dovzhan...@gmail.com> wrote: >> > >> > Hey all, I'm trying to follow the steps listed here in the V8 docs to >> > build V8 on OSX. >> > >> > gn args out.gn/x64.release.sample >> > shows the generated arguments as: >> > >> > is_component_build = false >> > is_debug = false >> > target_cpu = "x64" >> > use_custom_libcxx = false >> > v8_monolithic = true >> > v8_use_external_startup_data = false >> > >> > However, when I run ninja -C out.gn/x64.release.sample v8_monolith >> > the build runs about halfway but ultimately fails with the following error: >> > >> > In file included from ../../src/codegen/external-reference-table.h:8: >> > ../../include/v8-memory-span.h:44:36: error: no member named 'enable_view' >> > in namespace 'std::ranges' 44 | inline constexpr bool >> > std::ranges::enable_view<v8::MemorySpan<T>> = true; | ~~~~~~~~~~~~~^ >> > ../../include/v8-memory-span.h:44:47: error: expected ';' after top level >> > declarator 44 | inline constexpr bool >> > std::ranges::enable_view<v8::MemorySpan<T>> = true; | ^ | ; In file >> > included from ../../src/codegen/external-reference-table.cc:5: In file >> > included from ../../src/codegen/external-reference-table.h:9: In file >> > included from ../../src/builtins/accessors.h:9: In file included from >> > ../../src/base/bit-field.h:12: In file included from >> > ../../src/base/macros.h:13: In file included from >> > ../../src/base/logging.h:11: In file included from >> > ../../../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/include/c++/v1/sstream:184: >> > In file included from >> > ../../../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/include/c++/v1/istream:163: >> > In file included from >> > ../../../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/include/c++/v1/ostream:137: >> > In file included from >> > ../../../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/include/c++/v1/bitset:122: >> > In file included from >> > ../../../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/include/c++/v1/string:532: >> > In file included from >> > ../../../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/include/c++/v1/string_view:191: >> > >> > ../../../../../../../../../Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/include/c++/v1/__ranges/enable_view.h:32:23: >> > error: redefinition of 'enable_view' 32 | inline constexpr bool >> > enable_view = derived_from<_Tp, view_base>; | ^ >> > ../../include/v8-memory-span.h:44:36: note: previous definition is here 44 >> > | inline constexpr bool std::ranges::enable_view<v8::MemorySpan<T>> = >> > true; | ^ 3 errors generated. >> > >> > I am building on OSX 12.5 with Xcode 13.4 installed -- using Apple clang >> > version 13.1.6 (clang-1316.0.21.2.5). >> > >> > Any help would be very greatly appreciated! >> >> For building 13.0 or the main branch a C++20-capable compiler and >> standard library are required; enable_view is a C++20-ism. Your >> options are: >> >> 1. Set use_custom_libcxx=true and use the bundled libc++ (assuming >> Xcode can handle C++20; I don't know) >> >> 2. Build an older version. I believe 12.9 is still C++17. > > -- > -- > v8-users mailing list > v8-users@googlegroups.com > http://groups.google.com/group/v8-users > --- > You received this message because you are subscribed to the Google Groups > "v8-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to v8-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/v8-users/3b58ea5f-acfb-4440-abe5-f2571f060d1en%40googlegroups.com. -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-users/CAHQurc_C1_Xop-5kzErWNwQZ-_BWa_gxaXok8pD_e36ZQ_Kjyw%40mail.gmail.com.