[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #63039] implicit rule recursion is forbidden
From: |
Brami |
Subject: |
[bug #63039] implicit rule recursion is forbidden |
Date: |
Thu, 8 Sep 2022 22:02:54 -0400 (EDT) |
URL:
<https://savannah.gnu.org/bugs/?63039>
Summary: implicit rule recursion is forbidden
Project: make
Submitter: et7f3
Submitted: ven. 09 sept. 2022 02:02:53 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: POSIX-Based
Fixed Release: None
Triage Status: None
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: ven. 09 sept. 2022 02:02:53 UTC By: Brami <et7f3>
Hello,
I know `mkdir -p` but wanted to take advantage of make to concurrently produce
folder.
I builded this snippet:
```mak
build/:
mkdir "$@"
.SECONDARY: build/DEV/a/b/c/d/e/f/g/h/k/ build/DEV/a/b/c/d/e/f/g/h/
build/DEV/a/b/c/d/e/f/g/
.SECONDEXPANSION:
build/%/: | $$(dir build/%)
mkdir "$@"
```
(I didn't listed all in .SECONDARY but it shouldn't matter for the issue.)
I tried to build `build/DEV/a/b/c/d/e/f/g/h/k/l/`
here the implicit rule will try to build `build/DEV/a/b/c/d/e/f/g/h/k/` but it
didn't find any rule to this target because they are explicitly disabled.
src/implicit.c
```C
if (rule->in_use)
{
DBS (DB_IMPLICIT, (_("Avoiding implicit rule recursion.\n")));
continue;
}
```
The workaround is to myself enumerate different level so it is considered as
another rule.
I tried to blame this but it appear in "Initial revision" implicit.c of
b9c983dee3c6aff460532d9b4fd7aaea079c672b
What is added only to prevent `%: %` ? or maybe weird loop: `a%: b%` and `b%:
aa%`. I think my case is fine because length only reduce so it will always
finish.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?63039>
_______________________________________________
Message posté via Savannah
https://savannah.gnu.org/
- [bug #63039] implicit rule recursion is forbidden,
Brami <=