On Mon, 12 Jul 2021 at 23:53, Alistair Francis <alistair.fran...@wdc.com> wrote: > > The following changes since commit 57e28d34c0cb04abf7683ac6a12c87ede447c320: > > Merge remote-tracking branch 'remotes/cohuck-gitlab/tags/s390x-20210708' > into staging (2021-07-12 19:15:11 +0100) > > are available in the Git repository at: > > g...@github.com:alistair23/qemu.git tags/pull-riscv-to-apply-20210712 > > for you to fetch changes up to d6b87906f09f72a837dc68c33bfc3d913ef74b7d: > > hw/riscv: opentitan: Add the flash alias (2021-07-13 08:47:52 +1000) > > ---------------------------------------------------------------- > Fourth RISC-V PR for 6.1 release > > - Code cleanups > - Documentation improvements > - Hypervisor extension improvements with hideleg and hedeleg > - sifive_u fixes > - OpenTitan register layout updates
Hi; this fails to compile on some hosts: ../../target/riscv/csr.c:437:48: error: initializer element is not constant static const target_ulong vs_delegable_excps = delegable_excps & ^~~~~~~~~~~~~~~ That happens on s390x, x86-64, aarch32, NetBSD. I think this is "gcc older than gcc 8 is stricter about what it allows as a constant expression". If I understand the GCC bugzilla issue I ran into via a bit of googling, the C spec is quite limiting in what it considers to be a "constant expression", and in particular "some other variable with the 'const' attribute" isn't one. The spec does allow compilers the impdef leeway to allow a wider range of things to be constant expressions, and gcc 8 is cleverer here than gcc 7 was. If delegable_excps was a #define rather than a 'const' variable it would be OK here, I think. thanks -- PMM