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
stubdom-Makefile-bzip2-lzma-support-v1.patch
Description: Text Data
extras-minios-Makefile-bzip2-lzma-support-v1.patch
Description: Text Data
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|