On 16/07/2020 16.25, Daniel P. Berrangé wrote: > On Thu, Jul 16, 2020 at 03:11:01PM +0200, Thomas Huth wrote: >> When using --enable-werror for the macOS builders in the Cirrus-CI, >> the atomic64 test is currently failing, and config.log shows a bunch >> of error messages like this: >> >> config-temp/qemu-conf.c:6:7: error: implicit declaration of function >> '__atomic_load_8' is invalid in C99 >> [-Werror,-Wimplicit-function-declaration] >> y = __atomic_load_8(&x, 0); >> ^ >> config-temp/qemu-conf.c:6:7: error: this function declaration is not a >> prototype [-Werror,-Wstrict-prototypes] >> >> Suppress the warnings to make it pass. >> >> Signed-off-by: Thomas Huth <th...@redhat.com> >> --- >> Not sure whether this is the best way to fix this issue ... thus marked >> as RFC. >> Even though the compiler warns here, the program links apparently just >> fine afterwards and CONFIG_ATOMIC64=y gets set in the config-host.mak >> file on macOS, so the 64-bit atomic operations seem to be available... >> Any macOS users here who could shed some light on this? > > The error message refers to c99, but QEMU code standard is gnu99. > > It doesn't look like we set std=gnu99 when running configure > tests though, and I wonder if that is relevant in this case, > given that the atomic_load* stuff is all compiler built-in. > eg does -std=gnu99 have any impact on the warnings ?
I've dumped the config.log from a macOS run here: https://cirrus-ci.com/task/4569461585870848?command=main#L1295 Looks like -std=gnu99 is used for the test already. Thomas