From: Don Slutz Date: Fri, 7 Feb 2014 21:51:51 +0000 (-0500) Subject: xenlight_stubs.c: Allow it to build with ocaml 3.09.3 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=3413b6a923839446c51a7612b19c5dc33b8aa6bc;p=people%2Froyger%2Fxen.git xenlight_stubs.c: Allow it to build with ocaml 3.09.3 This code was copied from: http://docs.camlcity.org/docs/godisrc/oasis-ocaml-fd-1.1.1.tar.gz/ocaml-fd-1.1.1/lib/fd_stubs.c Signed-off-by: Don Slutz Acked-by: David Scott Acked-by: Ian Campbell --- diff --git a/tools/ocaml/libs/xl/xenlight_stubs.c b/tools/ocaml/libs/xl/xenlight_stubs.c index 23f253a276..8e825aec9e 100644 --- a/tools/ocaml/libs/xl/xenlight_stubs.c +++ b/tools/ocaml/libs/xl/xenlight_stubs.c @@ -35,6 +35,19 @@ #include "caml_xentoollog.h" +/* + * Starting with ocaml-3.09.3, CAMLreturn can only be used for ``value'' + * types. CAMLreturnT was only added in 3.09.4, so we define our own + * version here if needed. + */ +#ifndef CAMLreturnT +#define CAMLreturnT(type, result) do { \ + type caml__temp_result = (result); \ + caml_local_roots = caml__frame; \ + return (caml__temp_result); \ +} while (0) +#endif + /* The following is equal to the CAMLreturn macro, but without the return */ #define CAMLdone do{ \ caml_local_roots = caml__frame; \