Open
Description
Version
18.6.0
Platform
SMP Debian 5.10.103-1 (2022-03-07) mips64 GNU/Linux
Subsystem
build
What steps will reproduce the bug?
Build node 18.6.0 with gcc 11.2.0 and 12.1.0 on mips64el (or riscv64 too), and compare results.
How often does it reproduce? Is there a required condition?
Always. Only gcc change between the two builds.
What is the expected behavior?
Same tests pass.
What do you see instead?
Several tests fail:
parallel/test-crypto-sign-verify
parallel/test-freeze-intrinsics
parallel/test-tls-root-certificates
parallel/test-vm-global-non-writable-properties
parallel/test-vm-module-synthetic
parallel/test-vm-strict-assign
Additional information
Attached are the log files.
Note several things:
- node built on debian using several shared libs and some patches, not pristine source
- the only change between those two log files is the gcc version
- previously on a build machine with gcc 11, all tests were passing
- on the qemu mips64el machine, debugger and some network tests fail (in both cases, so only differences of failures are relevant).
There are some new warnings
In file included from /usr/include/c++/12/atomic:41,
from ../deps/v8/src/base/atomic-utils.h:10,
from ../deps/v8/src/common/globals.h:15,
from ../deps/v8/src/builtins/builtins.h:10,
from ../deps/v8/src/builtins/builtins-utils.h:9,
from ../deps/v8/src/builtins/builtins-utils-inl.h:8,
from ../deps/v8/src/builtins/builtins-arraybuffer.cc:5:
In member function 'std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::load(std::memory_order) const [with _ITp = long unsigned int]',
inlined from 'size_t v8::internal::BackingStore::byte_length(std::memory_order) const' at ../deps/v8/src/objects/backing-store.h:91:29,
inlined from 'size_t v8::internal::JSArrayBuffer::GetByteLength() const' at ../deps/v8/src/objects/js-array-buffer-inl.h:59:42,
inlined from 'size_t v8::internal::JSArrayBuffer::GetByteLength() const' at ../deps/v8/src/objects/js-array-buffer-inl.h:53:8,
inlined from 'v8::internal::Object v8::internal::Builtin_Impl_SharedArrayBufferPrototypeGetByteLength(BuiltinArguments, Isolate*)' at ../deps/v8/src/builtins/builtins-arraybuffer.cc:478:51,
inlined from 'v8::internal::Address v8::internal::Builtin_SharedArrayBufferPrototypeGetByteLength(int, Address*, Isolate*)' at ../deps/v8/src/builtins/builtins-arraybuffer.cc:465:1:
/usr/include/c++/12/bits/atomic_base.h:488:31: warning: 'long unsigned int __atomic_load_8(const volatile void*, int)' writing 8 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
488 | return __atomic_load_n(&_M_i, int(__m));
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
In member function 'std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::load(std::memory_order) const [with _ITp = long unsigned int]',
inlined from 'size_t v8::internal::BackingStore::byte_length(std::memory_order) const' at ../deps/v8/src/objects/backing-store.h:91:29,
inlined from 'size_t v8::internal::JSArrayBuffer::GetByteLength() const' at ../deps/v8/src/objects/js-array-buffer-inl.h:59:42,
inlined from 'size_t v8::internal::JSArrayBuffer::GetByteLength() const' at ../deps/v8/src/objects/js-array-buffer-inl.h:53:8:
/usr/include/c++/12/bits/atomic_base.h:488:31: warning: 'long unsigned int __atomic_load_8(const volatile void*, int)' writing 8 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
488 | return __atomic_load_n(&_M_i, int(__m));
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
That some crypto fails points to a openssl runtime bug maybe.
However that some vm tests fail too is confusing.