[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH]: Implement bzip2 and LZMA loaders / fixed patch for Xen 3.4.1



On Mon, Aug 24, 2009 at 03:04:00PM +0100, Stefano Stabellini wrote:
> On Fri, 21 Aug 2009, Pasi Kärkkäinen wrote:
> > On Fri, Aug 21, 2009 at 11:12:00PM +0300, Pasi Kärkkäinen wrote:
> > > On Fri, Aug 21, 2009 at 11:13:23AM +0100, Keir Fraser wrote:
> > > > On 21/08/2009 10:54, "Keir Fraser" <keir.fraser@xxxxxxxxxxxxx> wrote:
> > > > 
> > > > >> Good point. pvgrub should support these aswell.
> > > > >> 
> > > > >> Keir: Would you like to add those libs to stubdom?
> > > > >> 
> > > > >> (Note the lzma.h is coming from that "xz" package..)
> > > > > 
> > > > > No. :-) But feel free to make a patch! You'll just need to modify
> > > > > libxc/Makefile too to force those libs on instead of off, as well as
> > > > > download and build the libs of course.
> > > > 
> > > > Actually I just checked in c/s 20105 to get rid of the minios-specific 
> > > > hack
> > > > in that Makefile. So all you need to do is patch to download and build 
> > > > the
> > > > libs. If you make a patch, I will arrange for the lib tarballs to be 
> > > > hosted
> > > > on xenbits and adjust the patch URLs appropriately.
> > > > 
> > > 
> > > I can now see why you didn't want to do that.. :) I managed to get the 
> > > libs to 
> > > compile, but now I'm having other problems..
> > > 
> > > "make stubdom" gets to the point where it compiles ioemu-stubdom, but it 
> > > fails 
> > > to link because xen-unstable.hg/stubdom/mini-os-x86_32-ioemu/mini-os.o 
> > > has 
> > > undefined references in xc_try_bzip2_decode and xc_try_lzma_decode 
> > > functions.. 
> > > 
> > > I guess only pvgrub would need to have this stuff in? I've been trying to
> > > figure out how the makefile magic works, but haven't really understood it 
> > > yet.
> > > 
> > > Any tips how to make ioemu-stubdom compile/link without including 
> > > bzip2/lzma stuff into it? 
> > > 
> > 
> > Actually I guess I could add the missing libs to extras/mini-os/Makefile to
> > APP_LDLIBS to get them included into ioemu-stubdom?
> > 
> > Is that the right way to do it?
> > 
> 
> bzlib and lzma are libxc dependencies now, so firstly you have to add
> the two libraries to the stubdom build system, take a look at
> pciutils in stubdom/Makefile, that is a good example of how a new
> library is added.

This is done, and works. libbz2.a and liblzma.a end up in
stubdom/cross-root-i686/i686-xen-elf/lib/ directory on my 32bit host.

> Then you also need to add them both at least to the libxc target, take a
> look at zlib (and cross-zlib), that should be close to what you need.

Done.

> Finally you need to tweak the libxc Makefile for the stubdom case so
> that the two libraries are correctly added to zlib-options.
> 

So you mean xen-unstable/tools/libxc/Makefile here? This part?

ifeq ($(CONFIG_MiniOS),y)
zlib-options =



The problem I'm seeing now is "ioemu" target from xen-unstable/stubdom/Makefile 
fails to
link:

ld -nostdlib 
-L/root/tem/xen-unstable.hg/stubdom/cross-root-i686/i686-xen-elf/lib  -m 
elf_i386 -T arch/x86/minios-x86_32.lds
/root/tem/xen-unstable.hg/stubdom/mini-os-x86_32-ioemu/mini-os.o  -o 
/root/tem/xen-unstable.hg/stubdom/mini-os-x86_32-ioemu/mini-os
ld: warning: section `.bss' type changed to PROGBITS 
/root/tem/xen-unstable.hg/stubdom/mini-os-x86_32-ioemu/mini-os.o: In function 
`xc_try_bzip2_decode':
/root/tem/xen-unstable.hg/stubdom/libxc-x86_32/xc_dom_bzimageloader.c:42: 
undefined reference to `BZ2_bzDecompressInit'
/root/tem/xen-unstable.hg/stubdom/libxc-x86_32/xc_dom_bzimageloader.c:105: 
undefined reference to `BZ2_bzDecompressEnd'
/root/tem/xen-unstable.hg/stubdom/libxc-x86_32/xc_dom_bzimageloader.c:69: 
undefined reference to `BZ2_bzDecompress'
/root/tem/xen-unstable.hg/stubdom/libxc-x86_32/xc_dom_bzimageloader.c:105: 
undefined reference to `BZ2_bzDecompressEnd'
/root/tem/xen-unstable.hg/stubdom/mini-os-x86_32-ioemu/mini-os.o: In function 
`xc_try_lzma_decode':
/root/tem/xen-unstable.hg/stubdom/libxc-x86_32/xc_dom_bzimageloader.c:158: 
undefined reference to `lzma_alone_decoder'
/root/tem/xen-unstable.hg/stubdom/libxc-x86_32/xc_dom_bzimageloader.c:253: 
undefined reference to `lzma_end'
/root/tem/xen-unstable.hg/stubdom/libxc-x86_32/xc_dom_bzimageloader.c:185: 
undefined reference to `lzma_code'
/root/tem/xen-unstable.hg/stubdom/libxc-x86_32/xc_dom_bzimageloader.c:253: 
undefined reference to `lzma_end'
make[1]: ***
[/root/tem/xen-unstable.hg/stubdom/mini-os-x86_32-ioemu/mini-os] Error 1
make[1]: Leaving directory `/root/tem/xen-unstable.hg/extras/mini-os'
make: *** [ioemu-stubdom] Error 2

So basicly I should add libbz2.a and liblzma.a to the list of files to link,
but I'm a bit lost where this is happening. Should I edit
xen-unstable/extras/mini-os/Makefile to add those libs or somewhere else? 

I tried adding those libs to xen-unstable/stubdom/Makefile to "ioemu" 
TARGET_LDFLAGS, but
that didn't seem to help.

All tips welcome :)

-- Pasi

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.