diff mbox

qemu master build failure

Message ID c4054b32-b2e1-acd3-52f4-8f7d5c12c2a0@de.ibm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Christian Borntraeger March 16, 2018, 6:12 p.m. UTC
Does it make sense to have something like




On 03/16/2018 06:11 PM, Paolo Bonzini wrote:
> On 16/03/2018 18:01, Andrew Jones wrote:
>> Hi Thomas,
>>
>> QEMU master is failing to build on an AArch64 machine with GCC 4.8. I get
>>
>>   ...
>>   CC      qemu-nbd.o
>> /home/drjones/code/qemu/qemu-nbd.c: In function ‘version’:
>> /home/drjones/code/qemu/qemu-nbd.c:133:7: error: expected ‘)’ before ‘QEMU_FULL_VERSION’
>>  "%s " QEMU_FULL_VERSION "\n"
>>        ^
>> /home/drjones/code/qemu/qemu-nbd.c:139:5: error: format ‘%s’ expects a matching ‘char *’ argument [-Werror=format=]
>>      , name);
>>      ^
>> cc1: all warnings being treated as errors
>> make: *** [qemu-nbd.o] Error 1
>>
>>
>> Reverting 7e563bfb8 fixes the build. I figured I'd report it now,
>> but I won't have time to look closer until Monday.
> 
> You probably have a stray qemu-version.h file somewhere.  No worries, I
> was puzzled by the same thing after I applied Thomas's patch. :)
> 
> Paolo
>

Comments

Daniel P. Berrangé March 16, 2018, 6:22 p.m. UTC | #1
On Fri, Mar 16, 2018 at 07:12:26PM +0100, Christian Borntraeger wrote:
> Does it make sense to have something like
> 
> diff --git a/configure b/configure
> index 831ebf2..67d7ae3 100755
> --- a/configure
> +++ b/configure
> @@ -552,6 +552,10 @@ else
>      pwd_is_source_path="n"
>  fi
>  
> +if test -f $source_path\/qemu-version.h -a $pwd_is_source_path = "n" ; then
> +error_exit "source path contains a stale configuration, cannot build outside" 
> +fi
> +

Yeah that is a check that autoconf does commonly to detect this
kind of mistake, so I think its good.


Regards,
Daniel
Peter Maydell March 16, 2018, 6:25 p.m. UTC | #2
On 16 March 2018 at 18:12, Christian Borntraeger <borntraeger@de.ibm.com> wrote:
> Does it make sense to have something like
>
> diff --git a/configure b/configure
> index 831ebf2..67d7ae3 100755
> --- a/configure
> +++ b/configure
> @@ -552,6 +552,10 @@ else
>      pwd_is_source_path="n"
>  fi
>
> +if test -f $source_path\/qemu-version.h -a $pwd_is_source_path = "n" ; then
> +error_exit "source path contains a stale configuration, cannot build outside"
> +fi

We already have an equivalent check to that in Makefile;
it looks for a config-host.mak:

# Check that we're not trying to do an out-of-tree build from
# a tree that's been used for an in-tree build.
ifneq ($(realpath $(SRC_PATH)),$(realpath .))
ifneq ($(wildcard $(SRC_PATH)/config-host.mak),)
$(error This is an out of tree build but your source tree ($(SRC_PATH)) \
seems to have been used for an in-tree build. You can fix this by running \
"$(MAKE) distclean && rm -rf *-linux-user *-softmmu" in your source tree)
endif
endif


Before commit 428952cfa966f it was possible for an accidental
run of 'make -j10' in the source tree to create qemu-options.def
and qemu-version.h in the source tree before the makefile noticed
you were trying it in the wrong directory. I think that after
that it should be much harder to end up with these stale files,
but of course if your tree already had a stale file from
before then the commit won't clean it up for you...

thanks
-- PMM
diff mbox

Patch

diff --git a/configure b/configure
index 831ebf2..67d7ae3 100755
--- a/configure
+++ b/configure
@@ -552,6 +552,10 @@  else
     pwd_is_source_path="n"
 fi
 
+if test -f $source_path\/qemu-version.h -a $pwd_is_source_path = "n" ; then
+error_exit "source path contains a stale configuration, cannot build outside" 
+fi
+
 check_define() {
 cat > $TMPC <<EOF
 #if !defined($1)