diff mbox

configure: re-add current options in config-host.mak

Message ID 20131124093704.GA26763@redhat.com
State New
Headers show

Commit Message

Michael S. Tsirkin Nov. 24, 2013, 9:37 a.m. UTC
commit bdf523e6923f1e667055e947e71fc600549cefae
    "configure: Add config.status to recreate the current configuration"
moved current configure flags to config.status

This makes sense, but this makes it harder to bisect problems that
trigger with a specific set of flags only, since old configure is not
smart enough to find them there.

Simply add the options as a comment in the format
old configure expected - they are then ignored by the new configure.

Cc: Stefan Weil <sw@weilnetz.de>
Cc: Fam Zheng <famz@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 configure | 1 +
 1 file changed, 1 insertion(+)

Comments

Stefan Weil Nov. 24, 2013, 11:04 a.m. UTC | #1
Am 24.11.2013 10:37, schrieb Michael S. Tsirkin:
> commit bdf523e6923f1e667055e947e71fc600549cefae
>     "configure: Add config.status to recreate the current configuration"
> moved current configure flags to config.status
>
> This makes sense, but this makes it harder to bisect problems that
> trigger with a specific set of flags only, since old configure is not
> smart enough to find them there.
>
> Simply add the options as a comment in the format
> old configure expected - they are then ignored by the new configure.
>
> Cc: Stefan Weil <sw@weilnetz.de>
> Cc: Fam Zheng <famz@redhat.com>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
>  configure | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/configure b/configure
> index 508f6a5..f6d5ccd 100755
> --- a/configure
> +++ b/configure
> @@ -3797,6 +3797,7 @@ config_host_mak="config-host.mak"
>  echo "# Automatically generated by configure - do not modify" >config-all-disas.mak
>  
>  echo "# Automatically generated by configure - do not modify" > $config_host_mak
> +sed -n -e 's/exec/# Configured with:/p' config.status >> $config_host_mak
>  echo >> $config_host_mak
>  
>  echo all: >> $config_host_mak

Do we really need this? It only makes git bisect iterations from
versions after 2013-11-19 to versions before that date easier. If a
typical git bisect needs 10 steps, then in the worst cast 5 of them
won't automatically run configure. This is normally not a big problem
because there is already a configuration, and many changes of file
configure don't change that configuration.

It's always possible to run configure explicitly at each step of the
bisection process, so in case of doubt there is an easy fall-back
solution. Before I introduced automatic reconfiguration, calling
configure + make was normal for git bisect.

I'd prefer to avoid code like this patch which is only marginally useful
in a very specific development use case. People who can run git bisect
will be able to help themselves if they really get a problem without the
patch.

Regards,
Stefan
Paolo Bonzini Nov. 25, 2013, 9:53 a.m. UTC | #2
Il 24/11/2013 12:04, Stefan Weil ha scritto:
> Do we really need this? It only makes git bisect iterations from
> versions after 2013-11-19 to versions before that date easier. If a
> typical git bisect needs 10 steps, then in the worst cast 5 of them
> won't automatically run configure. This is normally not a big problem
> because there is already a configuration, and many changes of file
> configure don't change that configuration.
> 
> It's always possible to run configure explicitly at each step of the
> bisection process, so in case of doubt there is an easy fall-back
> solution. Before I introduced automatic reconfiguration, calling
> configure + make was normal for git bisect.
> 
> I'd prefer to avoid code like this patch which is only marginally useful
> in a very specific development use case. People who can run git bisect
> will be able to help themselves if they really get a problem without the
> patch.

I think anything that makes it easier for users to do bisections instead
of us, and anything that makes it easier to script bisections ("git
bisect run"), is valuable.

Thanks Michael, patch

Acked-by: Paolo Bonzini <pbonzini@redhat.com>

for 1.7 too.

Paolo
Peter Maydell Nov. 25, 2013, 10:51 a.m. UTC | #3
On 25 November 2013 09:53, Paolo Bonzini <pbonzini@redhat.com> wrote:
> I think anything that makes it easier for users to do bisections instead
> of us, and anything that makes it easier to script bisections ("git
> bisect run"), is valuable.

Personally I've taken to doing bisections with a complete
"blow away build tree and start from scratch" process because
it's more reliable...

-- PMM
Michael S. Tsirkin Nov. 25, 2013, 11:37 a.m. UTC | #4
On Mon, Nov 25, 2013 at 10:53:44AM +0100, Paolo Bonzini wrote:
> Il 24/11/2013 12:04, Stefan Weil ha scritto:
> > Do we really need this? It only makes git bisect iterations from
> > versions after 2013-11-19 to versions before that date easier. If a
> > typical git bisect needs 10 steps, then in the worst cast 5 of them
> > won't automatically run configure. This is normally not a big problem
> > because there is already a configuration, and many changes of file
> > configure don't change that configuration.
> > 
> > It's always possible to run configure explicitly at each step of the
> > bisection process, so in case of doubt there is an easy fall-back
> > solution. Before I introduced automatic reconfiguration, calling
> > configure + make was normal for git bisect.
> > 
> > I'd prefer to avoid code like this patch which is only marginally useful
> > in a very specific development use case. People who can run git bisect
> > will be able to help themselves if they really get a problem without the
> > patch.
> 
> I think anything that makes it easier for users to do bisections instead
> of us, and anything that makes it easier to script bisections ("git
> bisect run"), is valuable.
> 
> Thanks Michael, patch
> 
> Acked-by: Paolo Bonzini <pbonzini@redhat.com>
> 
> for 1.7 too.
> 
> Paolo

IMHO it's helpful but it's too late for controversial patches now.
So I won't push this to Anthony unless Stefan reconsiders and acks.
Markus Armbruster Nov. 25, 2013, 12:04 p.m. UTC | #5
Peter Maydell <peter.maydell@linaro.org> writes:

> On 25 November 2013 09:53, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> I think anything that makes it easier for users to do bisections instead
>> of us, and anything that makes it easier to script bisections ("git
>> bisect run"), is valuable.
>
> Personally I've taken to doing bisections with a complete
> "blow away build tree and start from scratch" process because
> it's more reliable...

ccache speeds that up quite nicely :)
Stefan Weil Nov. 25, 2013, 5:46 p.m. UTC | #6
Am 25.11.2013 12:37, schrieb Michael S. Tsirkin:
> On Mon, Nov 25, 2013 at 10:53:44AM +0100, Paolo Bonzini wrote:
>> Il 24/11/2013 12:04, Stefan Weil ha scritto:
>>> Do we really need this? It only makes git bisect iterations from
>>> versions after 2013-11-19 to versions before that date easier. If a
>>> typical git bisect needs 10 steps, then in the worst cast 5 of them
>>> won't automatically run configure. This is normally not a big problem
>>> because there is already a configuration, and many changes of file
>>> configure don't change that configuration.
>>>
>>> It's always possible to run configure explicitly at each step of the
>>> bisection process, so in case of doubt there is an easy fall-back
>>> solution. Before I introduced automatic reconfiguration, calling
>>> configure + make was normal for git bisect.
>>>
>>> I'd prefer to avoid code like this patch which is only marginally useful
>>> in a very specific development use case. People who can run git bisect
>>> will be able to help themselves if they really get a problem without the
>>> patch.
>> I think anything that makes it easier for users to do bisections instead
>> of us, and anything that makes it easier to script bisections ("git
>> bisect run"), is valuable.
>>
>> Thanks Michael, patch
>>
>> Acked-by: Paolo Bonzini <pbonzini@redhat.com>
>>
>> for 1.7 too.
>>
>> Paolo
> IMHO it's helpful but it's too late for controversial patches now.
> So I won't push this to Anthony unless Stefan reconsiders and acks.

If it helps you and Paolo (and maybe others), I don't mind if you push
the patch. Technically it looks fine, therefore

Acked-by: Stefan Weil <sw@weilnetz.de>

Let me just add some information from my personal experience with git
bisect.

I don't run "git bisect" on QEMU very often - maybe once per month. "git
bisect run" was never a feasible option because in most cases I had to
inspect the output on QEMU's framebuffer. Nearly all bisections needed
manual intervention, either because the configure options changed
(removal of audio options), code was broken or for other reasons. On
each step I try an incremental build first, if that fails, a clean build
follows (I build always out of tree, so it's easy to really clean
everything).

Cheers,
Stefan
Fam Zheng Nov. 26, 2013, 5:40 a.m. UTC | #7
On 2013年11月25日 20:04, Markus Armbruster wrote:
> Peter Maydell <peter.maydell@linaro.org> writes:
>
>> On 25 November 2013 09:53, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>> I think anything that makes it easier for users to do bisections instead
>>> of us, and anything that makes it easier to script bisections ("git
>>> bisect run"), is valuable.
>>
>> Personally I've taken to doing bisections with a complete
>> "blow away build tree and start from scratch" process because
>> it's more reliable...
>
> ccache speeds that up quite nicely :)
>

This is fantastic! Thanks for the tip.

Fam
diff mbox

Patch

diff --git a/configure b/configure
index 508f6a5..f6d5ccd 100755
--- a/configure
+++ b/configure
@@ -3797,6 +3797,7 @@  config_host_mak="config-host.mak"
 echo "# Automatically generated by configure - do not modify" >config-all-disas.mak
 
 echo "# Automatically generated by configure - do not modify" > $config_host_mak
+sed -n -e 's/exec/# Configured with:/p' config.status >> $config_host_mak
 echo >> $config_host_mak
 
 echo all: >> $config_host_mak