Comments (11)
Another s390x gcc bug has been identified, this time in gcc 12 and 13 when c++20 is enabled:
- Bug 113960 - [11/12 Regression] std::map with std::vector as input overwrites itself with c++20, on s390x platform
This one currently doesn't affect Node.js because we haven't landed nodejs/node#45427. We are working with the RH team that looks after the gcc-toolsets to get the fix into gcc-toolsets (preferably 12) once upstream gcc have backported the fixes.
I'm about to open a PR to Ansible installation of gcc-toolsets 12 and 13 onto our RHEL 8 machines. This will make those compilers available on the machine so we can run test builds, etc. We can then make any required select-compiler.sh
changes in a follow up PR.
from build.
I've merged #3659. It contains a temporary patch to one of the libstdc++ header files for gcc-toolset-12 while we wait for the RPM to be updated (current estimate we were given is "around May"). I'll keep this issue open to remind us to revert 9c149d0 when the fix for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113960 makes it into gcc-toolset-12.
from build.
FWIW I'm always up for upgrading compilers anywhere 😄
from build.
@richardlau is the V8 code with the bug already in existing release lines or if not, likely to be backported ?
from build.
@richardlau is the V8 code with the bug already in existing release lines or if not, likely to be backported ?
Current V8 in Node.js uses V8's custom optional
. I don't know if the change will end up in the version of V8 we'll end up using in Node.js 22.
from build.
Ok so the question is if we need to have a new gcc for Node.js 22 or Node.js 23, right?
from build.
Thinking about it, we do often pull in a version of v8 after 22 is cut, so it may not be easy to know that until close to the LTS promotion.
It may be best to assume it will be needed for 22 so that we don't need to update compilers after 22 is cut.
from build.
Another s390x gcc bug has been identified, this time in gcc 12 and 13 when c++20 is enabled:
- Bug 113960 - [11/12 Regression] std::map with std::vector as input overwrites itself with c++20, on s390x platform
This one currently doesn't affect Node.js because we haven't landed nodejs/node#45427. We are working with the RH team that looks after the gcc-toolsets to get the fix into gcc-toolsets (preferably 12) once upstream gcc have backported the fixes.
For tracking Bug 113960 being backported to gcc-toolset-12: https://issues.redhat.com/browse/RHEL-29952
from build.
I just tried running our V8 CI on rhel8-s390x for main
with gcc-toolset-12 and it failed 😞.
select-compiler.sh
changes in https://github.com/nodejs/build/tree/gts
https://ci.nodejs.org/job/richardlau-node-test-commit-v8-linux/544/nodes=rhel8-s390x,v8test=v8test/consoleFull
17:37:32 /opt/rh/gcc-toolset-12/root/usr/include/c++/12/bits/char_traits.h:431:56: error: ‘void* __builtin_memcpy(void*, const void*, long unsigned int)’ accessing 9223372036854775810 or more bytes at offsets [2, 9223372036854775807] and 1 may overlap up to 9223372036854775813 bytes at offset -3 [-Werror=restrict]
17:37:32 431 | return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));
17:37:32 | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
From @miladfarca:
yes the fix is is only available in main and beta. You will need to use this v8 patch: https://chromium-review.googlesource.com/c/v8/v8/+/5331756 and this gn patch: https://gn-review.googlesource.com/c/gn/+/16820
For the gn patch, we can possibly roll forwards to main (or at least to a later commit). We pinned before for compatibility for Node.js 14 -- #3335 is open to unpin or update since Node.js 14 is no longer supported.
from build.
Opened #3659 to roll forward gn and use gcc-toolset-12 on rhel8-s390x.
Also opened nodejs/node#52183 to backport https://chromium-review.googlesource.com/c/v8/v8/+/5331756.
from build.
gcc-toolset-12 now contains the fix for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113960.
#3736 reverts 9c149d0 and we're back to using the toolset as-is from the OS' package repository.
from build.
Related Issues (20)
- github-bot broken? HOT 17
- test-equinix-ubuntu2204-x64-2 is down HOT 3
- Coverity builds broken HOT 18
- Offboarding - Yagiz
- LFIT Access to Secrets Part II HOT 9
- Suggestion: Change appropriate jenkins jobs to be shallow clones HOT 1
- Equinix Move: Rebuild SmartOS Hosts HOT 15
- `jenkins-workspace` tasks don't work on existing workers HOT 1
- Access to a Windows machine HOT 2
- Remove Yash Ladha (yashLadha) from Coverity HOT 1
- FYI changed V8 CI configuration for BE platforms
- Compilation broken on Windows in the CI HOT 17
- Submit 3 nodejs-loong64 CI LoongArch machines
- Ansible `ninja : build Ninja` task fails HOT 2
- Use of .cloud TLD HOT 10
- Disk full on Jenkins CI server HOT 2
- Node.js Build WorkGroup Meeting 2024-06-04
- Equinix Move: Backup Server HOT 2
- java.io.IOException: Cannot run program "git" HOT 12
- `FATAL: Command "git clean -ffdx" returned status code 1` on release-rackspace-win2022_vs2022-x64-2 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from build.