[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] stubdom: Rebuild the ocaml runtime libraries with the options needed
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1242739076 -3600 # Node ID e0221531d0e583d74d27a56155ffd8f4cb46f32c # Parent b4de3a393f21a5ae29ac3283d6aa5e5c981551c8 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@xxxxxxxxxxxxx> --- .hgignore | 1 + stubdom/Makefile | 40 ++++++++++++++++++++++++++++++++++++++-- stubdom/caml/Makefile | 9 ++++----- stubdom/ocaml.patch | 16 ++++++++++++++++ 4 files changed, 59 insertions(+), 7 deletions(-) diff -r b4de3a393f21 -r e0221531d0e5 .hgignore --- a/.hgignore Tue May 19 14:15:43 2009 +0100 +++ b/.hgignore Tue May 19 14:17:56 2009 +0100 @@ -99,6 +99,7 @@ ^stubdom/pciutils-.*$ ^stubdom/zlib-.*$ ^stubdom/grub-.*$ +^stubdom/ocaml-.*$ ^stubdom/lwip/ ^stubdom/ioemu/ ^tools/.*/build/lib.*/.*\.py$ diff -r b4de3a393f21 -r e0221531d0e5 stubdom/Makefile --- a/stubdom/Makefile Tue May 19 14:15:43 2009 +0100 +++ b/stubdom/Makefile Tue May 19 14:17:56 2009 +0100 @@ -26,6 +26,10 @@ LWIP_VERSION=1.3.0 #GRUB_URL?=http://alpha.gnu.org/gnu/grub GRUB_URL?=$(XEN_EXTFILES_URL) GRUB_VERSION=0.97 + +#OCAML_URL?=$(XEN_EXTFILES_URL) +OCAML_URL?=http://caml.inria.fr/pub/distrib/ocaml-3.11 +OCAML_VERSION=3.11.0 WGET=wget -c @@ -162,6 +166,37 @@ lwip-$(XEN_TARGET_ARCH): lwip-$(LWIP_VER tar xzf $< mv lwip $@ patch -d $@ -p0 < lwip.patch-cvs + touch $@ + +############# +# Cross-ocaml +############# + +CAMLLIB = $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib/ocaml +OCAML_STAMPFILE=$(CAMLLIB)/.dirstamp + +ocaml-$(OCAML_VERSION).tar.gz: + $(WGET) $(OCAML_URL)/$@ + +ocaml-$(XEN_TARGET_ARCH)/.dirstamp: ocaml-$(OCAML_VERSION).tar.gz ocaml.patch + tar xzf $< + cd ocaml-$(OCAML_VERSION) && patch -p0 < ../ocaml.patch + rm -rf ocaml-$(XEN_TARGET_ARCH) + mv ocaml-$(OCAML_VERSION) ocaml-$(XEN_TARGET_ARCH) + touch $@ + +MINIOS_HASNOT=IPV6 INET_ATON + +.PHONY: cross-ocaml +cross-ocaml: $(OCAML_STAMPFILE) +$(OCAML_STAMPFILE): ocaml-$(XEN_TARGET_ARCH)/.dirstamp + cd ocaml-$(XEN_TARGET_ARCH) && ./configure -prefix $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf \ + -no-pthread -no-shared-libs -no-tk -no-curses \ + -cc "$(CC) -U_FORTIFY_SOURCE -fno-stack-protector" + $(foreach i,$(MINIOS_HASNOT),sed -i 's,^\(#define HAS_$(i)\),//\1,' ocaml-$(XEN_TARGET_ARCH)/config/s.h ; ) + $(MAKE) -C ocaml-$(XEN_TARGET_ARCH) world + $(MAKE) -C ocaml-$(XEN_TARGET_ARCH) opt + $(MAKE) -C ocaml-$(XEN_TARGET_ARCH) install touch $@ ####### @@ -251,7 +286,7 @@ ioemu: cross-zlib cross-libpci libxc .PHONY: caml caml: $(CROSS_ROOT) - CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C $@ LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) + CPPFLAGS="$(TARGET_CPPFLAGS)" CFLAGS="$(TARGET_CFLAGS)" $(MAKE) -C $@ LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) OCAMLC_CROSS_PREFIX=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/bin/ ### # C @@ -289,7 +324,6 @@ ioemu-stubdom: mini-os-$(XEN_TARGET_ARCH ioemu-stubdom: mini-os-$(XEN_TARGET_ARCH)-ioemu lwip-$(XEN_TARGET_ARCH) libxc ioemu DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="-DCONFIG_QEMU $(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" $(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(APP_OBJS)" -CAMLLIB = $(shell ocamlc -where) .PHONY: caml-stubdom caml-stubdom: mini-os-$(XEN_TARGET_ARCH)-caml lwip-$(XEN_TARGET_ARCH) libxc caml DEF_CPPFLAGS="$(TARGET_CPPFLAGS)" DEF_CFLAGS="-DCONFIG_CAML $(TARGET_CFLAGS)" DEF_LDFLAGS="$(TARGET_LDFLAGS)" $(MAKE) -C $(MINI_OS) OBJ_DIR=$(CURDIR)/$< LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) APP_OBJS="$(CURDIR)/caml/main-caml.o $(CURDIR)/caml/caml.o $(CAMLLIB)/libasmrun.a" @@ -351,6 +385,7 @@ crossclean: clean rm -fr zlib-$(XEN_TARGET_ARCH) pciutils-$(XEN_TARGET_ARCH) rm -fr libxc-$(XEN_TARGET_ARCH) ioemu rm -f mk-headers-$(XEN_TARGET_ARCH) + rm -fr ocaml-$(XEN_TARGET_ARCH) # clean patched sources .PHONY: patchclean @@ -367,6 +402,7 @@ downloadclean: patchclean rm -f pciutils-$(LIBPCI_VERSION).tar.bz2 rm -f grub-$(GRUB_VERSION).tar.gz rm -f lwip-$(LWIP_VERSION).tar.gz + rm -f ocaml-$(OCAML_VERSION).tar.gz .PHONY: distclean distclean: downloadclean diff -r b4de3a393f21 -r e0221531d0e5 stubdom/caml/Makefile --- a/stubdom/caml/Makefile Tue May 19 14:15:43 2009 +0100 +++ b/stubdom/caml/Makefile Tue May 19 14:17:56 2009 +0100 @@ -2,11 +2,10 @@ XEN_ROOT = ../.. include $(XEN_ROOT)/Config.mk -CAMLLIB = $(shell ocamlc -where) +CAMLLIB = $(shell $(OCAMLC_CROSS_PREFIX)ocamlc -where) DEF_CPPFLAGS += -I$(CAMLLIB) -OCAMLFIND=ocamlfind -OCAMLOPT=ocamlopt +OCAMLOPT=$(OCAMLC_CROSS_PREFIX)ocamlopt OBJS := hello.cmx LIBS := @@ -14,10 +13,10 @@ all: main-caml.o caml.o all: main-caml.o caml.o %.cmx: %.ml - $(OCAMLFIND) $(OCAMLOPT) -c $< -o $@ + $(OCAMLOPT) -c $< -o $@ caml.o: $(OBJS) - $(OCAMLFIND) $(OCAMLOPT) $(LIBS) $^ -output-obj -o $@ + $(OCAMLOPT) $(LIBS) $^ -output-obj -o $@ clean: rm -f *.a *.o *.cmx *.cmi diff -r b4de3a393f21 -r e0221531d0e5 stubdom/ocaml.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stubdom/ocaml.patch Tue May 19 14:17:56 2009 +0100 @@ -0,0 +1,19 @@ +--- byterun/Makefile.orig 2009-04-07 12:14:02.000000000 +0100 ++++ byterun/Makefile 2009-04-07 12:13:50.000000000 +0100 +@@ -22,14 +22,14 @@ + DOBJS=$(OBJS:.o=.d.o) instrtrace.d.o + PICOBJS=$(OBJS:.o=.pic.o) + +-#ifeq ($(SUPPORTS_SHARED_LIBRARIES),true) ++ifeq ($(SUPPORTS_SHARED_LIBRARIES),true) + + all:: libcamlrun_shared.so + + install:: + cp libcamlrun_shared.so $(LIBDIR)/libcamlrun_shared.so + +-#endif ++endif + + ocamlrun$(EXE): libcamlrun.a prims.o + $(MKEXE) $(BYTECCLINKOPTS) -o ocamlrun$(EXE) \ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |