On Mon, May 09, 2016 at 04:31:26PM +0100, Stefan Hajnoczi wrote: > On Mon, May 9, 2016 at 2:24 PM, Stefan Hajnoczi <stefa...@gmail.com> wrote: > > On Mon, Apr 25, 2016 at 05:04:40PM +0100, Richard W.M. Jones wrote: > >> v5 -> v6: > >> > >> - Changed the xen_load_linux assertion as suggested by Stefan. > >> > >> - I renamed the variables in get_e801_addr function, since the > >> registers were really (16 bit 8086-style) AX, not EAX etc. Also I > >> changed the GCC asm to make it a little bit more efficient. I > >> verified by disassembling the function that GCC is still generating > >> the right code after this change. > >> > >> - Re-tested with small (342K) libguestfs initramfs and with large > >> (20M) Fedora initramfs, and works fine in both cases. > > > > No one has picked this up, so I have (for QEMU 2.7). > > > > Thanks, applied to my block tree: > > https://github.com/stefanha/qemu/commits/block > > The bad news is this patch breaks the build under clang: [...] > The .code16gcc issue can probably be resolved with -m16 (which gcc > 4.9+ also supports!). I haven't looked into the other issues though.
It looks as if the easiest way to get around this will be to use gas instead of clang's integrated assembler, ie: CFLAGS += -m16 -fno-integrated-as However I have no idea if there are platforms we support which use clang and require the integrated assembler instead of binutils. Opinions on this? Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org