Skip to content

Musl x64 V8: static assertion failed #191

@bblanchon

Description

@bblanchon

The build is failing since chromium/7019 (was okay in chromium/7009).
https://github.com/bblanchon/pdfium-binaries/actions/runs/13362632237/job/37315040982

x86_64-linux-musl-g++ -MMD -MF obj/v8/torque_generated_definitions/factory.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -D_GLIBCXX_ASSERTIONS=1 -DCR_SYSROOT_KEY=20250129T203412Z-1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64 -DV8_TLS_USED_IN_LIBRARY -DENABLE_GDB_JIT_INTERFACE -DV8_ATOMIC_OBJECT_FIELD_WRITES -DV8_ENABLE_LAZY_SOURCE_POSITIONS -DV8_WIN64_UNWINDING_INFO -DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH -DV8_SHORT_BUILTIN_CALLS -DV8_EXTERNAL_CODE_SPACE -DV8_ENABLE_SPARKPLUG -DV8_ENABLE_MAGLEV -DV8_ENABLE_TURBOFAN -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_BUILTIN_JUMP_TABLE_SWITCH -DV8_ENABLE_EXTENSIBLE_RO_SNAPSHOT -DV8_ENABLE_BLACK_ALLOCATED_PAGES -DV8_ENABLE_LEAPTIERING -DV8_WASM_RANDOM_FUZZERS -DV8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT=0 -DV8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT=0 -DV8_PROMISE_INTERNAL_FIELD_COUNT=0 -DV8_COMPRESS_POINTERS -DV8_COMPRESS_POINTERS_IN_SHARED_CAGE -DV8_31BIT_SMIS_ON_64BIT_ARCH -DV8_DEPRECATION_WARNINGS -DV8_HAVE_TARGET_OS -DV8_TARGET_OS_LINUX -DCPPGC_CAGED_HEAP -DCPPGC_YOUNG_GENERATION -DCPPGC_POINTER_COMPRESSION -DCPPGC_ENABLE_LARGER_CAGE -DCPPGC_SLIM_WRITE_BARRIER -DV8_TARGET_ARCH_X64 -DV8_RUNTIME_CALL_STATS -DABSL_ALLOCATOR_NOTHROW=1 -I.. -Igen -I../v8 -I../v8/include -Igen/v8 -I../third_party/abseil-cpp -Igen/v8/include -I../third_party/fp16/src/include -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 -fno-strict-overflow -fno-ident -fno-strict-aliasing -funwind-tables -fPIC -pipe -pthread -m64 -msse3 -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -fno-omit-frame-pointer -g0 -fvisibility=hidden -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 -Wno-dangling-pointer -O3 -fdata-sections -ffunction-sections -fno-math-errno -Wno-narrowing -Wno-class-memaccess -Wno-invalid-offsetof -std=gnu++2a -fno-exceptions -fno-rtti --sysroot=../build/linux/debian_bullseye_amd64-sysroot -fvisibility-inlines-hidden  -c gen/v8/torque-generated/factory.cc -o obj/v8/torque_generated_definitions/factory.o
In file included from ../v8/src/objects/string-inl.h:28,
                 from ../v8/src/objects/script-inl.h:13,
                 from ../v8/src/objects/shared-function-info-inl.h:24,
                 from ../v8/src/objects/js-function-inl.h:24,
                 from ../v8/src/objects/map-inl.h:17,
                 from ../v8/src/objects/name-inl.h:11,
                 from ../v8/src/objects/lookup-cache-inl.h:10,
                 from ../v8/src/objects/descriptor-array-inl.h:16,
                 from ../v8/src/objects/field-index-inl.h:9,
                 from ../v8/src/objects/js-objects-inl.h:17,
                 from ../v8/src/objects/js-proxy-inl.h:9,
                 from ../v8/src/objects/objects-inl.h:35,
                 from ../v8/src/heap/paged-spaces-inl.h:13,
                 from ../v8/src/heap/new-spaces-inl.h:12,
                 from ../v8/src/heap/heap-inl.h:28,
                 from ../v8/src/heap/main-allocator-inl.h:9,
                 from ../v8/src/heap/local-heap-inl.h:15,
                 from ../v8/src/heap/factory-base-inl.h:9,
                 from gen/v8/torque-generated/factory.cc:2:
../v8/src/strings/string-hasher-inl.h: In function ‘v8::internal::detail::IndexParseResult v8::internal::detail::TryParseArrayIndex(const uchar*, uint32_t, uint32_t&, v8::internal::detail::ArrayIndexT&)’:
../v8/src/strings/string-hasher-inl.h:160:33: error: static assertion failed
  160 |     static_assert(sizeof(index) == sizeof(uint32_t));
      |                   ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
../v8/src/strings/string-hasher-inl.h:176:50: error: static assertion failed
  176 |         static_assert(String::kMaxArrayIndexSize ==
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
  177 |                       String::kMaxIntegerIndexSize);
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-dangling-pointer’ may have been intended to silence earlier diagnostics

These static asserts were added in commit 63cb5b3519339bb90a50f5d2150c527d1a6ab96f of v8:
https://chromium-review.googlesource.com/c/v8/v8/+/6253748

The commit message says:

Fix build with older gcc and clang compilers

static_assert may fail even on 64-bit platforms
which might be related to this bug (Change in 9.1):
https://cplusplus.github.io/CWG/issues/2518.html

Running x86_64-linux-musl-gcc --version shows

x86_64-linux-musl-gcc (GCC) 11.2.1 20211120

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions