From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Zeffertt Subject: [PATCH 4/5] integrate xen-ocaml-tools.hg with xen-unstable.hg - ocaml crosscompile Date: Fri, 24 Apr 2009 13:03:17 +0100 Message-ID: <49F1AA85.2040900@eu.citrix.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------040409090102050109070709" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------040409090102050109070709 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit --------------040409090102050109070709 Content-Type: text/plain; name="ocaml-crosscompile" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="ocaml-crosscompile" 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 diff -r b911671963e3 .hgignore --- a/.hgignore Fri Apr 24 12:15:45 2009 +0100 +++ b/.hgignore Fri Apr 24 12:18:48 2009 +0100 @@ -99,6 +99,7 @@ ^stubdom/pciutils-.*$ ^stubdom/zlib-.*$ ^stubdom/grub-.*$ +^stubdom/ocaml-.*$ ^stubdom/lwip/ ^stubdom/ioemu/ ^tools/.*/build/lib.*/.*\.py$ diff -r b911671963e3 stubdom/Makefile --- a/stubdom/Makefile Fri Apr 24 12:15:45 2009 +0100 +++ b/stubdom/Makefile Fri Apr 24 12:18:48 2009 +0100 @@ -26,6 +26,10 @@ #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 @@ -164,6 +168,37 @@ 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 $@ + ####### # Links ####### @@ -254,7 +289,7 @@ .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 @@ -300,7 +335,6 @@ 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" @@ -372,6 +406,7 @@ 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 @@ -388,6 +423,7 @@ 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 b911671963e3 stubdom/caml/Makefile --- a/stubdom/caml/Makefile Fri Apr 24 12:15:45 2009 +0100 +++ b/stubdom/caml/Makefile Fri Apr 24 12:18:48 2009 +0100 @@ -2,11 +2,10 @@ 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 %.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 b911671963e3 stubdom/ocaml.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stubdom/ocaml.patch Fri Apr 24 12:18:48 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) \ --------------040409090102050109070709 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------040409090102050109070709--