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