On Mon, Mar 17, 2025 at 8:12 AM Paul Smith <psm...@gnu.org> wrote:
> The question we have think carefully about is what sort of backward-
> compatibility issues, if any, we could introduce.  Are there situations
> where people are relying on the current behavior?

It is possible that someone relies that running 'make all' updates
existing order-only prerequisites.
It is possible with this patch that a target is rebuilt with
out-of-date existing order-only prerequisites.
i don't see though, why someone would need to update existing
order-only prerequisites. But the users are capable of coming up with
something nobody has thought of.

> To build target A:
> - First try to build all NON-ORDER-ONLY prerequisites
> - Compare the modification time of all NON-ORDER-ONLY prerequisites
> - If any NON-ORDER-ONLY prerequisite is newer than A:
>   - Try to build all ORDER-ONLY prerequisites
>  - Run the recipe to build A

The patch in attachment is slightly different. The patch causes make
to never update existing order-only prerequisites.

To summarise
the existing behavior is
    existing order-only are always considered.
the patch's behavior is
    existing order-only are never considered.
the behavior described by Paul above
    existing order-only are only considered if some regular
prerequisite causes the target to be rebuilt.

My opinion is that this change (if introduced) does not warrant an option.

regards, Dmitry

Reply via email to