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

[Xen-devel] Using Mini-OS with GNU cross development chain and Red Hat N

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Using Mini-OS with GNU cross development chain and Red Hat Newlib
From: Melvin Anderson <Melvin.Anderson@xxxxxx>
Date: Fri, 13 Apr 2007 16:52:33 +0100
Cc: Derek Murray <Derek.Murray@xxxxxxxxxxxx>
Delivery-date: Tue, 17 Apr 2007 01:42:28 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: HP Labs, Bristol
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
We have been doing some experiments using Mini-OS together with a
GNU cross development toolchain to allow small applications to be
layered on top of Red Hat Newlib and Mini-OS.  The use of Red Hat
Newlib and Mini-OS was inspired by the work John Ramsdell did.  The
additional contribution offered here is a set of patches to add a new
target architecture to the GNU cross development toolchain, making
application development easier, although at the cost of making
building the toolchain more complex.

This patch contains:

-- patches to the GNU development chain in extras/devenv/patches:

   binutils-2.16.1.patch  gcc-4.1.0.patch  gmp-4.2.1.patch
   newlib-1.14.0.patch 

-- documentation explaining how to build the cross-development
   toolchain in extras/devenv/docs/build-cross-dev-env

-- patches to Mini-OS needed for the cross development chain and Red
   Hat Newlib port.

The changes to Mini-OS in detail are:

-- rename gettimeofday() to _xgettimeofday() because of clash with
   function of same name but different signature in Newlib.

   Files changed:

   extras/mini-os/arch/ia64/time.c
   extras/mini-os/arch/x86/time.c
   extras/mini-os/include/time.h
   extras/mini-os/sched.c

-- add very simple console input handling

   Files changed:

   extras/mini-os/console/console.c
   extras/mini-os/include/console.h

-- Correct domain_config to fix wrong kernel name

   Files changed:

   extras/mini-os/domain_config

-- Add simple implementation of _xrealloc() for Newlib

   Files changed:

   extras/mini-os/lib/xmalloc.c
   extras/mini-os/include/xmalloc.h

-- Modify kernel.c so the application is called main(), and comment
   out the rest of the test code.  This is needed so that autoconf
   etc. can compile and link small test programs without getting
   undefined symbols.  It also makes it easier to port small
   applications.

   Files changed:

   extras/mini-os/kernel.c

-- When using Mini-OS to run an application in a lightweight domain,
   if the application called by Mini-OS exits quickly, "xm create"
   fails.  Is this a race?  Has the Mini-OS domain exited before xm
   has time to see it?  Adding a delay loop seems to get round the
   problem: 

    for (i = 0; i < 1000000000; i++)
        ;

   Files changed:

   extras/mini-os/kernel.c

-- Add functions for sti and cli replacement -- thanks to John
   Ramsdell.

   File added:

   extras/mini-os/sticli.c

Thanks are due to HP for permission to publish this work, and to the
Open Trusted Computing project http://www.opentc.net/, of which this
work was a part.

Regards,

Melvin Anderson.


Attachment: mini-os-cross-devel.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>