diff mbox

libxl: fix compilation on ARM

Message ID 22274.18075.802554.440487@mariner.uk.xensource.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ian Jackson April 4, 2016, 10:48 a.m. UTC
Ian Jackson writes ("Re: [PATCH] libxl: fix compilation on ARM"):
> Following discussion on irc, here is a v2:

I forgot to update the commit message.

Ian.

From 4cbc583020642d6c333d07e297c52594bb88b542 Mon Sep 17 00:00:00 2001
From: Ian Jackson <ian.jackson@eu.citrix.com>
Date: Mon, 4 Apr 2016 11:41:19 +0100
Subject: [PATCH] libxl: ARM build: fix type of libxl__srm_callout_callback_restore_results

COLO introduced a few callbacks. The original implementation used
unsigned long for a type which in fact should be xen_pfn_t. That broke
libxl compilation on ARM, because xen_pfn_t is not a synonym for
unsigned long on ARM platform.

Fixing this requires modifying the perl script: specifically now we
need to include xenctrl.h before _libxl_save_msgs_*.h, rather than
afterwards, so that we can use xen_pfn_t there.

Reported-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 tools/libxl/libxl_create.c         |    4 ++--
 tools/libxl/libxl_save_msgs_gen.pl |    8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

Comments

Ian Jackson April 4, 2016, 10:51 a.m. UTC | #1
Wei Liu writes ("Re: [PATCH] libxl: fix compilation on ARM"):
> Acked-by: Wei Liu <wei.liu2@citrix.com>

Thanks, pushed.  Hopefully this will unblock the smoke test.

Ian.
Wei Liu April 4, 2016, 10:51 a.m. UTC | #2
On Mon, Apr 04, 2016 at 11:48:59AM +0100, Ian Jackson wrote:
> Ian Jackson writes ("Re: [PATCH] libxl: fix compilation on ARM"):
> > Following discussion on irc, here is a v2:
> 
> I forgot to update the commit message.
> 
> Ian.
> 
> From 4cbc583020642d6c333d07e297c52594bb88b542 Mon Sep 17 00:00:00 2001
> From: Ian Jackson <ian.jackson@eu.citrix.com>
> Date: Mon, 4 Apr 2016 11:41:19 +0100
> Subject: [PATCH] libxl: ARM build: fix type of libxl__srm_callout_callback_restore_results
> 
> COLO introduced a few callbacks. The original implementation used
> unsigned long for a type which in fact should be xen_pfn_t. That broke
> libxl compilation on ARM, because xen_pfn_t is not a synonym for
> unsigned long on ARM platform.
> 
> Fixing this requires modifying the perl script: specifically now we
> need to include xenctrl.h before _libxl_save_msgs_*.h, rather than
> afterwards, so that we can use xen_pfn_t there.
> 
> Reported-by: Olaf Hering <olaf@aepfle.de>
> Signed-off-by: Wei Liu <wei.liu2@citrix.com>
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>

Acked-by: Wei Liu <wei.liu2@citrix.com>

> ---
>  tools/libxl/libxl_create.c         |    4 ++--
>  tools/libxl/libxl_save_msgs_gen.pl |    8 ++++----
>  2 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
> index 6882ff8..4b02de9 100644
> --- a/tools/libxl/libxl_create.c
> +++ b/tools/libxl/libxl_create.c
> @@ -1109,8 +1109,8 @@ static void domcreate_bootloader_done(libxl__egc *egc,
>      domcreate_stream_done(egc, &dcs->srs, rc);
>  }
>  
> -void libxl__srm_callout_callback_restore_results(unsigned long store_mfn,
> -          unsigned long console_mfn, void *user)
> +void libxl__srm_callout_callback_restore_results(xen_pfn_t store_mfn,
> +          xen_pfn_t console_mfn, void *user)
>  {
>      libxl__save_helper_state *shs = user;
>      libxl__domain_create_state *dcs = shs->caller_state;
> diff --git a/tools/libxl/libxl_save_msgs_gen.pl b/tools/libxl/libxl_save_msgs_gen.pl
> index c2243f2..3ae7373 100755
> --- a/tools/libxl/libxl_save_msgs_gen.pl
> +++ b/tools/libxl/libxl_save_msgs_gen.pl
> @@ -29,8 +29,8 @@ our @msgs = (
>      [  6, 'srcxA',  "wait_checkpoint", [] ],
>      [  7, 'scxA',   "switch_qemu_logdirty",  [qw(int domid
>                                                unsigned enable)] ],
> -    [  8, 'rcx',    "restore_results",       ['unsigned long', 'store_gfn',
> -                                              'unsigned long', 'console_gfn'] ],
> +    [  8, 'rcx',    "restore_results",       ['xen_pfn_t', 'store_gfn',
> +                                              'xen_pfn_t', 'console_gfn'] ],
>      [  9, 'srW',    "complete",              [qw(int retval
>                                                   int errnoval)] ],
>  );
> @@ -70,9 +70,9 @@ END_BOTH
>  
>  END_CALLOUT
>  
> -#include "_libxl_save_msgs_${ah}.h"
>  #include <xenctrl.h>
>  #include <xenguest.h>
> +#include "_libxl_save_msgs_${ah}.h"
>  
>  END_HELPER
>  }
> @@ -141,7 +141,7 @@ static void bytes_put(unsigned char *const buf, int *len,
>  
>  END
>  
> -foreach my $simpletype (qw(int uint16_t uint32_t unsigned), 'unsigned long') {
> +foreach my $simpletype (qw(int uint16_t uint32_t unsigned), 'unsigned long', 'xen_pfn_t') {
>      my $typeid = typeid($simpletype);
>      $out_body{'callout'} .= <<END;
>  static int ${typeid}_get(const unsigned char **msg,
> -- 
> 1.7.10.4
>
diff mbox

Patch

diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
index 6882ff8..4b02de9 100644
--- a/tools/libxl/libxl_create.c
+++ b/tools/libxl/libxl_create.c
@@ -1109,8 +1109,8 @@  static void domcreate_bootloader_done(libxl__egc *egc,
     domcreate_stream_done(egc, &dcs->srs, rc);
 }
 
-void libxl__srm_callout_callback_restore_results(unsigned long store_mfn,
-          unsigned long console_mfn, void *user)
+void libxl__srm_callout_callback_restore_results(xen_pfn_t store_mfn,
+          xen_pfn_t console_mfn, void *user)
 {
     libxl__save_helper_state *shs = user;
     libxl__domain_create_state *dcs = shs->caller_state;
diff --git a/tools/libxl/libxl_save_msgs_gen.pl b/tools/libxl/libxl_save_msgs_gen.pl
index c2243f2..3ae7373 100755
--- a/tools/libxl/libxl_save_msgs_gen.pl
+++ b/tools/libxl/libxl_save_msgs_gen.pl
@@ -29,8 +29,8 @@  our @msgs = (
     [  6, 'srcxA',  "wait_checkpoint", [] ],
     [  7, 'scxA',   "switch_qemu_logdirty",  [qw(int domid
                                               unsigned enable)] ],
-    [  8, 'rcx',    "restore_results",       ['unsigned long', 'store_gfn',
-                                              'unsigned long', 'console_gfn'] ],
+    [  8, 'rcx',    "restore_results",       ['xen_pfn_t', 'store_gfn',
+                                              'xen_pfn_t', 'console_gfn'] ],
     [  9, 'srW',    "complete",              [qw(int retval
                                                  int errnoval)] ],
 );
@@ -70,9 +70,9 @@  END_BOTH
 
 END_CALLOUT
 
-#include "_libxl_save_msgs_${ah}.h"
 #include <xenctrl.h>
 #include <xenguest.h>
+#include "_libxl_save_msgs_${ah}.h"
 
 END_HELPER
 }
@@ -141,7 +141,7 @@  static void bytes_put(unsigned char *const buf, int *len,
 
 END
 
-foreach my $simpletype (qw(int uint16_t uint32_t unsigned), 'unsigned long') {
+foreach my $simpletype (qw(int uint16_t uint32_t unsigned), 'unsigned long', 'xen_pfn_t') {
     my $typeid = typeid($simpletype);
     $out_body{'callout'} .= <<END;
 static int ${typeid}_get(const unsigned char **msg,