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 >> > >
