WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH]: Implement bzip2 and LZMA loaders / xen-unstable

On Tue, Aug 25, 2009 at 06:23:19PM +0300, Pasi Kärkkäinen wrote:
> 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 :)
> 

Attached are my current work-in-progress patches. It still doesn't link 
properly.. 

Stefano: Would you like to take a look? The patches are against current 
xen-unstable.

I'm getting weird linking error about stdin/stdout/stderr missing.. 
libc (newlib) is definitely linked in, so I'm not sure what's happening.. 

ld -nostdlib -L/root/xen-unstable.hg/stubdom/cross-root-i686/i686-xen-elf/lib 
-m elf_i386 -T arch/x86/minios-x86_32.lds
/root/xen-unstable.hg/stubdom/mini-os-x86_32-ioemu/mini-os.o -o 
/root/xen-unstable.hg/stubdom/mini-os-x86_32-ioemu/mini-os

xen-unstable.hg/stubdom/mini-os-x86_32-ioemu/mini-os.o: In function 
`bzopen_or_bzdopen':
xen-unstable.hg/stubdom/bzip2-x86_32/bzlib.c:1411: undefined reference to 
`__ctype_b_loc'
xen-unstable.hg/stubdom/bzip2-x86_32/bzlib.c:1447: undefined reference to 
`stdin'
xen-unstable.hg/stubdom/bzip2-x86_32/bzlib.c:1447: undefined reference to 
`stdout'
...

In the earlier step mini-os.o was definitely linked against -lc .. 

"strings /path/mini-os.o | grep -i stdin" doesn't give anything though.. 
I wonder why the stuff doesn't get included there.

-- Pasi

Attachment: stubdom-Makefile-bzip2-lzma-support-v1.patch
Description: Text Data

Attachment: extras-minios-Makefile-bzip2-lzma-support-v1.patch
Description: Text Data

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
  • Re: [Xen-devel] [PATCH]: Implement bzip2 and LZMA loaders / xen-unstable stubdom pvgrub support, Pasi Kärkkäinen <=