bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #62809] Make grouped targets not evaluated as single logical file


From: Jonathan Gravel
Subject: [bug #62809] Make grouped targets not evaluated as single logical file
Date: Mon, 25 Jul 2022 11:01:37 -0400 (EDT)

URL:
  <https://savannah.gnu.org/bugs/?62809>

                 Summary: Make grouped targets not evaluated as single logical
file
                 Project: make
               Submitter: jogravel
               Submitted: Mon 25 Jul 2022 03:01:35 PM UTC
                Severity: 3 - Normal
              Item Group: Bug
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
       Component Version: 4.3
        Operating System: Any
           Fixed Release: None
           Triage Status: None


    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: Mon 25 Jul 2022 03:01:35 PM UTC By: Jonathan Gravel <jogravel>
The presence of the grouped target's peers are not considered when checking if
the target needs to be rebuilt.

For example, if `a` and `b` are grouped target peers (`a b &:`), and only `a`
is explicitly referenced in the DAG, the presence of `b` isn't considered. `b`
missing would not trigger the rule.

This is inconsistent with how the dependencies of `a` and `b` are treated. In
the example above, if `b`'s dependencies were newer than `a`, out-of-date, or
missing, `a` and `b` would ultimately be rebuilt as a consequence, even though
`b` isn't referenced in the DAG.

For better consistency, it is appropriate to rebuild `a` whenever any of its
peers are missing.

This would additionally solve a scenario where `c` depends on `a`, and `d`
depends on `b`, and both `c` and `d` are goal targets. If only `a` is
considered out of date, `c` is rebuilt, but not `d`. However, `b` is rebuilt,
so on the next invocation of make (with no changes), `d` will be rebuilt due
to it being older than `b`.

See attachment "0001-Fix-grouped-targets-consistency.patch" for proposed set
of changes.






    _______________________________________________________
File Attachments:


-------------------------------------------------------
Date: Mon 25 Jul 2022 03:01:35 PM UTC  Name:
0001-Fix-grouped-targets-consistency.patch  Size: 4KiB   By: jogravel

<http://savannah.gnu.org/bugs/download.php?file_id=53471>

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?62809>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]