[bug #64746] Exponential Runtime in make 4.4.1 when export is used

2023-10-06 Thread Paul D. Smith
Follow-up Comment #3, bug #64746 (project make): Many have asked for a new "optional simple assignment" variant. I'm not opposed to it. Another option that will work with most currently available versions of GNU make, although it looks somewhat scary, is described here: https://make.mad-scienti

[bug #64746] Exponential Runtime in make 4.4.1 when export is used

2023-10-06 Thread Till Backhaus
Follow-up Comment #2, bug #64746 (project make): That explanation was really helpful. I discovered the difference between recursively expanded variables and simple expanded variables only after posting this issue, but I was still confused why recursive expanded variables would cause this behavior.

[bug #64746] Exponential Runtime in make 4.4.1 when export is used

2023-10-06 Thread Dmitry Goncharov
Follow-up Comment #1, bug #64746 (project make): VAR_1 is a recursively expanded variable. When make defines this variable, the value is set to string '$(shell echo 1)'. No subshell is spawned at this time. Each time make expands this variable, make spawns a shell and has the shell execute 'echo 1

Re: Exponential Runtime in make 4.4.1 when export is used

2023-10-06 Thread Dmitry Goncharov
On Wed, Oct 4, 2023 at 6:09 PM Till Backhaus wrote: > This rather short Makefile shows exponential runtime depending on the number > of variables. > VAR_1 ?= $(shell echo 1) ... VAR_1 is a recursively expanded variable. When make defines this variable, the value is set to string '$(shell echo 1)

[bug #54854] multi-target rules invoked too often with -j2

2023-10-06 Thread Vassilis Virvilis
Follow-up Comment #2, bug #54854 (project make): I was also bitten by this. I understand the argument and why this is not considered a bug. Would you consider a warning (or a note) if multiple targets (without patterns) and -j N with N > 1 are used simultaneously? Thanks _