bblanchon / pdfium-binaries

📰 Binary distribution of PDFium
789 stars 166 forks source link

Linux Musl ARM64 V8 build is broken #150

Closed bblanchon closed 4 months ago

bblanchon commented 5 months ago
aarch64-linux-musl-g++ -MMD -MF obj/v8/torque_generated_definitions/cell-tq.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 -DCR_SYSROOT_KEY=20230611T210420Z-2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64 -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_CONTROL_FLOW_INTEGRITY -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_EXTENSIBLE_RO_SNAPSHOT -DV8_COMPRESS_POINTERS -DV8_COMPRESS_POINTERS_IN_SHARED_CAGE -DV8_31BIT_SMIS_ON_64BIT_ARCH -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS -DCPPGC_CAGED_HEAP -DCPPGC_YOUNG_GENERATION -DCPPGC_POINTER_COMPRESSION -DCPPGC_SLIM_WRITE_BARRIER -DV8_TARGET_ARCH_ARM64 -DV8_HAVE_TARGET_OS -DV8_TARGET_OS_LINUX -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 -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-ident -fno-strict-aliasing -fstack-protector -funwind-tables -fPIC -pipe -pthread -mbranch-protection=standard -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 -O3 -fdata-sections -ffunction-sections -fno-math-errno -Wno-narrowing -Wno-class-memaccess -std=gnu++2a -fno-exceptions -fno-rtti --sysroot=../build/linux/debian_bullseye_arm64-sysroot -fvisibility-inlines-hidden -c gen/v8/torque-generated/src/objects/cell-tq.cc -o obj/v8/torque_generated_definitions/cell-tq.o
In file included from ../v8/src/objects/field-index.h:11,
                 from ../v8/src/objects/objects.h:26,
                 from ../v8/src/objects/tagged-value.h:8,
                 from ../v8/src/objects/tagged-field.h:10,
                 from ../v8/src/objects/heap-object.h:11,
                 from ../v8/src/objects/cell.h:8,
                 from ../v8/src/objects/cell-inl.h:8,
                 from gen/v8/torque-generated/src/objects/cell-tq.cc:1:
../v8/src/utils/utils.h: In instantiation of ‘bool v8::internal::SimdMemEqual(const Char*, const Char*, size_t) [with Char = unsigned char; size_t = long unsigned int]’:
../v8/src/utils/utils.h:400:26:   required from ‘bool v8::internal::CompareCharsEqualUnsigned(const lchar*, const rchar*, size_t) [with lchar = unsigned char; rchar = unsigned char; size_t = long unsigned int]’
../v8/src/utils/utils.h:418:35:   required from ‘bool v8::internal::CompareCharsEqual(const lchar*, const rchar*, size_t) [with lchar = unsigned char; rchar = char; size_t = long unsigned int]’
../v8/src/objects/string-inl.h:555:33:   required from ‘bool v8::internal::String::IsEqualToImpl(v8::base::Vector<const Char>, v8::internal::PtrComprCageBase, const v8::internal::SharedStringAccessGuardIfNeeded&) const [with v8::internal::String::EqualityType kEqType = v8::internal::String::EqualityType::kWholeString; Char = char]’
../v8/src/objects/string-inl.h:518:32:   required from ‘bool v8::internal::String::IsEqualTo(v8::base::Vector<const Char>) const [with v8::internal::String::EqualityType kEqType = v8::internal::String::EqualityType::kWholeString; Char = char]’
../v8/src/objects/string-inl.h:640:19:   required from here
../v8/src/utils/utils.h:368:47: note: use ‘-flax-vector-conversions’ to permit conversions between vectors with differing element types or numbers of subparts
  368 |       return !static_cast<bool>(vgetq_lane_u64(vpmaxq_u8(ored, ored), 0));
      |                                 ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../v8/src/utils/utils.h:368:57: error: cannot convert ‘uint8x16_t’ to ‘uint64x2_t’
  368 |       return !static_cast<bool>(vgetq_lane_u64(vpmaxq_u8(ored, ored), 0));
      |                                                ~~~~~~~~~^~~~~~~~~~~~
      |                                                         |
      |                                                         uint8x16_t

See: https://bugs.chromium.org/p/v8/issues/detail?id=14520

@jerbob92, I think you made some contributions in V8 to support Musl; maybe you want to keep an eye on this issue.