On Wed, Aug 30, 2023, 7:26 AM Thomas Huth <th...@redhat.com> wrote: > On 30/08/2023 15.16, Stefan Hajnoczi wrote: > > Hi, > > The patch introduces the following build failure: > > > > cc -m64 -mcx16 -Isubprojects/libvhost-user/libvhost-user.a.p > > -Isubprojects/libvhost-user -I../subprojects/libvhost-user > > -fdiagnostics-color=auto -Wall -Winvalid-pch -Werror -std=gnu99 -O2 -g > > -Wsign-compare -Wdeclaration-after-statement -Wstrict-aliasing > > -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing > > -fno-common -fwrapv -fPIE -pthread -D_GNU_SOURCE -MD -MQ > > subprojects/libvhost-user/libvhost-user.a.p/libvhost-user.c.o -MF > > subprojects/libvhost-user/libvhost-user.a.p/libvhost-user.c.o.d -o > > subprojects/libvhost-user/libvhost-user.a.p/libvhost-user.c.o -c > > ../subprojects/libvhost-user/libvhost-user.c > > In file included from ../subprojects/libvhost-user/include/atomic.h:18, > > from ../subprojects/libvhost-user/libvhost-user.c:53: > > ../subprojects/libvhost-user/include/compiler.h:38:40: error: missing > > binary operator before token "(" > > 38 | #if defined(__clang__) && > __has_warning("-Waddress-of-packed-member") > > | ^ > > > > https://gitlab.com/qemu-project/qemu/-/jobs/4981576093 > > IIRC older versions of GCC do not have __has_warning() yet, so if you want > to use this in compiler.h, you have to do it below the line in compiler.h > that adds this: > > #ifndef __has_warning > #define __has_warning(x) 0 /* compatibility with non-clang compilers */ > #endif >
This already works for linux-user. If there are gcc versions that break, our current CI jobs don't show it. Why add complexity for unsupported gcc versions? And how do I know I got it right? I'm really starting to think the feedback 'move it to compilers.h' should have just been ignored... it's turning into a lot of my time to correct that I don't have when I'm also out of CI minutes to test with. Warner > HTH, > Thomas > >