[PATCH v2] Use long endian options for ppc64

Miroslav Rezanina posted 1 patch 2 years, 3 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220131091714.4825-1-mrezanin@redhat.com
configure              | 4 ++--
tests/tcg/configure.sh | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
[PATCH v2] Use long endian options for ppc64
Posted by Miroslav Rezanina 2 years, 3 months ago
GCC options pairs -mlittle/-mlittle-endian and -mbig/-mbig-endian are
equivalent on ppc64 architecture. However, Clang supports only long
version of the options.

Use longer form in configure to properly support both GCC and Clang
compiler. In addition, fix this issue in tcg test configure.

Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>

---
This is v2 of configure: Use -mlittle-endian instead of -mlittle for ppc64.

v2:
 - handle both -mlittle and -mbig usage
 - fix tests/tcg/configure.sh
---
 configure              | 4 ++--
 tests/tcg/configure.sh | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/configure b/configure
index e6cfc0e4be..066fa29b70 100755
--- a/configure
+++ b/configure
@@ -655,10 +655,10 @@ case "$cpu" in
   ppc)
     CPU_CFLAGS="-m32" ;;
   ppc64)
-    CPU_CFLAGS="-m64 -mbig" ;;
+    CPU_CFLAGS="-m64 -mbig-endian" ;;
   ppc64le)
     cpu="ppc64"
-    CPU_CFLAGS="-m64 -mlittle" ;;
+    CPU_CFLAGS="-m64 -mlittle-endian" ;;
 
   s390)
     CPU_CFLAGS="-m31" ;;
diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
index 309335a2bd..21959e1fde 100755
--- a/tests/tcg/configure.sh
+++ b/tests/tcg/configure.sh
@@ -64,9 +64,9 @@ fi
 : ${cross_cc_ppc="powerpc-linux-gnu-gcc"}
 : ${cross_cc_cflags_ppc="-m32"}
 : ${cross_cc_ppc64="powerpc64-linux-gnu-gcc"}
-: ${cross_cc_cflags_ppc64="-m64 -mbig"}
+: ${cross_cc_cflags_ppc64="-m64 -mbig-endian"}
 : ${cross_cc_ppc64le="$cross_cc_ppc64"}
-: ${cross_cc_cflags_ppc64le="-m64 -mlittle"}
+: ${cross_cc_cflags_ppc64le="-m64 -mlittle-endian"}
 : ${cross_cc_riscv64="riscv64-linux-gnu-gcc"}
 : ${cross_cc_s390x="s390x-linux-gnu-gcc"}
 : ${cross_cc_sh4="sh4-linux-gnu-gcc"}
-- 
2.34.1


Re: [PATCH v2] Use long endian options for ppc64
Posted by Greg Kurz 2 years, 2 months ago
On Mon, 31 Jan 2022 10:17:14 +0100
Miroslav Rezanina <mrezanin@redhat.com> wrote:

> GCC options pairs -mlittle/-mlittle-endian and -mbig/-mbig-endian are
> equivalent on ppc64 architecture. However, Clang supports only long
> version of the options.
> 
> Use longer form in configure to properly support both GCC and Clang
> compiler. In addition, fix this issue in tcg test configure.
> 
> Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
> 
> ---

Reviewed-by: Greg Kurz <groug@kaod.org>

> This is v2 of configure: Use -mlittle-endian instead of -mlittle for ppc64.
> 
> v2:
>  - handle both -mlittle and -mbig usage
>  - fix tests/tcg/configure.sh
> ---
>  configure              | 4 ++--
>  tests/tcg/configure.sh | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/configure b/configure
> index e6cfc0e4be..066fa29b70 100755
> --- a/configure
> +++ b/configure
> @@ -655,10 +655,10 @@ case "$cpu" in
>    ppc)
>      CPU_CFLAGS="-m32" ;;
>    ppc64)
> -    CPU_CFLAGS="-m64 -mbig" ;;
> +    CPU_CFLAGS="-m64 -mbig-endian" ;;
>    ppc64le)
>      cpu="ppc64"
> -    CPU_CFLAGS="-m64 -mlittle" ;;
> +    CPU_CFLAGS="-m64 -mlittle-endian" ;;
>  
>    s390)
>      CPU_CFLAGS="-m31" ;;
> diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
> index 309335a2bd..21959e1fde 100755
> --- a/tests/tcg/configure.sh
> +++ b/tests/tcg/configure.sh
> @@ -64,9 +64,9 @@ fi
>  : ${cross_cc_ppc="powerpc-linux-gnu-gcc"}
>  : ${cross_cc_cflags_ppc="-m32"}
>  : ${cross_cc_ppc64="powerpc64-linux-gnu-gcc"}
> -: ${cross_cc_cflags_ppc64="-m64 -mbig"}
> +: ${cross_cc_cflags_ppc64="-m64 -mbig-endian"}
>  : ${cross_cc_ppc64le="$cross_cc_ppc64"}
> -: ${cross_cc_cflags_ppc64le="-m64 -mlittle"}
> +: ${cross_cc_cflags_ppc64le="-m64 -mlittle-endian"}
>  : ${cross_cc_riscv64="riscv64-linux-gnu-gcc"}
>  : ${cross_cc_s390x="s390x-linux-gnu-gcc"}
>  : ${cross_cc_sh4="sh4-linux-gnu-gcc"}


Re: [PATCH v2] Use long endian options for ppc64
Posted by Greg Kurz 2 years, 2 months ago
On Tue, 8 Feb 2022 14:47:19 +0100
Greg Kurz <groug@kaod.org> wrote:

> On Mon, 31 Jan 2022 10:17:14 +0100
> Miroslav Rezanina <mrezanin@redhat.com> wrote:
> 
> > GCC options pairs -mlittle/-mlittle-endian and -mbig/-mbig-endian are
> > equivalent on ppc64 architecture. However, Clang supports only long
> > version of the options.
> > 
> > Use longer form in configure to properly support both GCC and Clang
> > compiler. In addition, fix this issue in tcg test configure.
> > 
> > Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
> > 
> > ---
> 
> Reviewed-by: Greg Kurz <groug@kaod.org>
> 

Cc'ing QEMU PPC folks since they're likely the primary users
of ppc64 hosts.

> > This is v2 of configure: Use -mlittle-endian instead of -mlittle for ppc64.
> > 
> > v2:
> >  - handle both -mlittle and -mbig usage
> >  - fix tests/tcg/configure.sh
> > ---
> >  configure              | 4 ++--
> >  tests/tcg/configure.sh | 4 ++--
> >  2 files changed, 4 insertions(+), 4 deletions(-)
> > 
> > diff --git a/configure b/configure
> > index e6cfc0e4be..066fa29b70 100755
> > --- a/configure
> > +++ b/configure
> > @@ -655,10 +655,10 @@ case "$cpu" in
> >    ppc)
> >      CPU_CFLAGS="-m32" ;;
> >    ppc64)
> > -    CPU_CFLAGS="-m64 -mbig" ;;
> > +    CPU_CFLAGS="-m64 -mbig-endian" ;;
> >    ppc64le)
> >      cpu="ppc64"
> > -    CPU_CFLAGS="-m64 -mlittle" ;;
> > +    CPU_CFLAGS="-m64 -mlittle-endian" ;;
> >  
> >    s390)
> >      CPU_CFLAGS="-m31" ;;
> > diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
> > index 309335a2bd..21959e1fde 100755
> > --- a/tests/tcg/configure.sh
> > +++ b/tests/tcg/configure.sh
> > @@ -64,9 +64,9 @@ fi
> >  : ${cross_cc_ppc="powerpc-linux-gnu-gcc"}
> >  : ${cross_cc_cflags_ppc="-m32"}
> >  : ${cross_cc_ppc64="powerpc64-linux-gnu-gcc"}
> > -: ${cross_cc_cflags_ppc64="-m64 -mbig"}
> > +: ${cross_cc_cflags_ppc64="-m64 -mbig-endian"}
> >  : ${cross_cc_ppc64le="$cross_cc_ppc64"}
> > -: ${cross_cc_cflags_ppc64le="-m64 -mlittle"}
> > +: ${cross_cc_cflags_ppc64le="-m64 -mlittle-endian"}
> >  : ${cross_cc_riscv64="riscv64-linux-gnu-gcc"}
> >  : ${cross_cc_s390x="s390x-linux-gnu-gcc"}
> >  : ${cross_cc_sh4="sh4-linux-gnu-gcc"}
> 


Re: [PATCH v2] Use long endian options for ppc64
Posted by Matheus K. Ferst 2 years, 2 months ago
On 31/01/2022 06:17, Miroslav Rezanina wrote:
> GCC options pairs -mlittle/-mlittle-endian and -mbig/-mbig-endian are
> equivalent on ppc64 architecture. However, Clang supports only long
> version of the options.
> 
> Use longer form in configure to properly support both GCC and Clang
> compiler. In addition, fix this issue in tcg test configure.
> 
> Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
> 
> ---
> This is v2 of configure: Use -mlittle-endian instead of -mlittle for ppc64.
> 
> v2:
>   - handle both -mlittle and -mbig usage
>   - fix tests/tcg/configure.sh
> ---
>   configure              | 4 ++--
>   tests/tcg/configure.sh | 4 ++--
>   2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/configure b/configure
> index e6cfc0e4be..066fa29b70 100755
> --- a/configure
> +++ b/configure
> @@ -655,10 +655,10 @@ case "$cpu" in
>     ppc)
>       CPU_CFLAGS="-m32" ;;
>     ppc64)
> -    CPU_CFLAGS="-m64 -mbig" ;;
> +    CPU_CFLAGS="-m64 -mbig-endian" ;;
>     ppc64le)
>       cpu="ppc64"
> -    CPU_CFLAGS="-m64 -mlittle" ;;
> +    CPU_CFLAGS="-m64 -mlittle-endian" ;;
> 
>     s390)
>       CPU_CFLAGS="-m31" ;;
> diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
> index 309335a2bd..21959e1fde 100755
> --- a/tests/tcg/configure.sh
> +++ b/tests/tcg/configure.sh
> @@ -64,9 +64,9 @@ fi
>   : ${cross_cc_ppc="powerpc-linux-gnu-gcc"}
>   : ${cross_cc_cflags_ppc="-m32"}
>   : ${cross_cc_ppc64="powerpc64-linux-gnu-gcc"}
> -: ${cross_cc_cflags_ppc64="-m64 -mbig"}
> +: ${cross_cc_cflags_ppc64="-m64 -mbig-endian"}
>   : ${cross_cc_ppc64le="$cross_cc_ppc64"}
> -: ${cross_cc_cflags_ppc64le="-m64 -mlittle"}
> +: ${cross_cc_cflags_ppc64le="-m64 -mlittle-endian"}
>   : ${cross_cc_riscv64="riscv64-linux-gnu-gcc"}
>   : ${cross_cc_s390x="s390x-linux-gnu-gcc"}
>   : ${cross_cc_sh4="sh4-linux-gnu-gcc"}
> --
> 2.34.1
> 
> 

The patch is fine, but some PPC tests are not compiling with Clang. I've 
sent an RFC about these issues: 
https://lists.gnu.org/archive/html/qemu-ppc/2022-02/msg00116.html

Thanks,
Matheus K. Ferst
Instituto de Pesquisas ELDORADO <http://www.eldorado.org.br/>
Analista de Software
Aviso Legal - Disclaimer <https://www.eldorado.org.br/disclaimer.html>

Re: [PATCH v2] Use long endian options for ppc64
Posted by Philippe Mathieu-Daudé via 2 years, 3 months ago
On 31/1/22 10:17, Miroslav Rezanina wrote:
> GCC options pairs -mlittle/-mlittle-endian and -mbig/-mbig-endian are
> equivalent on ppc64 architecture. However, Clang supports only long
> version of the options.
> 
> Use longer form in configure to properly support both GCC and Clang
> compiler. In addition, fix this issue in tcg test configure.
> 
> Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
> 
> ---
> This is v2 of configure: Use -mlittle-endian instead of -mlittle for ppc64.
> 
> v2:
>   - handle both -mlittle and -mbig usage
>   - fix tests/tcg/configure.sh
> ---
>   configure              | 4 ++--
>   tests/tcg/configure.sh | 4 ++--
>   2 files changed, 4 insertions(+), 4 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>