-
Notifications
You must be signed in to change notification settings - Fork 29.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix crashes on Linux/PPC64 ELFv1 #33866
Conversation
This change will need to be made in upstream V8 before we land it here. Instructions for submitting changes to V8 can be found here: https://v8.dev/docs/contribute. I'm also happy to submit small changes if needed. |
Cool ! I'm going to test that asap. |
@miladfarca, @john-yan can you take a quick look at this? If you think it make sense maybe you can help get it landed upstream. |
I'm assuming this change is specific for 64bit Linux as 32 bit does not have TOC and function descriptors. Have There are a number of other places where We can definitely land this patch on V8 but we don't/can't monitor future changes to assure BE Linux compatibility. |
@miladfarca i know it's suboptimal but if it fails again on ppc64 i'll report it again. |
@miladfarca I did run |
@zeldin you could run make test-v8, but I believe that would require you adding ninja and gn binaries in the right place so I'm not sure its practical. I think given we don't support it in the project anymore as long as make test has passed and you are comfortable its probably ok. |
@zeldin we had BE machines but removed them once we dropped support for PPC BE. I'm wondering what's driving the interest? Our team is driving the PPC platform support at the V8 level and each platform requires time and effort. We dropped BE after we could no longer justify the effort based on what we thought was BE usage as well as the level of internal support for the work to keep it going. |
@mhdawson Running
I have no idea why it needs to "infer CIPD platform", or why golang is involved in the first place. This seems overengineered... |
@zeldin. It's from the V8 build tools, they install a lot of components etc. to build/run the tests and there won't be copies of the platform specific ones for PPCBE. (Hence my mention of having to install your own ninja and gn). In any case while it is likely possible, its probably more work that is reasonable to get the tests to run. |
Change is now merged with V8 master: It can now be merged with Nodejs master using these instructions: |
@zeldin FYI I updated the PR title to reflect the commit subject, so that folks skimming through notifications or the PR list know what the PR is about without opening it. Hope you don't mind :) |
@zeldin The change is part of V8 8.5, and is part of #35415 (which should land in Node.js v15). I'll go ahead and close this out, thanks a lot for your contribution! If you're interested to have this change land on v14 and/or v12, you can open backporting PRs using these instructions: |
Instead of using "defined(_AIX)" or "V8_OS_AIX" as a test for when to use function descriptors, use "ABI_USES_FUNCTION_DESCRIPTORS" which exists precisely for this purpose. This fixes
the crashes on Linux/ppc64 ELFv1.
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passesdeps: V8: fix tests for function descriptors on PPC64
Fixes: #29534