From: Anthony PERARD <anthony.perard@citrix.com>
To: George Dunlap <george.dunlap@citrix.com>
Cc: xen-devel@lists.xenproject.org,
Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH raisin 4/4] Update to 4.7, update qemu and qemu_traditional recipes
Date: Tue, 14 Jun 2016 14:53:47 +0100 [thread overview]
Message-ID: <20160614135347.GL5666@perard.uk.xensource.com> (raw)
In-Reply-To: <575FDDC3.8070305@citrix.com>
On Tue, Jun 14, 2016 at 11:34:43AM +0100, George Dunlap wrote:
> On 14/06/16 11:31, Stefano Stabellini wrote:
> > On Tue, 14 Jun 2016, George Dunlap wrote:
> >> On 14/06/16 11:08, Stefano Stabellini wrote:
> >>> On Tue, 14 Jun 2016, George Dunlap wrote:
> >>>> On 14/06/16 10:46, Stefano Stabellini wrote:
> >>>>> On Mon, 13 Jun 2016, George Dunlap wrote:
> >>>>>> Add a 4.7 config file, make it the default.
> >>>>>>
> >>>>>> Also update the qemu and qemu_traditional recipies after Ian Cambell's
> >>>>>> work to split off separate libraries.
> >>>>>>
> >>>>>> Signed-off-by: George Dunlap <george.dunlap@citrix.com>
> >>>>>> ---
> >>>>>> CC: Stefano Stabellini <sstabellini@kernel.org>
> >>>>>> ---
> >>>>>> components/qemu | 21 +++++++++++++--------
> >>>>>> components/qemu_traditional | 2 +-
> >>>>>> configs/config-4.7 | 8 ++++++++
> >>>>>> defconfig | 2 +-
> >>>>>> 4 files changed, 23 insertions(+), 10 deletions(-)
> >>>>>>
> >>>>>> diff --git a/components/qemu b/components/qemu
> >>>>>> index e0d92a5..8624b50 100644
> >>>>>> --- a/components/qemu
> >>>>>> +++ b/components/qemu
> >>>>>> @@ -23,15 +23,20 @@ function qemu_build() {
> >>>>>> cd "$BASEDIR"
> >>>>>> git-checkout $QEMU_URL $QEMU_REVISION qemu-dir
> >>>>>> cd qemu-dir
> >>>>>> - ./configure --enable-xen --target-list=i386-softmmu --prefix=$PREFIX \
> >>>>>> - --extra-cflags="-I$INST_DIR/$PREFIX/include" \
> >>>>>> - --extra-ldflags="-L$INST_DIR/$PREFIX/lib -Wl,-rpath-link=$INST_DIR/$PREFIX/lib \
> >>>>>> +
> >>>>>> + ./configure --enable-xen --target-list=i386-softmmu \
> >>>>>> + --prefix=$PREFIX \
> >>>>>> + --extra-cflags="-DXC_WANT_COMPAT_EVTCHN_API=1 \
> >>>>>> + -DXC_WANT_COMPAT_GNTTAB_API=1 \
> >>>>>> + -DXC_WANT_COMPAT_MAP_FOREIGN_API=1 \
> >>>>>> + -I$INST_DIR/$PREFIX/include" \
> >>>>>> + --extra-ldflags="-L$INST_DIR/$PREFIX/lib -Wl,-rpath-link=$INST_DIR/$PREFIX/lib \
> >>>>>> -L$INST_DIR/$PREFIX/lib64 -Wl,-rpath-link=$INST_DIR/$PREFIX/lib64" \
> >>>>>> - --disable-kvm \
> >>>>>> - --disable-docs \
> >>>>>> - --bindir=$PREFIX/lib/xen/bin \
> >>>>>> - --datadir=$PREFIX/share/qemu-xen \
> >>>>>> - --disable-guest-agent
> >>>>>> + --bindir=$PREFIX/lib/xen/bin \
> >>>>>> + --datadir=$PREFIX/share/qemu-xen \
> >>>>>> + --disable-kvm \
> >>>>>> + --disable-docs \
> >>>>>> + --disable-guest-agent
> >>>>>
> >>>>> This is adding XC_WANT_COMPAT_EVTCHN_API=1, etc, unconditionally. If we
> >>>>> make this change, will raisin still be able to buil an older qemu
> >>>>> against an older xen?
> >>>>
> >>>> I've tested this with XEN_RELEASE set to 4.5 and 4.6, and it builds just
> >>>> fine. The #define is just ignored, since neither Xen nor qemu in the
> >>>> 4.5 and 4.6 branches know anything about it.
> >>>>
> >>>> If part of our goal is to be a repository of the canonical way to build
> >>>> things, though, perhaps it would be better to have the extra flags be
> >>>> conditional on the value of XEN_RELEASE.
> >>>
> >>> If we are sure that it's ignored than it might be benign. Maybe we
> >>> should just add an in-code comment to explain why we added it though.
> >>
> >> Well really, I think that the detection should be put into the qemu
> >> configure scripts -- i.e., it should detect that there's the new API and
> >> add the appropriate #defines itself. But that's the sort of change I
> >> don't think there will be a lot of enthusiasm for. :-)
> >
> > Actually there is already code in QEMU configure script for the
> > detection. In fact I was wondering if explicitly passing XC_WANT_* is
> > actually necessary. I don't think it is from QEMU POV.
>
> That code might be in qemu-upstream, but it's not in the qemu-xen trees;
> if you revert this bit of the patch and try to build with raisin it will
> fail. That's why I even bothered to add these in in the first place;
> and why IanC added these runes to tools/Makefile.
>
> Anthony, can you comment more authoritatively here on what's going on?
Yes, easy, xen-4.7 introduce a new API but qemu-xen-4.7 does not know
about it, so qemu-xen will fail to compile. But there are some magic
flags that are use to provide an compatible API and can qemu-xen
compile.
QEMU have been taught about the new API and will use it, without the
magic flags. QEMU will actually ignore the magic flags with a bunch of
#undef.
> Would it be possible for 4.7.1 to backport the configure auto-detection
> stuff?
I think that would be possible. But backporting the use of the new api
will probably be harder. I guess we could just have qemu-xen define the
magic flags itself instead of relying on them been given via a configure
option.
Is that answer your questions?
--
Anthony PERARD
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-06-14 13:53 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-13 14:44 [PATCH raisin 0/4] Fixes for 4.6, update to 4.7 George Dunlap
2016-06-13 14:44 ` [PATCH raisin 1/4] components/xen: Actually disable rombios George Dunlap
2016-06-14 9:32 ` Stefano Stabellini
2016-06-13 14:44 ` [PATCH raisin 2/4] config: Separate config urls into a separate file George Dunlap
2016-06-14 9:34 ` Stefano Stabellini
2016-06-13 14:44 ` [PATCH raisin 3/4] Update config-4.6 and config-4.5 to point to stable branches George Dunlap
2016-06-14 9:40 ` Stefano Stabellini
2016-06-14 9:57 ` George Dunlap
2016-06-14 10:01 ` Stefano Stabellini
2016-06-14 10:10 ` George Dunlap
2016-06-15 10:24 ` Stefano Stabellini
2016-06-15 10:38 ` George Dunlap
2016-06-15 10:53 ` Stefano Stabellini
2016-06-15 11:13 ` George Dunlap
2016-06-15 14:02 ` Stefano Stabellini
2016-06-15 16:11 ` George Dunlap
2016-06-13 14:44 ` [PATCH raisin 4/4] Update to 4.7, update qemu and qemu_traditional recipes George Dunlap
2016-06-14 9:46 ` Stefano Stabellini
2016-06-14 10:03 ` George Dunlap
2016-06-14 10:08 ` Stefano Stabellini
2016-06-14 10:17 ` George Dunlap
2016-06-14 10:31 ` Stefano Stabellini
2016-06-14 10:34 ` George Dunlap
2016-06-14 13:53 ` Anthony PERARD [this message]
2016-06-14 14:00 ` George Dunlap
2016-06-14 14:23 ` Anthony PERARD
2016-06-14 14:38 ` George Dunlap
2016-06-15 10:39 ` Stefano Stabellini
2016-06-15 10:42 ` George Dunlap
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160614135347.GL5666@perard.uk.xensource.com \
--to=anthony.perard@citrix.com \
--cc=george.dunlap@citrix.com \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).