[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL v2 00/27] ivshmem deprecation, qtests, typedefs a
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PULL v2 00/27] ivshmem deprecation, qtests, typedefs and gnu99 |
Date: |
Tue, 15 Jan 2019 18:10:38 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Daniel P. Berrangé <address@hidden> writes:
> On Tue, Jan 15, 2019 at 03:32:10PM +0100, Thomas Huth wrote:
>> On 2019-01-15 14:16, Peter Maydell wrote:
>> > On Mon, 14 Jan 2019 at 17:45, Thomas Huth <address@hidden> wrote:
>> >>
>> >> Hi Peter!
>> >>
>> >> The following changes since commit
>> >> 7260438b7056469610ee166f7abe9ff8a26b8b16:
>> >>
>> >> Merge remote-tracking branch
>> >> 'remotes/palmer/tags/riscv-for-master-3.2-part2' into staging (2019-01-14
>> >> 11:41:43 +0000)
>> >>
>> >> are available in the git repository at:
>> >>
>> >> https://gitlab.com/huth/qemu.git tags/pull-request-2019-01-14v2
>> >>
>> >> for you to fetch changes up to 650db715681ad1a042705484776e1974f288f3d4:
>> >>
>> >> tests/hexloader-test: Don't pass -nographic to the QEMU under test
>> >> (2019-01-14 18:21:29 +0100)
>> >>
>> >> ----------------------------------------------------------------
>> >> - Remove deprecated "ivshmem" legacy device
>> >> - Bug fix for vhost-user-test
>> >> - Use more CONFIG Makefile switches for qtests
>> >> - Get rid of global_qtests in some more qtests
>> >> - typedef cleanups
>> >> - Fixes for compiling with Clang
>> >> - Force C standard to gnu99
>> >> ----------------------------------------------------------------
>> >
>> > Hi; another compile failure on that ppc64 system, I'm afraid:
>> >
>> > /home/pm215/qemu/qemu-seccomp.c:45:1: error: initializer element is not
>> > constant
>> > };
>> > ^
>> > /home/pm215/qemu/qemu-seccomp.c:45:1: error: (near initialization for
>> > ‘sched_setscheduler_arg[0]’)
>> >
>> > (I did a quick check with 'make -k' and it looks like there aren't
>> > any more lurking after that one.)
>> >
>> > The system libseccomp is libseccomp-2.3.1-3.el7.
>>
>> Darn, I think this time it is a compiler bug:
>>
>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63567
>>
>> It's only fixed in GCC >= v5.0 :-(
>>
>> I see two options:
>>
>> 1) Expand the macro manually:
>>
>> diff --git a/qemu-seccomp.c b/qemu-seccomp.c
>> --- a/qemu-seccomp.c
>> +++ b/qemu-seccomp.c
>> @@ -41,7 +41,7 @@ struct QemuSeccompSyscall {
>> };
>>
>> const struct scmp_arg_cmp sched_setscheduler_arg[] = {
>> - SCMP_A1(SCMP_CMP_NE, SCHED_IDLE)
>> + { .arg = 1, .op = SCMP_CMP_NE, .datum_a = SCHED_IDLE }
>> };
>>
>> ... then it compiles fine for me in gnu99 mode, too.
>>
>> 2) Scratch the whole idea with gnu99 again ...
>
> I'd prefer 1, since I think its important for us to actually have a
> consistent compiler standard to target, even if we have to do some
> short terms hacks like the one you show. As long as a put a comment
> next to it, we can revert the hack when we eventually ditch support for the
> GCC <= 5.0
Yes, nailing down the language dialect is worth a few temporary hacks.
> Also, I'd probably argue that the seccomp syntax without the macro
> is clearer to understand regardless :-)
Me too, except SCMP_A1 & friends come from /usr/include/seccomp.h.
Expanding the macro until we upgrade compilers feels tolerable. Any
better ideas?
- [Qemu-devel] [PULL v2 00/27] ivshmem deprecation, qtests, typedefs and gnu99, Thomas Huth, 2019/01/14
- [Qemu-devel] [PULL v2 21/27] ui/console: Remove PixelFormat from qemu/typedefs.h, Thomas Huth, 2019/01/14
- [Qemu-devel] [PULL v2 20/27] ui/console: Remove MouseTransformInfo from qemu/typedefs.h, Thomas Huth, 2019/01/14
- [Qemu-devel] [PULL v2 25/27] block: Work-around a bug in libiscsi 1.9.0 when used in gnu99 mode, Thomas Huth, 2019/01/14
- Re: [Qemu-devel] [PULL v2 00/27] ivshmem deprecation, qtests, typedefs and gnu99, Peter Maydell, 2019/01/15