On the second pass pymake will decide that header is out of date, and rebuild it. It will then rebuild obj because header was rebuilt, even though header did not change. Gmake will decide that rebuilding header serves no purpose since it has no rule, and skip it. It will then not rebuild obj.
Created attachment 624466 [details] [diff] [review]
And migrated to m-c https://hg.mozilla.org/mozilla-central/rev/e5e7f60fe0be