Thomas Huth <th...@redhat.com> writes:

> On 03/02/2025 04.18, Richard Henderson wrote:
>> Define TARGET_LONG_BITS in each target's configure fragment.
>> Do this without removing the define in target/*/cpu-param.h
>> so that errors are caught like so:
>> In file included from .../src/include/exec/cpu-defs.h:26,
>>                   from ../src/target/hppa/cpu.h:24,
>>                   from ../src/linux-user/qemu.h:4,
>>                   from ../src/linux-user/hppa/cpu_loop.c:21:
>> ../src/target/hppa/cpu-param.h:11: error: "TARGET_LONG_BITS" redefined 
>> [-Werror]
>>     11 | #define TARGET_LONG_BITS              64
>>        |
>> In file included from .../src/include/qemu/osdep.h:36,
>>                   from ../src/linux-user/hppa/cpu_loop.c:20:
>> ./hppa-linux-user-config-target.h:32: note: this is the location of the 
>> previous definition
>>     32 | #define TARGET_LONG_BITS 32
>>        |
>> cc1: all warnings being treated as errors
>> Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
>> ---
> [...]> diff --git a/configs/targets/hppa-linux-user.mak
> b/configs/targets/hppa-linux-user.mak
>> index 8e0a80492f..4295cf384e 100644
>> --- a/configs/targets/hppa-linux-user.mak
>> +++ b/configs/targets/hppa-linux-user.mak
>> @@ -3,3 +3,5 @@ TARGET_ABI32=y
>>   TARGET_SYSTBL_ABI=common,32
>>   TARGET_SYSTBL=syscall.tbl
>>   TARGET_BIG_ENDIAN=y
>> +# Compromise to ease maintainence vs system mode
>
> s/maintainence/maintenance/
>
>> diff --git a/configs/targets/mipsn32-linux-user.mak 
>> b/configs/targets/mipsn32-linux-user.mak
>> index 206095da64..39ae214633 100644
>> --- a/configs/targets/mipsn32-linux-user.mak
>> +++ b/configs/targets/mipsn32-linux-user.mak
>> @@ -5,3 +5,4 @@ TARGET_BASE_ARCH=mips
>>   TARGET_SYSTBL_ABI=n32
>>   TARGET_SYSTBL=syscall_n32.tbl
>>   TARGET_BIG_ENDIAN=y
>> +TARGET_LONG_BITS=64
>
> Why is this 64 ?
>
>> diff --git a/configs/targets/mipsn32el-linux-user.mak 
>> b/configs/targets/mipsn32el-linux-user.mak
>> index ca2a3ed753..d9b61d6990 100644
>> --- a/configs/targets/mipsn32el-linux-user.mak
>> +++ b/configs/targets/mipsn32el-linux-user.mak
>> @@ -4,3 +4,4 @@ TARGET_ABI32=y
>>   TARGET_BASE_ARCH=mips
>>   TARGET_SYSTBL_ABI=n32
>>   TARGET_SYSTBL=syscall_n32.tbl
>> +TARGET_LONG_BITS=64
>
> dito?

Are these 64 bit linux-user with 32 bit ABIs like x32?

>
>> diff --git a/configs/targets/sparc32plus-linux-user.mak 
>> b/configs/targets/sparc32plus-linux-user.mak
>> index 6cc8fa516b..7a16934fd1 100644
>> --- a/configs/targets/sparc32plus-linux-user.mak
>> +++ b/configs/targets/sparc32plus-linux-user.mak
>> @@ -5,3 +5,4 @@ TARGET_ABI_DIR=sparc
>>   TARGET_SYSTBL_ABI=common,32
>>   TARGET_SYSTBL=syscall.tbl
>>   TARGET_BIG_ENDIAN=y
>> +TARGET_LONG_BITS=64
>
> Same question here: Why 64? If this isn't a mistake, could you maybe
> add a comment?

This is definitely one of those weird 32bit ABI on 64 host.

>
>  Thanks,
>   Thomas

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro

Reply via email to