Page MenuHomeFreeBSD

Set .ORDER for makesyscalls generated files

Authored by kevans on Jan 9 2020, 3:27 AM.



When either makesyscalls.lua or syscalls.master changes, all of the ${GENERATED} targets are now out-of-date. With make jobs > 1, this means we will run the makesyscalls script in parallel for the same ABI, generating the same set of output files.

Prior to D23098, there is a large window for interlacing output for some of the generated files that we were generating in-place rather than staging in a temp dir. After that, we still should't need to run the script more than once per-ABI as the first invocation should update all of them. Add .ORDER to do so cleanly.

Diff Detail

rS FreeBSD src repository
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

kevans created this revision.Jan 9 2020, 3:27 AM
kevans added a reviewer: sjg.Jan 9 2020, 3:31 AM
kevans added a comment.Jan 9 2020, 5:36 AM

After discussing with sjg, I'm going to update these to .ORDER: ${GENERATED} and add inline comments describing why we care.

kevans updated this revision to Diff 66559.Jan 9 2020, 3:56 PM
kevans retitled this revision from Tag all sysent Makefiles with .NOTPARALLEL to Set .ORDER for makesyscalls generated files.
kevans edited the summary of this revision. (Show Details)

Update to use .ORDER, hopefully articulate the problem a little better both in commit message and actually add a comment lightly mentioning the problem we're addressing.

imp added a comment.Jan 9 2020, 4:05 PM

Looks good, with the possible exception of one new file added to GENERATED...

16 ↗(On Diff #66559)

Is this intentional?

kevans added inline comments.Jan 9 2020, 4:09 PM
16 ↗(On Diff #66559)

Whoops, I forgot to rebase -- I actually already committed that part last night since we should run the script again if somehow systrace_args.c is out of date but for some reason the others aren't.

brooks added a comment.Jan 9 2020, 6:47 PM

Looks fine, I agree with the comment on irc/slack that centralizing this in a .mk file likely makes sense. It's no much code, but it's a lot of duplication.

brooks accepted this revision.Jan 9 2020, 6:47 PM
This revision is now accepted and ready to land.Jan 9 2020, 6:47 PM
This revision was automatically updated to reflect the committed changes.