[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Some serious issues with the new -O option
From: |
Eli Zaretskii |
Subject: |
Re: Some serious issues with the new -O option |
Date: |
Wed, 01 May 2013 18:26:10 +0300 |
> From: Paul Smith <address@hidden>
> Date: Wed, 01 May 2013 08:04:08 -0400
> Cc: address@hidden
>
> > This should work very well with -Otarget then, except for the
> > colorization/highlighting issue... once it works as expected. I'll look
> > into this issue later and I would be interested to see your experience
> > with it once it's resolved.
>
> OK, I found this bug. Definitely make recursion was not being handled
> properly with -Otarget and -Ojob in some situations; this broke as a
> side effect of my cleanup to reuse the same temporary file for the
> entire target, regardless of the output mode.
You forgot to make the same change in the WINDOWS32 branch. I did
that in commit a87ff20.
> This should be fixed now. Those who use recursive makefiles and were
> seeing annoying delays in output with -O, please try again with the
> latest commit and see if it works any better for you now.
Unfortunately, the delays are still here. Moreover, it looks like
this change introduced some kind of regression. With the following
Makefile:
all: simple recursive
simple: one two
one two:
@echo start $@
@sleep 1
@echo stop $@
@-false
recursive: rec1 rec2
rec1 rec2:
@echo start $@
$(MAKE) -f mkfsync simple
@echo stop $@
I see this output with the previous version:
D:\gnu\make-3.82.90_GIT_2013-04-20>gnumake -f mkfsync -j -O
gnumake -f mkfsync simple
gnumake -f mkfsync simple
mkfsync:6: recipe for target 'one' failed
gnumake: [one] Error 1 (ignored)
start one
stop one
mkfsync:6: recipe for target 'two' failed
gnumake: [two] Error 1 (ignored)
start two
stop two
start rec2
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
mkfsync:6: recipe for target 'one' failed
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: [one] Error 1 (ignored)
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
start one
stop one
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
mkfsync:6: recipe for target 'two' failed
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: [two] Error 1 (ignored)
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
start two
stop two
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
stop rec2
start rec1
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
mkfsync:6: recipe for target 'one' failed
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: [one] Error 1 (ignored)
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
start one
stop one
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
mkfsync:6: recipe for target 'two' failed
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: [two] Error 1 (ignored)
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
start two
stop two
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-04-20'
stop rec1
Notice in particular how start rec1..stop rec1 occludes its
sub-targets, and the same for rec2.
After the change I see this:
D:\gnu\make-3.82.90_GIT_2013-05-01>gnumake -f mkfsync -j -O
gnumake -f mkfsync simple
gnumake -f mkfsync simple
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-05-01'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-05-01'
start one
stop one
mkfsync:6: recipe for target 'one' failed
gnumake: [one] Error 1 (ignored)
start two
stop two
mkfsync:6: recipe for target 'two' failed
gnumake: [two] Error 1 (ignored)
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-05-01'
start one
stop one
mkfsync:6: recipe for target 'one' failed
gnumake[1]: [one] Error 1 (ignored)
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-05-01'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-05-01'
start two
stop two
mkfsync:6: recipe for target 'two' failed
gnumake[1]: [two] Error 1 (ignored)
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-05-01'
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-05-01'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-05-01'
start one
stop one
mkfsync:6: recipe for target 'one' failed
gnumake[1]: [one] Error 1 (ignored)
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-05-01'
gnumake[1]: Entering directory 'D:/gnu/make-3.82.90_GIT_2013-05-01'
start two
stop two
mkfsync:6: recipe for target 'two' failed
gnumake[1]: [two] Error 1 (ignored)
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-05-01'
gnumake[1]: Leaving directory 'D:/gnu/make-3.82.90_GIT_2013-05-01'
start rec1
stop rec1
start rec2
stop rec2
And now rec1 and rec2 are announced only at the end.
I see the same result on GNU/Linux, so this isn't a Windows specific
problem.
- Re: Some serious issues with the new -O option, Paul Smith, 2013/05/01
- Re: Some serious issues with the new -O option, Stefano Lattarini, 2013/05/01
- Re: Some serious issues with the new -O option,
Eli Zaretskii <=
- Re: Some serious issues with the new -O option, Stefano Lattarini, 2013/05/01
- Re: Some serious issues with the new -O option, Paul Smith, 2013/05/01
- Re: Some serious issues with the new -O option, Eli Zaretskii, 2013/05/01
- Re: Some serious issues with the new -O option, Paul Smith, 2013/05/01
- Re: Some serious issues with the new -O option, Eli Zaretskii, 2013/05/01
- Re: Some serious issues with the new -O option, Tim Murphy, 2013/05/02
- Re: Some serious issues with the new -O option, Paul Smith, 2013/05/02
- Re: Some serious issues with the new -O option, Eli Zaretskii, 2013/05/02
- Re: Some serious issues with the new -O option, Paul Smith, 2013/05/02
- Re: Some serious issues with the new -O option, Eli Zaretskii, 2013/05/03