Commit Graph
57 Commits
Author SHA1 Message Date
Keir Fraser 821be8a243 stubdom/newlib: Provide correct names for time.h timezone variables
Newlib unaccountably defines _daylight, _timezone and _tzname, rather
than daylight, timezone and tzname.  The latter are specified in
SuSv3.

So do a global search and replace as part of our newlib patching :-(.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
2010-05-28 09:26:25 +01:00
Keir Fraser eccb4696e8 Fix Makefile targets that generate several files at once
In a few places in the tree the Makefiles have constructs like this:
   one_file another_file:
       $(COMMAND_WHICH_GENERATES_BOTH_AT_ONCE)
This is wrong, because make will run _two copies_ of the same command
at once.  This generally causes races and hard-to-reproduce build
failures.

Notably, `make -j4' at the top level will build stubdom libxc twice
simultaneously!

In this patch we replace the occurrences of this construct with the
correct idiom:
   one_file: another_file
   another_file:
       $(COMMAND_WHICH_GENERATES_BOTH_AT_ONCE)

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-03-05 14:40:19 +00:00
Keir Fraser adfa96375a stubdom: Backport fix for SIZE_MAX from newlib 1.17.0
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2009-08-25 16:26:02 +01:00
Keir Fraser 7784c384a0 libxc: Include private Xen headers in stubdom libxc build
The headers libelf.h and elfstructs.h were removed from
xen/include/public in 19011:7df072566b8c.  But this broke the stubdom
build because parts of libxc depend on them.  This patch adds
$(XEN_ROOT)/xen/include/xen to the stubdom -I path.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2009-08-11 07:34:55 +01:00
Keir Fraser 172805bb4b stubdom: make -> $(MAKE)
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
2009-07-15 10:31:50 +01:00
Keir Fraser 64a78577fb stubdom: don't leak include dir on distclean
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
2009-07-15 09:11:40 +01:00
Keir Fraser 71d2c144a7 stubdom: Install and use stubdompath.sh
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
2009-07-13 16:50:53 +01:00
Keir Fraser 74be2ef5e1 stubdom: use XENFIRMWAREDIR
Attached patch installs ioemu-stubdom into XENFIRMWAREDIR
analogous to what we do with hvmloader.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
2009-06-25 13:14:37 +01:00
Keir Fraser a2b4af7d77 Get rid of hardcoded pathes for stubdom and hotplug scripts
- Have the buid system generate a file which exports the install paths
   for the hotplug scripts and stubdom / stubdom-dm
- Move file generation code from tools/python/Makefile into a gmake
   macro
  in Config.mk to avoid maintenance of three duplicates each with its
   own
  tweaks and bugs
- Export gmake variables into ioemu as shell variables
  for upcoming ioemu patches
- Do above as a gmake macro to avoid maintenance of several duplicates
- Adjust hotplug scripts to find the right xen binaries from the
  install directory
- Adjust stubdom-dm to use the install directories

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
2009-06-23 17:25:51 +01:00
Keir Fraser ff7d47a80a stubdom: Rebuild the ocaml runtime libraries with the options needed
if they are to be linked with object files created by ocamlc and the minios
kernel.

This is needed to build stubdoms written in ocaml.

Signed-off-by: Alex Zeffertt <alex.zeffertt@eu.citrix.com>
2009-05-19 14:17:56 +01:00
Keir Fraser 5bc663c759 ioemu: Export PREFIX variable to ioemu build environment.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
2009-05-19 01:27:36 +01:00
Keir Fraser 1ecaba192c minios: _chk_fail and _chk canaries for minios and newlib
Add __stack_chk_fail to mini-os and __sprintf_chk __fprintf_chk to
newlib, to cope with ocaml runtimes compiled with -fstack-protector.

From: "George S. Coker, II" <gscoker@alpha.ncsc.mil>
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
2009-03-31 11:36:11 +01:00
Keir Fraser ff7c1b9e4f build system cleanup - get rid of some hardcoded paths
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
2009-03-19 14:01:56 +00:00
Keir Fraser 4b031bb5b7 ioemu-stubdom: Use xen-setup-stubdom rather than configure
xen-setup runs the upstream configure script, and ends up
autodetecting various properties of the host and then trying to use
them in stubdom, which works badly.

In commit c609854fe18aab3216f28e1e5291b75970d398d5 in
qemu-xen-unstable we provide a new `xen-setup-stubdom' script, which
hardcodes the relevant answers.

With these two changes, stubdom should compile again.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2009-03-18 17:30:13 +00:00
Keir Fraser 60158182b4 Make stubdom compile on systems with libvde installed
We need to disable libvde in the stubdom qemu-xen configuration.
Thanks to Jun Koi for the report and testing.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2009-03-17 14:21:18 +00:00
Keir Fraser ceff4bb8a3 stubdom: Fix compilation after libelf header changes
Changeset 19011:7df072566b8c moved some of the libelf headers.
However, no changes were made to stubdom/Makefile.

stubdom/Makefile unfortunately contains embedded in it knowledge about
the header directory structures, and must therefore typically be
updated if new header directories are created.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2009-01-09 16:56:54 +00:00
Keir Fraser cbd07b72a3 Download external tarballs from xenbits.xensource.com
I have copied the tarballs that the xen-unstable build downloads to
xenbits.xensource.com (which also hosts our hg and git).  This patch
changes the download URLs to use that location.

That way the build will depend on only one external machine, under one
administration, rather than many.  Also it means that the build won't
break if these sites become permanently unavailable or are rearranged
and we don't run a risk of having to panic and beg if a file should go
missing.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2009-01-05 11:19:16 +00:00
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