On Wed, 26 Feb 2025 at 06:36, Bernhard Beschow <shen...@gmail.com> wrote:
>
>
>
> 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 might be caused by the multiplications (... * KiB)

The godbolt repro case just uses plain constant values in the memmap
array, so it's not the multiplication that's at fault.

-- PMM

Reply via email to