Closed
Bug 912914
Opened 11 years ago
Closed 11 years ago
Preserve targets and dependencies order when creating Makefiles with makeutil.py
Categories
(Firefox Build System :: General, defect)
Firefox Build System
General
Tracking
(Not tracked)
RESOLVED
FIXED
mozilla26
People
(Reporter: glandium, Assigned: glandium)
References
Details
Attachments
(1 file, 1 obsolete file)
No description provided.
Assignee | ||
Comment 1•11 years ago
|
||
Also allow to add random statements (like variable assignment)
Attachment #800043 -
Flags: review?(gps)
Assignee | ||
Comment 2•11 years ago
|
||
Also allow to add random statements (like variable assignment)
Now with stable order of the removal guards.
Attachment #800127 -
Flags: review?(gps)
Assignee | ||
Updated•11 years ago
|
Attachment #800043 -
Attachment is obsolete: true
Attachment #800043 -
Flags: review?(gps)
Comment 3•11 years ago
|
||
Comment on attachment 800127 [details] [diff] [review]
Preserve targets and dependencies order when creating Makefiles with makeutil.py
Review of attachment 800127 [details] [diff] [review]:
-----------------------------------------------------------------
r- on the grounds that this removes consistent ordering.
I'm pretty sure we have code using makeutil.py (or at least intending to use makeutil.py) that is relying on the consistent ordering of the generated make file. This patch breaks that promise!
I'm going to argue there are use cases for both preserving call-time ordering *and* for ensuring sorted output ordering. I think makeutil.py should support both. As a parameter to __init__ perhaps?
Attachment #800127 -
Flags: review?(gps) → review-
Assignee | ||
Comment 4•11 years ago
|
||
Comment on attachment 800127 [details] [diff] [review]
Preserve targets and dependencies order when creating Makefiles with makeutil.py
(In reply to Gregory Szorc [:gps] from comment #3)
> Comment on attachment 800127 [details] [diff] [review]
> Preserve targets and dependencies order when creating Makefiles with
> makeutil.py
>
> Review of attachment 800127 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> r- on the grounds that this removes consistent ordering.
>
> I'm pretty sure we have code using makeutil.py (or at least intending to use
> makeutil.py) that is relying on the consistent ordering of the generated
> make file.
The patch trades one consistent ordering with another one. It's not like using a set() and having the result in a random order depending on what the set internal hash table looks like.
That being said, if something is relying on a particular order of dependencies in a Makefile, then we have a serious race condition issue waiting to break the tree.
Moreover, that code is currently only used to create .pp files, which are only used to rebuild stuff when things change. Order doesn't matter for these use cases.
> This patch breaks that promise!
There never was such promise.
Please reconsider.
Attachment #800127 -
Flags: review- → review?(gps)
Comment 5•11 years ago
|
||
I wanted to use makeutil.py to generate some FileAvoidWrite'ed files as part of backend generation. Once we hook that up, we'll be modifying some auto-generated make files as part of config.status because ordering may not be stable. I was hoping makeutil.py would perform all the sorts on write. But if we need to do that on the caller side, we can do it on the caller side.
Assignee | ||
Comment 6•11 years ago
|
||
(In reply to Gregory Szorc [:gps] from comment #5)
> I wanted to use makeutil.py to generate some FileAvoidWrite'ed files as part
> of backend generation. Once we hook that up, we'll be modifying some
> auto-generated make files as part of config.status because ordering may not
> be stable.
Ordering *is* stable.
Updated•11 years ago
|
Attachment #800127 -
Flags: review?(gps) → review+
Assignee | ||
Comment 7•11 years ago
|
||
Comment 8•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla26
Updated•7 years ago
|
Product: Core → Firefox Build System
You need to log in
before you can comment on or make changes to this bug.
Description
•