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

Re: [Xen-devel] tools: ocaml build error

On Thu, 2011-05-12 at 12:28 +0100, Christoph Egger wrote:
> With attached xen_tools_ocaml.diff  a xl.ml file is generated w/o
> having sed complaining.

Thanks.

> xl.mli is not generated at all.

I think that's a different issue to do with creating the file when the
sed actually failed. Fixed by creating a temporary and moving it into
place...

> I attached xl.ml. Can you check if this is the expected result, please?

Looks correct to me.

8<---------------------------

# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1305201511 -3600
# Node ID 50728eaf50735b58d83484845312fe5467f6420c
# Parent  1e7ebf81f49d43b1a972ff31a284b80ac68f6f1b
tools: ocaml: remove non-posix-ism from sed script.

Christoph Egger reported than on NetBSD the build fails with

        Parsing tools/ocaml/libs/xl/../../../../tools/libxl/libxl.idl
        sed: 1: "1i(*\
          * AUTO-GENERATED ...": command i expects \ followed by test
        gmake[7]: Leaving directory `tools/ocaml/libs/xl'

The following was tested by Christoph on NetBSD and also with GNU-sed
with and without the --posix flag.

In addition when sed fails will still create the output file, which confuses
subsequent make invocations. Generate to a temporary file and move into place
only on success.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

diff -r 1e7ebf81f49d -r 50728eaf5073 tools/ocaml/libs/xl/Makefile
--- a/tools/ocaml/libs/xl/Makefile      Thu May 12 11:39:55 2011 +0100
+++ b/tools/ocaml/libs/xl/Makefile      Thu May 12 12:58:31 2011 +0100
@@ -17,29 +17,33 @@ xl_C_OBJS = xl_stubs
 
 OCAML_LIBRARY = xl
 
-GENERATED_FILES += xl.ml xl.mli
+GENERATED_FILES += xl.ml xl.ml.tmp xl.mli xl.mli.tmp
 GENERATED_FILES += _libxl_types.ml.in _libxl_types.mli.in
 GENERATED_FILES += _libxl_types.inc
 
 all: $(INTF) $(LIBS)
 
 xl.ml: xl.ml.in _libxl_types.ml.in
-       $(Q)sed -e '1i(*\
+       $(Q)sed -e '1i\
+(*\
  * AUTO-GENERATED FILE DO NOT EDIT\
  * Generated from xl.ml.in and _libxl_types.ml.in\
  *)\
 ' \
            -e '/^(\* @@LIBXL_TYPES@@ \*)$$/r_libxl_types.ml.in' \
-         < xl.ml.in > xl.ml
+         < xl.ml.in > xl.ml.tmp
+       $(Q)mv xl.ml.tmp xl.ml
 
 xl.mli: xl.mli.in _libxl_types.mli.in
-       $(Q)sed -e '1i(*\
+       $(Q)sed -e '1i\
+(*\
  * AUTO-GENERATED FILE DO NOT EDIT\
  * Generated from xl.mli.in and _libxl_types.mli.in\
  *)\
 ' \
            -e '/^(\* @@LIBXL_TYPES@@ \*)$$/r_libxl_types.mli.in' \
-         < xl.mli.in > xl.mli
+         < xl.mli.in > xl.mli.tmp
+       $(Q)mv xl.mli.tmp xl.mli
 
 _libxl_types.ml.in _libxl_types.mli.in _libxl_types.inc: genwrap.py 
$(XEN_ROOT)/tools/libxl/libxl.idl \
                 $(XEN_ROOT)/tools/libxl/libxltypes.py



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel