When executing 'configure' in a fresh QEMU clone, in a fresh
OS install running in a ppc64le host, this is the error
shown:
-----
../configure --enable-trace-backend=simple --enable-debug
--target-list=ppc64-softmmu
ERROR: Unsupported CPU = ppc64le, try --enable-tcg-interpreter
-----
This isn't true, ppc64le host CPU is supported. This happens because,
in a fresh install, we don't have a C compiler to autodetect
the $cpu variable to "ppc64".
Since we need a C compiler to properly get the value of $cpu
in this and other cases, this patch changes the location of the C
compiler check right after setting the preferred CC.
Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
---
configure | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/configure b/configure
index 285d123dbf..a641bf18b6 100755
--- a/configure
+++ b/configure
@@ -467,6 +467,23 @@ else
cc="${CC-${cross_prefix}gcc}"
fi
+write_c_skeleton() {
+ cat > $TMPC <<EOF
+int main(void) { return 0; }
+EOF
+}
+
+# check that the C compiler works.
+write_c_skeleton;
+if compile_object ; then
+ : C compiler works ok
+else
+ error_exit "\"$cc\" either does not exist or does not work"
+fi
+if ! compile_prog ; then
+ error_exit "\"$cc\" cannot build an executable (is your linker broken?)"
+fi
+
if test -z "${CXX}${cross_prefix}"; then
cxx="c++"
else
@@ -537,12 +554,6 @@ EOF
compile_object
}
-write_c_skeleton() {
- cat > $TMPC <<EOF
-int main(void) { return 0; }
-EOF
-}
-
if check_define __linux__ ; then
targetos="Linux"
elif check_define _WIN32 ; then
@@ -1593,17 +1604,6 @@ if test -z "$werror" ; then
fi
fi
-# check that the C compiler works.
-write_c_skeleton;
-if compile_object ; then
- : C compiler works ok
-else
- error_exit "\"$cc\" either does not exist or does not work"
-fi
-if ! compile_prog ; then
- error_exit "\"$cc\" cannot build an executable (is your linker broken?)"
-fi
-
if test "$bogus_os" = "yes"; then
# Now that we know that we're not printing the help and that
# the compiler works (so the results of the check_defines we used
--
2.13.6
Maybe "configure: check $CC available before verifying host CPU" ?
On 11/01/2017 04:31 PM, Daniel Henrique Barboza wrote:
> When executing 'configure' in a fresh QEMU clone, in a fresh
> OS install running in a ppc64le host, this is the error
> shown:
>
> -----
>
> ../configure --enable-trace-backend=simple --enable-debug
> --target-list=ppc64-softmmu
>
> ERROR: Unsupported CPU = ppc64le, try --enable-tcg-interpreter
>
> -----
>
> This isn't true, ppc64le host CPU is supported. This happens because,
> in a fresh install, we don't have a C compiler to autodetect
> the $cpu variable to "ppc64".
>
> Since we need a C compiler to properly get the value of $cpu
> in this and other cases, this patch changes the location of the C
> compiler check right after setting the preferred CC.
>
> Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> configure | 34 +++++++++++++++++-----------------
> 1 file changed, 17 insertions(+), 17 deletions(-)
>
> diff --git a/configure b/configure
> index 285d123dbf..a641bf18b6 100755
> --- a/configure
> +++ b/configure
> @@ -467,6 +467,23 @@ else
> cc="${CC-${cross_prefix}gcc}"
> fi
>
> +write_c_skeleton() {
> + cat > $TMPC <<EOF
> +int main(void) { return 0; }
> +EOF
> +}
> +
> +# check that the C compiler works.
> +write_c_skeleton;
> +if compile_object ; then
> + : C compiler works ok
> +else
> + error_exit "\"$cc\" either does not exist or does not work"
> +fi
> +if ! compile_prog ; then
> + error_exit "\"$cc\" cannot build an executable (is your linker broken?)"
> +fi
> +
> if test -z "${CXX}${cross_prefix}"; then
> cxx="c++"
> else
> @@ -537,12 +554,6 @@ EOF
> compile_object
> }
>
> -write_c_skeleton() {
> - cat > $TMPC <<EOF
> -int main(void) { return 0; }
> -EOF
> -}
> -
> if check_define __linux__ ; then
> targetos="Linux"
> elif check_define _WIN32 ; then
> @@ -1593,17 +1604,6 @@ if test -z "$werror" ; then
> fi
> fi
>
> -# check that the C compiler works.
> -write_c_skeleton;
> -if compile_object ; then
> - : C compiler works ok
> -else
> - error_exit "\"$cc\" either does not exist or does not work"
> -fi
> -if ! compile_prog ; then
> - error_exit "\"$cc\" cannot build an executable (is your linker broken?)"
> -fi
> -
> if test "$bogus_os" = "yes"; then
> # Now that we know that we're not printing the help and that
> # the compiler works (so the results of the check_defines we used
>
On 11/01/2017 05:36 PM, Philippe Mathieu-Daudé wrote:
> Maybe "configure: check $CC available before verifying host CPU" ?
If the maintainer is willing to amend the patch before pushing, works
for me!
Daniel
>
> On 11/01/2017 04:31 PM, Daniel Henrique Barboza wrote:
>> When executing 'configure' in a fresh QEMU clone, in a fresh
>> OS install running in a ppc64le host, this is the error
>> shown:
>>
>> -----
>>
>> ../configure --enable-trace-backend=simple --enable-debug
>> --target-list=ppc64-softmmu
>>
>> ERROR: Unsupported CPU = ppc64le, try --enable-tcg-interpreter
>>
>> -----
>>
>> This isn't true, ppc64le host CPU is supported. This happens because,
>> in a fresh install, we don't have a C compiler to autodetect
>> the $cpu variable to "ppc64".
>>
>> Since we need a C compiler to properly get the value of $cpu
>> in this and other cases, this patch changes the location of the C
>> compiler check right after setting the preferred CC.
>>
>> Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>
>> ---
>> configure | 34 +++++++++++++++++-----------------
>> 1 file changed, 17 insertions(+), 17 deletions(-)
>>
>> diff --git a/configure b/configure
>> index 285d123dbf..a641bf18b6 100755
>> --- a/configure
>> +++ b/configure
>> @@ -467,6 +467,23 @@ else
>> cc="${CC-${cross_prefix}gcc}"
>> fi
>>
>> +write_c_skeleton() {
>> + cat > $TMPC <<EOF
>> +int main(void) { return 0; }
>> +EOF
>> +}
>> +
>> +# check that the C compiler works.
>> +write_c_skeleton;
>> +if compile_object ; then
>> + : C compiler works ok
>> +else
>> + error_exit "\"$cc\" either does not exist or does not work"
>> +fi
>> +if ! compile_prog ; then
>> + error_exit "\"$cc\" cannot build an executable (is your linker broken?)"
>> +fi
>> +
>> if test -z "${CXX}${cross_prefix}"; then
>> cxx="c++"
>> else
>> @@ -537,12 +554,6 @@ EOF
>> compile_object
>> }
>>
>> -write_c_skeleton() {
>> - cat > $TMPC <<EOF
>> -int main(void) { return 0; }
>> -EOF
>> -}
>> -
>> if check_define __linux__ ; then
>> targetos="Linux"
>> elif check_define _WIN32 ; then
>> @@ -1593,17 +1604,6 @@ if test -z "$werror" ; then
>> fi
>> fi
>>
>> -# check that the C compiler works.
>> -write_c_skeleton;
>> -if compile_object ; then
>> - : C compiler works ok
>> -else
>> - error_exit "\"$cc\" either does not exist or does not work"
>> -fi
>> -if ! compile_prog ; then
>> - error_exit "\"$cc\" cannot build an executable (is your linker broken?)"
>> -fi
>> -
>> if test "$bogus_os" = "yes"; then
>> # Now that we know that we're not printing the help and that
>> # the compiler works (so the results of the check_defines we used
>>
On 1 November 2017 at 19:31, Daniel Henrique Barboza
<danielhb@linux.vnet.ibm.com> wrote:
> When executing 'configure' in a fresh QEMU clone, in a fresh
> OS install running in a ppc64le host, this is the error
> shown:
>
> -----
>
> ../configure --enable-trace-backend=simple --enable-debug
> --target-list=ppc64-softmmu
>
> ERROR: Unsupported CPU = ppc64le, try --enable-tcg-interpreter
>
> -----
>
> This isn't true, ppc64le host CPU is supported. This happens because,
> in a fresh install, we don't have a C compiler to autodetect
> the $cpu variable to "ppc64".
>
> Since we need a C compiler to properly get the value of $cpu
> in this and other cases, this patch changes the location of the C
> compiler check right after setting the preferred CC.
>
> Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
> ---
> configure | 34 +++++++++++++++++-----------------
> 1 file changed, 17 insertions(+), 17 deletions(-)
>
> diff --git a/configure b/configure
> index 285d123dbf..a641bf18b6 100755
> --- a/configure
> +++ b/configure
> @@ -467,6 +467,23 @@ else
> cc="${CC-${cross_prefix}gcc}"
> fi
>
> +write_c_skeleton() {
> + cat > $TMPC <<EOF
> +int main(void) { return 0; }
> +EOF
> +}
> +
> +# check that the C compiler works.
> +write_c_skeleton;
> +if compile_object ; then
> + : C compiler works ok
> +else
> + error_exit "\"$cc\" either does not exist or does not work"
> +fi
> +if ! compile_prog ; then
> + error_exit "\"$cc\" cannot build an executable (is your linker broken?)"
> +fi
> +
I think that currently we try to make "--help" work
even if you don't have a working C compiler. Does this
break that?
thanks
-- PMM
On 11/01/2017 05:41 PM, Peter Maydell wrote:
> On 1 November 2017 at 19:31, Daniel Henrique Barboza
> <danielhb@linux.vnet.ibm.com> wrote:
>> When executing 'configure' in a fresh QEMU clone, in a fresh
>> OS install running in a ppc64le host, this is the error
>> shown:
>>
>> -----
>>
>> ../configure --enable-trace-backend=simple --enable-debug
>> --target-list=ppc64-softmmu
>>
>> ERROR: Unsupported CPU = ppc64le, try --enable-tcg-interpreter
>>
>> -----
>>
>> This isn't true, ppc64le host CPU is supported. This happens because,
>> in a fresh install, we don't have a C compiler to autodetect
>> the $cpu variable to "ppc64".
>>
>> Since we need a C compiler to properly get the value of $cpu
>> in this and other cases, this patch changes the location of the C
>> compiler check right after setting the preferred CC.
>>
>> Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com>
>> ---
>> configure | 34 +++++++++++++++++-----------------
>> 1 file changed, 17 insertions(+), 17 deletions(-)
>>
>> diff --git a/configure b/configure
>> index 285d123dbf..a641bf18b6 100755
>> --- a/configure
>> +++ b/configure
>> @@ -467,6 +467,23 @@ else
>> cc="${CC-${cross_prefix}gcc}"
>> fi
>>
>> +write_c_skeleton() {
>> + cat > $TMPC <<EOF
>> +int main(void) { return 0; }
>> +EOF
>> +}
>> +
>> +# check that the C compiler works.
>> +write_c_skeleton;
>> +if compile_object ; then
>> + : C compiler works ok
>> +else
>> + error_exit "\"$cc\" either does not exist or does not work"
>> +fi
>> +if ! compile_prog ; then
>> + error_exit "\"$cc\" cannot build an executable (is your linker broken?)"
>> +fi
>> +
> I think that currently we try to make "--help" work
> even if you don't have a working C compiler. Does this
> break that?
Just checked, configure --help isn't broken with this change:
$ ../configure --help
Usage: configure [options]
Options: [defaults in brackets after descriptions]
Standard options:
--help print this message
(...)
Thanks,
Daniel
>
> thanks
> -- PMM
>
On 1 November 2017 at 19:46, Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com> wrote: > On 11/01/2017 05:41 PM, Peter Maydell wrote: >> I think that currently we try to make "--help" work >> even if you don't have a working C compiler. Does this >> break that? > > Just checked, configure --help isn't broken with this change: Did you test with gcc uninstalled again? It's hard to see how it could work -- if the compile test fails we'll call error_exit, which (as the name suggests) exits. Your patch moves the compiler check from after we handle --help to before it... thanks -- PMM
>>> I think that currently we try to make "--help" work >>> even if you don't have a working C compiler. Does this >>> break that? >> >> Just checked, configure --help isn't broken with this change: > > Did you test with gcc uninstalled again? It's hard to see > how it could work -- if the compile test fails we'll call > error_exit, which (as the name suggests) exits. Your patch > moves the compiler check from after we handle --help to > before it... $ CC=asdf ./configure --help ERROR: "asdf" either does not exist or does not work Oops.
© 2016 - 2025 Red Hat, Inc.