On 10/5/2026 10:04 AM, Yonggang Luo wrote:
> On Tue, Oct 6, 2026 at 12:25 AM Pierrick Bouvier
> <[email protected]> wrote:
>>>>
>>>> Ok, but I'm not sure it answers the why.
>>>> Could you explain the benefits?
>>>
>>> Which part? keeping target_arch as SYS_EMU_TARGET__MAX for user-binary 
>>> because
>>> The following original code would return -1 for some user-binary
>>> +    SysEmuTarget arch = target_info()->target_arch;
>>> +
>>> +    if (arch == SYS_EMU_TARGET__MAX) {
>>> +        arch = qapi_enum_parse(&SysEmuTarget_lookup, target_name(), -1,
>>> +                               &error_abort);
>>> +    }
>>> +    return arch;
>>> So basically assigning any value for the user binary is valid.
>>> SYS_EMU_TARGET__MAX is more explicit as it's related to type SysEmuTarget.
>>> -1 is another option but easy to confuse.
>>>
>>>
>>> For why commit e934c624f32f6f44f427d73a2e6a67e983a02ae6.
>>> "target-info: Statically initialize target_arch"
>>> doing that, I am not sure.
>>>
>>
>> I guess there is a (good or bad) reason for which sub variants of
>> targets are not reflected in SYS_EMU_TARGET enum. We should double check
>> that before doing any change, as it might have other consequences.
> 
> 
> You’re right to ask, and I need to correct my earlier suggestion:
> leaving user-mode target_arch
>  as SYS_EMU_TARGET__MAX is not safe. target_aarch64() is used by ARM
> code shared with user-mode builds,
> including cpu-max-v8.c, where its result indexes a two-entry array.
> For aarch64-linux-user, the sentinel could therefore cause an
> out-of-bounds access during type registration.
> 
> I checked the distinction: softmmu needs the full system-target
> identity, including variants such as mipsel;
> user-mode variants such as aarch64_be use their base TARGET_ARCH
> (aarch64) for this enum. I’ll keep the full TARGET_SYS_EMU
>  value for softmmu and use TARGET_ARCH for user-mode builds, rather
> than leave the field at SYS_EMU_TARGET__MAX.
>

That's technical details, but not an answer to the initial question of
why we need to change anything for user binaries, compared to what exists.

>>
>>>
>>>>
>>>>> "target-info: Statically initialize target_arch"
>>>>>
>>>>>>
>>>>>> Regards,
>>>>>> Pierrick
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>> --
>>>          此致
>>> 礼
>>> 罗勇刚
>>> Yours
>>>     sincerely,
>>> Yonggang Luo
>>
> 
> 


Reply via email to