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/
Home Products Support Community News


[Xen-devel] Re: Pesky '#define current' in mini-os/sched.h

Ferenc Wagner, le Tue 28 Apr 2009 12:12:54 +0200, a écrit :
> Samuel Thibault <samuel.thibault@xxxxxxxxxxxx> writes:
> > Have you, like in the C example of stubdom/Makefile, propagated
> > TARGET_CPPFLAGS, TARGET_CFLAGS, and added a rule like is done for other
> > stubdom images in the "minios" paragraph of stubdom/Makefile?
> No, I had no idea how to start with this, I stole the various flags
> from the output of make c-stubdom and configured ncurses with those.

Errrr, that's an odd way. ncurses is a library, so stole things from a
library, see the cross-zlib part for instance.  No need to look at
c-stubdom (which is only about the main application, not a library).

> > Ferenc Wagner, le Mon 27 Apr 2009 22:29:02 +0200, a écrit :
> >
> >> I couldn't track how it's done for libpci & libz for qemu-stubdom
> >> (ioemu?) yet.
> >
> > It's all in stubdom/Makefile: they get installed within the
> > cross-root-$(GNU_TARGET_ARCH) hierarchy, where the linker finds it
> > thanks to the TARGET_LDFLAGS variable.
> >
> >> This make magic is somewhat convoluted,
> >
> > It's no magic, it's makefiles :)
> Ok, do I have to extend the # Links section as well?

You need to add a cross-ncurses dependency, but the rest is only for

> >> So, where should I add it for proper operation?
> >
> > Just the same way as zlib & C stubdom examples.
> I may be blind, but there's no -l linker option in stubdom/Makefile.

Sure, but in qemu/ there is a -lz linker option.  Just the usual way,
that is.

> NCURSES_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libncurses.a
> .PHONY: cross-ncurses
> cross-ncurses: $(NCURSES_STAMPFILE)
>         ( cd $< && \
>           CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" CC=$(CC) ./configure 
> --prefix=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf --with-build-cppflags="" 
> --with-build-cflags="" --with-build-ldflags="" --with-build-libs="" && \
>           $(MAKE) libs && \
>           $(MAKE) install.libs )
> The --with-build-* options do nothing, so two utilities must be compiled by 
> hand.

You need to pass the $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) there.

I'm actually feared by all your terminal additions.  These will probably
never be implemented in mini-os.  They can sure be stubbed, but the
application will probably just not work properly.  Remember that the Xen
console can be attached/detached/reattached from a lot of various kinds
of terminals...

> 9. Actually, deleting #define current get_current() from 
> extras/mini-os/include/mini-os/sched.h
> made libncurses++.a build, but broke make c-stubdom...  According to Keir 
> Fraser, the simplest fix is:
> #ifdef __MINIOS__
> #define current get_current()
> #endif

Use the same fix as in the unstable tree.


Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>