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

[Xen-devel] Re: c/s 23253:a3db6b91f32d causes build failure with gcc 4.4

To: George Dunlap <George.Dunlap@xxxxxxxxxxxxx>
Subject: [Xen-devel] Re: c/s 23253:a3db6b91f32d causes build failure with gcc 4.4.3-4ubuntu5
From: Ian Campbell <Ian.Campbell@xxxxxxxxxxxxx>
Date: Fri, 6 May 2011 13:33:38 +0100
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Fri, 06 May 2011 05:35:24 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <BANLkTikTSv+Ab--C5AQi_ub1SFaG2HfBEg@xxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: Citrix Systems, Inc.
References: <BANLkTikTSv+Ab--C5AQi_ub1SFaG2HfBEg@xxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Fri, 2011-05-06 at 12:14 +0100, George Dunlap wrote:

> The line in question is:
>     libxl__xs_write(gc, XBT_NULL, libxl__sprintf(gc, "%s/bios", path),
>                     libxl__domain_bios(gc, info));
> 
> Looks like libxl__xs_write() is expecting the 4th argument to be a
> format string...?

Yes, and hence it needs to be a const char * not a char *, so we should
change both libxl__domain_bios and libxl__xs_write I think.

Does this help? It works for me, but my compiler doesn't appear to
complain in this way...

Ian.

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

# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1304685175 -3600
# Node ID 4e5487962178e7affd7d7d0341a90dde8c60915e
# Parent  faca1c90188e536eb0f02992c766d06759be376f
libxl: libxl__xs_write format string should be const.

George Dunlap reports that gcc 4.4.3 complains:
        libxl_dm.c: In function libxl__create_device_mode:
        libxl_dm.c:776: error: format not a string literal and no format 
arguments
And indeed the format argument here is a char * from libxl__domain_bios().

Make the argument to libxl__xs_write a const char * and change
libxl__domain_bios to return a const char too.

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

diff -r faca1c90188e -r 4e5487962178 tools/libxl/libxl_dm.c
--- a/tools/libxl/libxl_dm.c    Fri May 06 13:14:24 2011 +0100
+++ b/tools/libxl/libxl_dm.c    Fri May 06 13:32:55 2011 +0100
@@ -68,12 +68,12 @@ const char *libxl__domain_device_model(l
     return dm;
 }
 
-static char *libxl__domain_bios(libxl__gc *gc,
+static const char *libxl__domain_bios(libxl__gc *gc,
                                 libxl_device_model_info *info)
 {
     switch (info->device_model_version) {
-    case 1: return libxl__strdup(gc, "rombios");
-    case 2: return libxl__strdup(gc, "seabios");
+    case 1: return "rombios";
+    case 2: return "seabios";
     default:return NULL;
     }
 }
diff -r faca1c90188e -r 4e5487962178 tools/libxl/libxl_internal.h
--- a/tools/libxl/libxl_internal.h      Fri May 06 13:14:24 2011 +0100
+++ b/tools/libxl/libxl_internal.h      Fri May 06 13:32:55 2011 +0100
@@ -153,7 +153,7 @@ _hidden char **libxl__xs_kvs_of_flexarra
 _hidden int libxl__xs_writev(libxl__gc *gc, xs_transaction_t t,
                     char *dir, char **kvs);
 _hidden int libxl__xs_write(libxl__gc *gc, xs_transaction_t t,
-                   char *path, char *fmt, ...) PRINTF_ATTRIBUTE(4, 5);
+                   char *path, const char *fmt, ...) PRINTF_ATTRIBUTE(4, 5);
    /* Each fn returns 0 on success.
     * On error: returns -1, sets errno (no logging) */
 
diff -r faca1c90188e -r 4e5487962178 tools/libxl/libxl_xshelp.c
--- a/tools/libxl/libxl_xshelp.c        Fri May 06 13:14:24 2011 +0100
+++ b/tools/libxl/libxl_xshelp.c        Fri May 06 13:32:55 2011 +0100
@@ -69,7 +69,7 @@ int libxl__xs_writev(libxl__gc *gc, xs_t
 }
 
 int libxl__xs_write(libxl__gc *gc, xs_transaction_t t,
-                   char *path, char *fmt, ...)
+                   char *path, const char *fmt, ...)
 {
     libxl_ctx *ctx = libxl__gc_owner(gc);
     char *s;



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