-
-
Notifications
You must be signed in to change notification settings - Fork 15.1k
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
nodejs: fix build on 32 bit platforms #354842
Conversation
this test is failing on both armv7 and i686 and is related to year 2038 issue so it probably affects all 32 bit platforms
I'm not sure if it's reasonable to ignore the test here, but I'll defer the decision to the maintainers. |
Could you share the output of the test failure? The test is supposed to skip if the platform doesn't have y2k38 support: https://github.com/nodejs/node/blob/428c3fd31b86706bb6987f7ae1b1ac398eb343cb/test/parallel/test-fs-utimes-y2K38.js#L19-L21 https://github.com/nodejs/node/blob/428c3fd31b86706bb6987f7ae1b1ac398eb343cb/test/parallel/test-fs-utimes-y2K38.js#L29-L31 A more interesting fix would be to fix those checks if they are insufficient or making wrong assumptions (I don't have a 32-bit platform to test that myself) |
Just updated my flake inputs and found that node-js is building and failing in checkPhase (on x86_64 obviously) and an issue seperate from this.
Isn't this supposed to be cached though? I am using zed from master/nixpkgs-unstable which is why it's pulling from master. |
If this is an unrelated issue, why do you comment here instead of opening a new issue? |
searched for any open PRs, and this is the first to pop up. But sure #355919 |
I have gc-ed the toolchain since then so I cannot show you the exact failure but I can describe it: the test fails because the systemcall utimes fails with EINVAL. I confirmed with strace that utimensat is called with the nanosecond argument set to 100000000. The manpage documents that this argument is indeed invalid. I had a look in the source code and it is reasonably easy to understand.
on 32 bit platform with 32 bit time_t, this results in an invalid computation where The only solution for this test to pass, is to compile every package with
Additionally, doing this might not be a good idea on i386 because it is likely that the most frequent usage of i386 libraries is to make old, binary only software work on x86_64 and compiling with As a result my impression is that:
|
Hi, can we move this forward? |
this test is failing on both armv7 and i686 and is related to year 2038 issue so it probably affects all 32 bit platforms
built rebased on another nixpkgs commit on armv7
Things done
nix.conf
? (See Nix manual)sandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)Add a 👍 reaction to pull requests you find important.