Commit Graph
40 Commits
Author SHA1 Message Date
Keir Fraser 19dc3860dc Remove internal tools/ioemu tree.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2008-09-18 10:32:40 +01:00
Keir Fraser 59bbc091e9 stubdom/ioemu link farm creation fixes
Replace the stubdom/ioemu link farm creation in stubdom/Makefile,
with code which arranges that:
 * No symlinks are made for output files - in particular, any
   symlinks for .d files would be written through by the compiler
   and cause damage to the original tree and other strange
   behaviours
 * All subdirectories are made as local subdirectories rather than
   links
 * Any interrupted or half-completed creation of the link farm
   leaves the directory in a state where the link farming will be
   restarted
 * We use make's inherent ability to test for the existence of files
   rather than using [ -f ... ] at the start of the rule's commands
 * The list of files to be excluded from the link farm can be
   easily updated
etc.

This should fix some problems particularly with parallel builds,
or by-hand builds where directories are entered in other than the
usual order.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2008-09-16 12:44:26 +01:00
Keir Fraser 30c988711c $(XEN_ROOT) absolutification fixes for ioemu-remote (incl stubdom)
* Move code for generating an absolute version of XEN_ROOT
   into a common make variable set in Config.mk
 * Use this common code when invoking make -C ioemu-dir clean
   from tools/, which avoids a problem where `make clean' fails
   because qemu's (ioemu-remote's) build system wants to run
   `make clean' in `tests' but XEN_ROOT is a confection involving
   ../'s.
 * Use this common code in stubdom/Makefile, instead of $(abspath...)
   as the latter is a relatively new feature in GNU make and is not
   available in all the places that we want to be able to build
   (cf c/s 17997:3f23e01d31985899dbd1660b166f229f1ee74292)

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2008-09-12 13:15:36 +01:00
Keir Fraser fbf6c4db1e stubdom: compile stubdom with qemu-remote
Remove the CONFIG_QEMU override; fixing lwip isystem path.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2008-09-12 10:41:51 +01:00
Keir Fraser f1a381df9c cross-install: Only apply in tools directory, and automatically wrap $INSTALL.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2008-08-30 08:36:02 +01:00
Keir Fraser c1c6c2ac90 stubdom: Absolute path for XEN_ROOT.
It may be used in subdirectories indirectly (e.g., as path component
of $(INSTALL)).

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2008-08-30 08:11:09 +01:00
Keir Fraser f78e4ead53 stubdom: add LANG=C for 'gcc -print-search-dirs'
Prevents unwanted localisation of pretty-printing.

Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
2008-08-28 09:55:40 +01:00
Keir Fraser 1f1f49120f ioemu-stubdom: drop --disable-gfx-check option, already added by qemu-xen tree
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-08-27 09:48:09 +01:00
Keir Fraser 006e7188d4 pv-grub: On x86_64, also build an x86_32 pv-grub
This requires suffixing obj directories and having grub compiled
outside sources.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-08-14 13:46:48 +01:00
Keir Fraser 66e56e754b install more documentation to /usr/share/doc/xen and /etc/xen
Also resync xmexample3 with xmexample1 and 2.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-08-06 09:34:55 +01:00
Keir Fraser 1d0103c4da stubdom: add *_URL variables to permit to use e.g. local mirrors.
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-08-06 09:33:10 +01:00
Keir Fraser 86657fd99a stubdom: install stubdom kernels as data
since they do not need to be directly executed

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-08-04 18:11:12 +01:00
Keir Fraser 5bab523029 stubdom: Fix the Makefile to avoid brace expansion
While building stubdom, I saw an error.

  install: cannot stat `lib/{config,header,pci,types}.h': No such file
  or directory

It seems brace expansion is not available in some environments, so we
had better avoid using it.

Signed-off-by: Yosuke Iwamatsu <y-iwamatsu@ab.jp.nec.com>
2008-08-04 11:15:24 +01:00
Keir Fraser 269d43f9a2 Fix stubdom makefile mistake.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2008-08-01 15:38:07 +01:00
Keir Fraser 870fd5c7c9 stubdom: fix clean target after distclean
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-08-01 15:25:02 +01:00
Keir Fraser 438f8cbed5 stubdom: fix make clean ; make
make should not have to regenerate the libxc and ioemu directories
since that is part of the mk-headers target.  Use the subdirectory
clean targets instead to clean just the object files.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-31 09:49:28 +01:00
Keir Fraser ee7be8aa51 stubdom: avoid re-making mk-headers and thus newlib etc.
Using a stamp file for mk-headers permits to avoid to re-run newlib
configuration etc.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-25 10:06:53 +01:00
Keir Fraser c4241bc454 stubdom: make sure to use old tree for now
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-24 17:36:27 +01:00
Keir Fraser 46e20ce8c7 stubdom: fix build dependencies
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-18 15:03:55 +01:00
Keir Fraser 9c25e4b605 stubdom: fix build dependency
newlib now depends on mini-os header links

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-18 14:23:41 +01:00
Keir Fraser 29937e92a0 stubdom: use lwip 1.3.0 release + patch instead of checking out from cvs
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-17 15:37:09 +01:00
Keir Fraser 98788b0918 PV-GRUB: use the 0.97 snapshot + patch instead of checking out from cvs
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-17 15:33:15 +01:00
Keir Fraser e7329de453 stubdom: do not use realpath, new in make 3.81
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-11 12:45:06 +01:00
Keir Fraser 8f96998338 stubdom: fixes to compile with qemu-xen
This adds fixes to the stub domain build into compiling Ian Jackson's
qemu-xen.  The most notable change is that mini-os headers now
#include each other through a mini-os/ prefix, so that we can turn all
-I into -isystem and still be sure that we include Mini-OS headers
(and not qemu's console.h or blktaplib's list.h for instance...).

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-10 14:15:46 +01:00
Keir Fraser aa6eb83c93 stubdom: make compilation independent of tools/ by building our own copy of the includes
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-09 11:51:46 +01:00
Keir Fraser 00a7a3bca1 stubdom: use a newlib snapshot instead of the slow cvs checkout.
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-08 17:25:04 +01:00
Keir Fraser 4475f160c7 stubdom: do not build tapdisk as it it not supposed to build and we don't need it
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-08 17:15:23 +01:00
Keir Fraser e67fec4edf stubdom: fix parallel build
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-05 14:00:03 +01:00
Keir Fraser ce5c899f22 stubdom: use host's gcc
This makes stubdom use the host's gcc instead of downloading/compiling
binutils+gcc.  That requires a bunch of changes and even uncovered a
few bugs, but saves a lot of time.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-04 17:47:11 +01:00
Keir Fraser de4e084064 stubdom: PCI passthrough support via PV-PCI
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-07-02 13:54:20 +01:00
Keir Fraser a2c7db64f5 Add PV-GRUB
This fetches GRUB1 sources, applies the {graphical, print function,
save default, and ext3_256byte} patches from debian, and applies a
patch to make it work on x86_64 and port it to Mini-OS.  By using
libxc, PV-GRUB can then "kexec" the loaded kernel from inside the
domain itself, hence permitting to avoid the security-concerned
pygrub.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-06-18 09:36:47 +01:00
Keir Fraser dbd56b5c30 minios,stubdom: Add OBJ_DIR parameter to compile outside sources,
which permits to easily compile mini-os in various flavors. Also clean
some parts of stubdom build.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-06-17 09:36:25 +01:00
Keir Fraser bab287fed3 stubdom: prevent newlib from emiting cli/sti in longjmp
Also fix build dependencies and cleanup.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-06-09 09:42:14 +01:00
Keir Fraser 91c38bdedc stubdom: upgrade lwip to newer upstream version since it provides bugfixes
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-06-05 13:03:47 +01:00
Keir Fraser f9b4231a67 stubdom: make the build more generic by moving as many stubdom parts
into stubdom/ as possible.  That also permits to build all of
ioemu, c and caml stubdoms at the same time.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-05-28 09:30:48 +01:00
Keir Fraser 98c2b2bd1e stubdom: add C example target
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-03-19 16:21:39 +00:00
Keir Fraser afb567f7aa stubdom: missing two renames (avoids always re-compiling newlib)
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-02-12 16:59:08 +00:00
Keir Fraser 6d125ecd23 stubdom: Rename stubdom/*.build into stubdom/*-build, newlib into
newlib-cvs, lwip into lwip-cvs.  Fix .hgignore to ignore only them and
not the patches.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-02-12 16:46:23 +00:00
Keir Fraser 6e30359431 Make stubdom/Makefile override XEN_OS to MiniOS, and add
config/MiniOS.mk. Add PTHREAD_LIBS to configs (usually holding
-lpthread).

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-02-12 15:03:07 +00:00
Keir Fraser 0243b256d6 Add stubdomain support. See stubdom/README for usage details.
- Move PAGE_SIZE and STACK_SIZE into __PAGE_SIZE and __STACK_SIZE in
  arch_limits.h so as to permit getting them from there without
  pulling all the internal Mini-OS defines.
- Setup a xen-elf cross-compilation environment in stubdom/cross-root
- Add a POSIX layer on top of Mini-OS by linking against the newlib C
  library and lwIP, and implementing the Unixish part in mini-os/lib/sys.c
- Cross-compile zlib and libpci too.
- Add an xs.h-compatible layer on top of Mini-OS' xenbus.
- Cross-compile libxc with an additional xc_minios.c and a few things
  disabled.
- Cross-compile ioemu with an additional block-vbd, but without sound,
  tpm and other details.  A few hacks are needed:
  - Align ide and scsi buffers at least on sector size to permit
  direct transmission to the block backend. While we are at it, just
  page-align it to possibly save a segment. Also, limit the scsi
  buffer size because of limitations of the block paravirtualization
  protocol.
  - Allocate big tables dynamically rather that letting them go to
  bss: when Mini-OS gets installed in memory, bss is not lazily
  allocated, and doing so during Mini-OS is unnecessarily trick while
  we can simply use malloc.
- Had to change the Mini-OS compilation somehow, so as to export
  Mini-OS compilation flags to the Makefiles of libxc and ioemu.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
2008-02-12 14:35:39 +00:00