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! |
trofi
left a comment
There was a problem hiding this comment.
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 |
|
|
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. See: https://gcc.gnu.org/PR109898 See: NixOS/nixpkgs#229898 Co-authored-by: Arnout Engelen <[email protected]>
Description of changes
installing info files in parallel is dangerous, because
install-infowill write to adir-fileas a side-effect, and it has no protection against multipleinstall-infoprocesses running in parallel and overwriting each others' changes.Local fix until we can fix the
Makefile.ingeneration upstreamFixes #229470
Things done
Tested the concept locally with the following Makefile:
sandbox = trueset 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/)