On 05/10/2018 11:10, Peter Maydell wrote: > On 5 October 2018 at 01:28, Laurent Vivier <laur...@vivier.eu> wrote: >> I have the following error when building on Fedora 28 and gcc (GCC) >> 8.1.1 20180712 (Red Hat 8.1.1-5) >> >> CC aarch64_be-linux-user/target/arm/arm-semi.o >> .../target/arm/arm-semi.c: In function ‘do_arm_semihosting’: >> .../target/arm/arm-semi.c:270:1: error: unknown option after ‘#pragma >> GCC diagnostic’ kind [-Werror=pragmas] >> >> Perhaps you should use a "#if defined(__clang__)" to apply your fix only >> to clang? > > I did test on gcc, but not that version. The point of the > _Pragma("GCC diagnostic ignored \"-Wpragmas\""); > line is to suppress that error (which it does on my gcc 5) > so I don't know why your gcc is complaining :-(
You should add Fedora 28 to you collection of virtual machines :) > > If you add an extra diagnostic push, so: > > + _Pragma("GCC diagnostic push"); \ > + _Pragma("GCC diagnostic ignored \"-Wpragmas\""); \ > + _Pragma("GCC diagnostic push"); \ > + _Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\""); \ > > and then a balancing extra > > + _Pragma("GCC diagnostic pop"); \ > > at the end, I don't suppose that helps? No, it doesn't help > (I generally prefer to avoid marking things as clang- or gcc- > specific where I can.) I understand. But it's a clang bug, it seems reasonable to have specific code to workaround it. Thanks, Laurent