[PATCH] configure: Fix building on a ppc64 host with Clang

Thomas Huth posted 1 patch 2 years, 2 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220301132754.1483837-1-thuth@redhat.com
configure | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH] configure: Fix building on a ppc64 host with Clang
Posted by Thomas Huth 2 years, 2 months ago
Clang only supports the -mlittle-endian and -mbig-endian switches,
and not -mlittle / -mbig. Since GCC supports both, let's use the
long versions that are supported by both instead.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 configure | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index c56ed53ee3..81618708e4 100755
--- a/configure
+++ b/configure
@@ -630,10 +630,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" ;;
-- 
2.27.0
Re: [PATCH] configure: Fix building on a ppc64 host with Clang
Posted by Philippe Mathieu-Daudé 2 years, 2 months ago
On 1/3/22 14:27, Thomas Huth wrote:
> Clang only supports the -mlittle-endian and -mbig-endian switches,
> and not -mlittle / -mbig. Since GCC supports both, let's use the
> long versions that are supported by both instead.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>   configure | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/configure b/configure
> index c56ed53ee3..81618708e4 100755
> --- a/configure
> +++ b/configure
> @@ -630,10 +630,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" ;;

Mirek sent a similar fix, but it was pending Matheus TCG fixes:

https://lore.kernel.org/qemu-devel/20220131091714.4825-1-mrezanin@redhat.com/
https://lists.gnu.org/archive/html/qemu-ppc/2022-02/msg00116.html
Re: [PATCH] configure: Fix building on a ppc64 host with Clang
Posted by Cédric Le Goater 2 years, 2 months ago
On 3/1/22 15:59, Philippe Mathieu-Daudé wrote:
> On 1/3/22 14:27, Thomas Huth wrote:
>> Clang only supports the -mlittle-endian and -mbig-endian switches,
>> and not -mlittle / -mbig. Since GCC supports both, let's use the
>> long versions that are supported by both instead.
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>>   configure | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/configure b/configure
>> index c56ed53ee3..81618708e4 100755
>> --- a/configure
>> +++ b/configure
>> @@ -630,10 +630,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" ;;
> 
> Mirek sent a similar fix, but it was pending Matheus TCG fixes:
> 
> https://lore.kernel.org/qemu-devel/20220131091714.4825-1-mrezanin@redhat.com/
> https://lists.gnu.org/archive/html/qemu-ppc/2022-02/msg00116.html

Yes.

I kept it for later because I understood there were still problems
with clang. May be I am wrong. Matheus ?

Thanks,

C.

Re: [PATCH] configure: Fix building on a ppc64 host with Clang
Posted by Thomas Huth 2 years, 2 months ago
On 01/03/2022 18.22, Cédric Le Goater wrote:
> On 3/1/22 15:59, Philippe Mathieu-Daudé wrote:
>> On 1/3/22 14:27, Thomas Huth wrote:
>>> Clang only supports the -mlittle-endian and -mbig-endian switches,
>>> and not -mlittle / -mbig. Since GCC supports both, let's use the
>>> long versions that are supported by both instead.
>>>
>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>> ---
>>>   configure | 4 ++--
>>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/configure b/configure
>>> index c56ed53ee3..81618708e4 100755
>>> --- a/configure
>>> +++ b/configure
>>> @@ -630,10 +630,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" ;;
>>
>> Mirek sent a similar fix, but it was pending Matheus TCG fixes:
>>
>> https://lore.kernel.org/qemu-devel/20220131091714.4825-1-mrezanin@redhat.com/
>> https://lists.gnu.org/archive/html/qemu-ppc/2022-02/msg00116.html
> 
> Yes.
> 
> I kept it for later because I understood there were still problems
> with clang. May be I am wrong. Matheus ?

As far as I can see, there are some additional problems with the TCG tests, 
but the patch to the configure script is already required if the user only 
want to compile the main QEMU binaries. So I'd recommend to go ahead and 
queue Miroslav's patch already, the TCG tests can still be fixed on top later.

  Thomas


Re: [PATCH] configure: Fix building on a ppc64 host with Clang
Posted by Cédric Le Goater 2 years, 2 months ago
On 3/1/22 18:25, Thomas Huth wrote:
> On 01/03/2022 18.22, Cédric Le Goater wrote:
>> On 3/1/22 15:59, Philippe Mathieu-Daudé wrote:
>>> On 1/3/22 14:27, Thomas Huth wrote:
>>>> Clang only supports the -mlittle-endian and -mbig-endian switches,
>>>> and not -mlittle / -mbig. Since GCC supports both, let's use the
>>>> long versions that are supported by both instead.
>>>>
>>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>>> ---
>>>>   configure | 4 ++--
>>>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/configure b/configure
>>>> index c56ed53ee3..81618708e4 100755
>>>> --- a/configure
>>>> +++ b/configure
>>>> @@ -630,10 +630,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" ;;
>>>
>>> Mirek sent a similar fix, but it was pending Matheus TCG fixes:
>>>
>>> https://lore.kernel.org/qemu-devel/20220131091714.4825-1-mrezanin@redhat.com/
>>> https://lists.gnu.org/archive/html/qemu-ppc/2022-02/msg00116.html
>>
>> Yes.
>>
>> I kept it for later because I understood there were still problems
>> with clang. May be I am wrong. Matheus ?
> 
> As far as I can see, there are some additional problems with the TCG tests, but the patch to the configure script is already required if the user only want to compile the main QEMU binaries. So I'd recommend to go ahead and queue Miroslav's patch already, the TCG tests can still be fixed on top later.


OK. I will add it to the ppc queue.

Thanks,

C.