[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2022-01-27 Thread Dmitry Goncharov
Follow-up Comment #37, bug #48643 (project make): > The first one is that the output appears even if make ultimately decides that there is no way to build the target. i think, this is good. Hopefully, this will prevent users from writing makefiles that depend on compat search. > When I put my

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2022-01-23 Thread Paul D. Smith
Follow-up Comment #36, bug #48643 (project make): I played for a while this weekend with adding a warning for compatibility mode, but I'm not sure we can really do it. There are two problems which may be related. The first one is that the output appears even if make ultimately decides that

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2022-01-20 Thread Dmitry Goncharov
Follow-up Comment #35, bug #48643 (project make): > Do you mean that if I apply the test patch mentioned there, some of those tests would fail? All tests should pass. in the case of example 6 make fails to set pat->is_explicit for 'hello.x'. This used to fail example 6 until commit 6682fb. My

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2022-01-20 Thread Paul D. Smith
Follow-up Comment #34, bug #48643 (project make): I didn't fully grasp the impact of the issue you raised in comment #31. Do you mean that if I apply the test patch mentioned there, some of those tests would fail? I will try to look at this more this evening. Regarding your question in comment

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2022-01-20 Thread Dmitry Goncharov
Follow-up Comment #33, bug #48643 (project make): This fix turned out to be difficult. i'll be surprised if we don't miss anything. i wanted to bring to your attention a couple of leftovers. One is that pat->is_explicit that is described in update 31. For the other let's consider example 8.

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2022-01-19 Thread Paul D. Smith
Follow-up Comment #32, bug #48643 (project make): There are too many patches attached to this bug: I lost track of which had been applied and which hadn't and I guess I missed that one; sorry about that! The change in 6682fb was discussed in this email to bug-make:

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2022-01-19 Thread Dmitry Goncharov
Follow-up Comment #31, bug #48643 (project make): Paul, in update 27 i added 2 patches. sv48643_exp_preqreq_is_not_interm.diff has a fix for example 6. sv48643_exp_preqreq_is_not_interm_tests.diff has related tests. Not sure, if you decided not to apply these 2 patches or they fell through the

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2022-01-19 Thread Paul D. Smith
Follow-up Comment #30, bug #48643 (project make): > Let us list the options > 1. keep compat search enabled by default and silent. > 2. introduce a warning message when make begins compat search. > 3. introduce a flag to disable compat search. > 4. have compat disabled by default and introduce a

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-12-29 Thread Paul D. Smith
Follow-up Comment #29, bug #48643 (project make): Thanks Dmitry. I applied these patches. ___ Reply to this item at: ___ Message sent via Savannah

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-12-12 Thread Dmitry Goncharov
Additional Item Attachment, bug #48643 (project make): File name: sv48643_preserve_target_specific_vars_of_interm_test.diff Size:2 KB File name:

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-12-12 Thread Dmitry Goncharov
Follow-up Comment #28, bug #48643 (project make): Let us consider Example 7. all: hello.tsk %.tsk: hello.x; $(info $@) %.x:; $(flags) hello.x: flags:=true Here 'hello.x' has a target specific variable 'flags' with value 'true'. Setting a target specific variable causes make to enter

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-12-10 Thread Dmitry Goncharov
Additional Item Attachment, bug #48643 (project make): File name: sv48643_exp_preqreq_is_not_interm_tests.diff Size:4 KB File name: sv48643_exp_preqreq_is_not_interm.diff Size:1 KB

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-12-10 Thread Dmitry Goncharov
Follow-up Comment #27, bug #48643 (project make): i figured this change is still incomplete. There is a case when make marks this almost-ought-to-exist prerequisite as intermediate incorrectly. Let us say hello.tsk exists and hello.x is missing and consider Example 6. all: hello.tsk

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-12-05 Thread Paul D. Smith
Follow-up Comment #26, bug #48643 (project make): The reason to include a flag for option #4 is that users may have newer versions of GNU make (installed on their distros) but not be able to modify all the makefiles they are using to address their problems (older software downloaded from

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-12-03 Thread Dmitry Goncharov
Follow-up Comment #25, bug #48643 (project make): Let us list the options 1. keep compat search enabled by default and silent. 2. introduce a warning message when make begins compat search. 3. introduce a flag to disable compat search. 4. have compat disabled by default and introduce a flag to

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-11-29 Thread Paul D. Smith
Follow-up Comment #24, bug #48643 (project make): If we decide to do this I'm not sure it should be a command line flag: command line flags should be limited to modifying how a given user wants their build to run. It shouldn't modify fundamental ways that a makefile is parsed. The author of the

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-11-29 Thread Dmitry Goncharov
Follow-up Comment #23, bug #48643 (project make): Yet another option is to have compatibility search disabled by default and introduce flag '--enable-compatibility-search'. This is a good choice going forward, because we really don't want new makefiles to rely on compatibility search. This choice

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-11-28 Thread Dmitry Goncharov
Follow-up Comment #22, bug #48643 (project make): > If I add a note when we start the compatibility check, it shows up here (obviously we'd pick a more informative note if we added this): ... > I guess it's appropriate here but it seemed odd to me. i also think, it is appropriate here. Does the

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-11-28 Thread Paul D. Smith
Follow-up Comment #21, bug #48643 (project make): I thought about this but adding such a note caused it to turn up in somewhat unusual places. For example in this test: all: hello.tsk %.tsk: %.o; $(info hello.tsk) %.o: %.c; $(info hello.c) %.o: %.f %.tsk; $(info hello.f) we expect to get this

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-11-28 Thread Dmitry Goncharov
Follow-up Comment #20, bug #48643 (project make): Thank you, Paul. The user may not realize that their makefile relies on compatibility search and the related performance penalty. Do you think it is appropriate to print a message when make begins compatibility search to let the user know?

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-11-28 Thread Paul D. Smith
Update of bug #48643 (project make): Status:None => Fixed Open/Closed:Open => Closed ___ Follow-up Comment #19: I pushed Dmitry's

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-11-21 Thread Dmitry Goncharov
Follow-up Comment #18, bug #48643 (project make): Attached sv48643_fix2.diff and sv48643_test2.diff. sv48643_test2.diff contains two new tests compared to sv48643_test.diff.. These new tests require that compatibility search builds intermediates. sv48643_fix2.diff has two changes compared to

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-11-21 Thread Dmitry Goncharov
Additional Item Attachment, bug #48643 (project make): File name: sv48643_fix2.diff Size:8 KB File name: sv48643_test2.diff Size:12 KB

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-11-21 Thread Dmitry Goncharov
Follow-up Comment #17, bug #48643 (project make): Thank you, Steven. ___ Reply to this item at: ___ Message sent via Savannah

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-11-14 Thread Steven Simpson
Follow-up Comment #16, bug #48643 (project make): [comment #15 comment #15:] > If patch-v1 is applied and released, then users will start writing > makefiles which depend on this feature. This will slow down make, > including for those users who do not even use this feature. Okay. > Once this

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-11-14 Thread Dmitry Goncharov
Follow-up Comment #15, bug #48643 (project make): > Are you saying that this also should be the correct behaviour? I now realize, that inadequate description of example 3 was provided and caused misunderstanding. Let me provide a more verbose description. Make has to do both skip unrelated

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-11-11 Thread Steven Simpson
Follow-up Comment #14, bug #48643 (project make): I've got three implementations of Make lined up. One is master, one has my recent changes applied to master from last month (ssfix; patch included), and one is master with your sv48643_fix.diff applied (dgfix). I've attached a script to compare

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-11-07 Thread Dmitry Goncharov
Follow-up Comment #13, bug #48643 (project make): Added 4 patches. fix, test, doc and news. The same changeset can be found in repo g...@github.com:dgoncharov/make.git on branch sv48643_retry_compat_rules. ___ Reply to this item at:

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-11-07 Thread Dmitry Goncharov
Additional Item Attachment, bug #48643 (project make): File name: sv48643_test.diff Size:10 KB File name: sv48643_doc.diff Size:1 KB

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-11-07 Thread Dmitry Goncharov
Follow-up Comment #12, bug #48643 (project make): Let us say hello.c is missing, hello.f is present in the filesystem and consider the following example Example 1. all: hello.tsk %.tsk: %.c; $(info $@ from $<) %.tsk: %.f; $(info $@ from $<) unrelated: hello.c The current behavior is

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-10-19 Thread Steven Simpson
Follow-up Comment #11, bug #48643 (project make): I saw a couple of tests in targets/NOTINTERMEDIATE failing, 2 and 10. Preserving an already set notintermediate flag (in the same way that intermediate is preserved) allows the tests to pass. This (src/implicit.c#919):

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-10-18 Thread Steven Simpson
Follow-up Comment #10, bug #48643 (project make): [comment #9 comment #9:] > Unfortunately it's exactly the is_target test that causes the problems. The rest of the changes, without that, don't seem to have any issues. Okay, thanks. I hope to get round to the documentation issue. For now, I've

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-10-18 Thread Paul D. Smith
Follow-up Comment #9, bug #48643 (project make): Unfortunately it's exactly the is_target test that causes the problems. The rest of the changes, without that, don't seem to have any issues. ___ Reply to this item at:

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-10-18 Thread Steven Simpson
Follow-up Comment #8, bug #48643 (project make): [comment #6 comment #6:] > I'm seeing some failures after applying this patch. Just to narrow down the investigation, it might help to split this patch into two. The is_target test and the supporting declaration of f would be the primary patch.

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-10-17 Thread Paul D. Smith
Follow-up Comment #7, bug #48643 (project make): Perhaps your argument is (similar to Boris's argument in bug #17752 ) that the algorithm in the manual is bad and should be changed; in particular the rule 5.3 that says "ought to exist" means "mentioned as a target or a prerequisite" anywhere in

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-10-17 Thread Paul D. Smith
Update of bug #48643 (project make): Status: Fixed => None Open/Closed: Closed => Open ___ Follow-up Comment #6: I'm seeing some

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-09-19 Thread Paul D. Smith
Update of bug #48643 (project make): Status:None => Fixed Assigned to:None => psmith Open/Closed:Open => Closed Fixed Release:

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-02-10 Thread Steven Simpson
Additional Item Attachment, bug #48643 (project make): File name: fix-17752-48643.patch Size:4 KB ___ Reply to this item at:

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-02-10 Thread Steven Simpson
Follow-up Comment #4, bug #48643 (project make): Here's a patch that restores the is_target test, and counts the %: rules on the stack, permitting at most one. This should fix this bug, without bug #17752 returning, as features/patternrules test 6 still passes, though perhaps its explanation

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-02-08 Thread Steven Simpson
Follow-up Comment #3, bug #48643 (project make): With the is_target test restored in implicit.c, "make check" fails: features/patternrules ... Error running /home/simpsons/Works/make/tests/../make (expected 0; got 512): '/home/simpsons/Works/make/tests/../make'

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2021-02-07 Thread Steven Simpson
Follow-up Comment #2, bug #48643 (project make): I think the problem might be in src/implicit.c. >From 3.81 code: /* The DEP->changed flag says that this dependency resides in a nonexistent directory. So we normally can skip looking for the

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2016-08-23 Thread Steven Simpson
Follow-up Comment #1, bug #48643 (project make): According to what I wrote in , this behaviour is present in 3.82, 4.1 and 4.2.1, but not 3.81. ___ Reply to this item at:

[bug #48643] Irrelevant targets can confuse make on which pattern rule to select.

2016-07-26 Thread anonymous
URL: Summary: Irrelevant targets can confuse make on which pattern rule to select. Project: make Submitted by: None Submitted on: Wed 27 Jul 2016 05:02:12 AM UTC Severity: 3 - Normal