Am 25. Februar 2025 17:00:53 UTC schrieb Peter Maydell
<peter.mayd...@linaro.org>:
>On Tue, 25 Feb 2025 at 15:42, Peter Maydell <peter.mayd...@linaro.org> wrote:
>> The C compiler for the OpenSUSE CI job doesn't seem to like this:
>> https://gitlab.com/pm215/qemu/-/jobs/9239416833
>>
>> ../hw/arm/fsl-imx8mp.c: In function ‘fsl_imx8mp_realize’:
>> ../hw/arm/fsl-imx8mp.c:382:15: error: initializer element is not constant
>> { fsl_imx8mp_memmap[FSL_IMX8MP_UART1].addr,
>> FSL_IMX8MP_UART1_IRQ },
>> ^~~~~~~~~~~~~~~~~
>> ../hw/arm/fsl-imx8mp.c:382:15: note: (near initialization for
>> ‘serial_table[0].addr’)
>> ../hw/arm/fsl-imx8mp.c:383:15: error: initializer element is not constant
>> { fsl_imx8mp_memmap[FSL_IMX8MP_UART2].addr,
>> FSL_IMX8MP_UART2_IRQ },
>> ^~~~~~~~~~~~~~~~~
>>
>> This is (gcc 7.5.0 "cc (SUSE Linux) 7.5.0") apparently. That's
>> a pretty old compiler, only just within the bounds of our
>> version requirements (which are 7.4 or better), so I'm guessing
>> it's just not as smart about figuring out that the
>> initializer here really is a constant value.
>>
>> I'll fix this up by dropping the "const" from the serial_table[]
>> etc definitions.
>
>More specifically, you have to drop 'static const', leaving just 'struct'.
>Minimal repro: https://godbolt.org/z/5css4hv67
I haven't checked, but this is probably caused by the multiplications (... *
KiB) which the old compiler might not perform at compile time. Thanks for
looking into it without another iteration of the series!
Best regards,
Bernhard
>
>-- PMM