tech-toolchain archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: make: warn about fallback from parallel to compat mode
Am 25.05.2025 um 19:18 schrieb Simon J. Gerraty:
> Roland Illig <roland.illig%gmx.de@localhost> wrote:
>> broken-target:
>> ${MAKEDIRTARGET} subdir subdir-target1 subdir-target2
>>
>> The reason is that the target (indirectly) runs a sub-make, but the
>> sub-make does not coordinate the number of running jobs with the main
>> make process. This may lead to more than the desired jobs running in
>> parallel, or to only a single job.
>>
>> The cause for this is that the target is neither marked with ".MAKE" nor
>> does one of its unexpanded commands contain the magic word "make" or the
>> expression "${MAKE}".
>
> FWIW I think it is sufficient to simply recommend adding .MAKE,
> trying to explain, tricks like adding ${: make} better belongs in the
> man page - see recent elaboration on meta mode ;-)
Moving the explanation to the manual page sounds good.
>> +make: warning: internal option "-J 31,32" in <curdir> refers to an unopened file descriptor; falling back to compat mode.
>> + If the target is supposed to recurse even with -n, add the .MAKE pseudo-source to the target.
>
> ie. make that just:
>
> make: warning: internal option "-J 31,32" in <curdir> refers to \
> unopened descriptors; add pseudo-source .MAKE to the target to avoid this.
I had considered this but decided against it because adding .MAKE to a
target has two effects:
1. The file descriptors are passed on. That's intended.
2. All the node's command are run even in -n mode. That's sometimes
intended and sometimes not, for example for plain "echo" commands.
Due to the "sometimes not", I didn't dare to suggest a single fix when
three different fixes are available, each with its own benefits and
drawbacks.
Roland
Home |
Main Index |
Thread Index |
Old Index