-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
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
gcc: install info files serially #229898
gcc: install info files serially #229898
Conversation
The workaround looks good. We will probably want to apply it to all gcc versions. |
Are you sure we want this? I'd like to follow upstream as much as possible, and as for 12 we have a particular motivation to want it to be reproducible (e.g. we use this to build our installation media), it seems most conservative not to also apply it to the older versions? |
Out of curiosity who do you mean by "we"? I would normally expect all the
|
installing info files in parallel is dangerous, because `install-info` will write to a `dir-file` as a side-effect, and it has no protection against multiple `install-info` processes running in parallel and overwriting each others' changes. Local fix until we can fix the `Makefile.in` generation upstream Fixes NixOS#229470
28d07d8
to
f3995ce
Compare
'NixOS', which is admittedly an ill-defined 'we' :)
True, I was thinking "let's focus on the currently-widely-used things and not worry about older versions too much"
OK, I'll give it a go |
That applied surprisingly painlessly! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. All the $ nix build --no-link -f. gcc48 gcc49 gcc6 gcc7 gcc8 gcc9 gcc10 gcc11 gcc12
succeeded.
Hi, this is causing the entire According to the GNU Make manual, 5.4.1 Disabling Parallel Execution the patch added by this PR marks |
Ouch, that indeed was not the intent - I had read that documentation, but assumed it would only run the direct prerequisite builds in parallel, not everything transitively. I thought I had checked that but perhaps not sufficiently/correctly. Will look into this (unless someone beats me to it) |
|
We discovered the same in https://gcc.gnu.org/PR109898#c4 |
|
Description of changes
installing info files in parallel is dangerous, because
install-info
will write to adir-file
as a side-effect, and it has no protection against multipleinstall-info
processes running in parallel and overwriting each others' changes.Local fix until we can fix the
Makefile.in
generation upstreamFixes #229470
Things done
Tested the concept locally with the following Makefile:
sandbox = true
set innix.conf
? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)