Skip to content

V8 CI build error on ppc #52661

Description

@targos

@nodejs/platform-ppc

We missed it in the 12.4 upgrade PR.

https://ci.nodejs.org/job/node-test-commit-v8-linux/5914/nodes=rhel8-ppc64le,v8test=v8test/

21:19:30 FAILED: obj/v8_base_without_compiler/turboshaft-graph-interface.o 
21:19:30 ccache g++ -MD -MF obj/v8_base_without_compiler/turboshaft-graph-interface.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -D_GLIBCXX_ASSERTIONS=1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64 -DENABLE_GDB_JIT_INTERFACE -DV8_INTL_SUPPORT -DV8_USE_EXTERNAL_STARTUP_DATA -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_ENABLE_SPARKPLUG -DV8_ENABLE_TURBOFAN -DV8_ENABLE_WEBASSEMBLY -DV8_ENABLE_CONTINUATION_PRESERVED_EMBEDDER_DATA -DV8_ALLOCATION_FOLDING -DV8_ALLOCATION_SITE_TRACKING -DV8_ADVANCED_BIGINT_ALGORITHMS -DV8_USE_ZLIB -DV8_ENABLE_MAGLEV_GRAPH_PRINTER -DV8_ENABLE_EXTENSIBLE_RO_SNAPSHOT -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS -DCPPGC_SLIM_WRITE_BARRIER -DV8_TARGET_ARCH_PPC64 -DV8_TARGET_ARCH_PPC_LE -DV8_HAVE_TARGET_OS -DV8_TARGET_OS_LINUX -DABSL_ALLOCATOR_NOTHROW=1 -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 -I../../third_party/abseil-cpp -Igen/include -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/fp16/src/include -I../../third_party/zlib -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -Wno-comments -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Werror -fno-ident -fno-strict-aliasing -fstack-protector -funwind-tables -fPIC -pipe -pthread -m64 -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -fno-omit-frame-pointer -g0 -ffp-contract=off -Wno-invalid-offsetof -Wno-strict-overflow -Wno-return-type -Wno-int-in-bool-context -Wno-deprecated -Wno-stringop-overflow -Wno-stringop-overread -Wno-restrict -Wno-array-bounds -Wno-nonnull -O3 -fdata-sections -ffunction-sections -fno-math-errno -fvisibility=default -Wno-narrowing -Wno-class-memaccess -std=gnu++2a -fno-exceptions -fno-rtti -c ../../src/wasm/turboshaft-graph-interface.cc -o obj/v8_base_without_compiler/turboshaft-graph-interface.o
21:19:30 In file included from ../../src/wasm/turboshaft-graph-interface.h:13,
21:19:30                  from ../../src/wasm/turboshaft-graph-interface.cc:5:
21:19:30 ../../src/compiler/turboshaft/assembler.h: In static member function ‘static _Res std::_Function_handler<_Res(_ArgTypes ...), _Functor>::_M_invoke(const std::_Any_data&, _ArgTypes&& ...) [with _Res = v8::internal::compiler::turboshaft::V<v8::internal::compiler::turboshaft::WordWithBits<32> >; _Functor = v8::internal::wasm::TurboshaftGraphBuildingInterface::ArrayFillImpl(v8::internal::wasm::WasmGraphBuilderBase::V<v8::internal::HeapObject>, v8::internal::wasm::WasmGraphBuilderBase::OpIndex, v8::internal::wasm::WasmGraphBuilderBase::OpIndex, v8::internal::wasm::WasmGraphBuilderBase::OpIndex, const v8::internal::wasm::ArrayType*, bool)::<lambda()>; _ArgTypes = {}]’:
21:19:30 ../../src/compiler/turboshaft/assembler.h:680:16: error: ‘<anonymous>’ is used uninitialized in this function [-Werror=uninitialized]
21:19:30   680 |     return Get();
21:19:30       |                ^
21:19:30 At global scope:
21:19:30 cc1plus: note: unrecognized command-line option ‘-Wno-stringop-overread’ may have been intended to silence earlier diagnostics
21:19:30 cc1plus: all warnings being treated as errors

Activity

  1. added
    buildIssues and PRs related to Node.js builds or CI infrastructure.
    v8 engineIssues and PRs related to the V8 dependency.
    ppcIssues and PRs related to the Power architecture.
    on Apr 24, 2024
  2. miladfarca commented on Apr 24, 2024

    @miladfarca
    Contributor

    This doesn't happen on our gcc 12 compilers, i'm assuming you are using 10 for ppc? probably related to this bug:
    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86465

  3. richardlau commented on Apr 24, 2024

    @richardlau
    Member

    Yes, we're currently still using gcc-10 and C++17 (-std=gnu++17. for Node.js). The V8 build is running with -std=gnu++2a (C++20).

    FWIW I've been experimenting with gcc-toolset-12 in richardlau-node-test-commit-v8-linux. The build on main from yesterday (today's is still in progress) succeeded with gcc 12: https://ci.nodejs.org/job/richardlau-node-test-commit-v8-linux/nodes=rhel8-ppc64le,v8test=v8test/589/

  4. richardlau commented on Apr 25, 2024

    @richardlau
    Member

    I ran some Node.js builds based on main (91dc8c9) plus commits to use C++20 but these still succeed with gcc-toolset-10:

    so there's some other flag difference between the V8 and Node.js builds causing the compilation error to show up in the V8 one but not in the Node.js one when gcc-toolset-10 is used.

  5. targos commented on Apr 25, 2024

    @targos
    MemberAuthor

    Isn't the main difference that V8 builds use Clang?

  6. richardlau commented on Apr 25, 2024

    @richardlau
    Member

    Isn't the main difference that V8 builds use Clang?

    AFAIK not on ppc64le. You can see in the quoted compile failure in #52661 (comment) that it's executed ccache g++ which would be gcc from the gcc-toolset we select in select-compiler.sh.

  7. richardlau commented on Apr 29, 2024

    @richardlau
    Member

    The reason the Node.js V8 CI fails with gcc 10 but the Node.js CI does not is because the V8 build passes -Werror and -Wall to enable all warnings (with additional flags to turn some of the warning off) and fail on error while the Node.js build does not. Adding -Wall or just -Wuninitialized to the Node.js compile command line flags the same warning, and adding -Werror causes the build to fail.

  8. richardlau commented on May 1, 2024

    @richardlau
    Member

    This may be related to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86465. Dropping optimization to a lower level makes the warning go away (i.e. we get the warning with -O3 but not -O2 or -O1).

    @miladfarca has submitted https://crrev.com/c/5503350 upstream which also makes the warning go away.
    https://ci.nodejs.org/job/node-test-commit-v8-linux/5950/ passed with 2c30d3d.

  9. added a commit that references this issue on May 8, 2024
  10. added a commit that references this issue on May 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildIssues and PRs related to Node.js builds or CI infrastructure.ppcIssues and PRs related to the Power architecture.v8 engineIssues and PRs related to the V8 dependency.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions