[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] libxen compilation fixes



Hi,
>...
What would be nice would be to make libxen not throw away provided CFLAGS
and, if it's not too far gone down the declaration-after-statement route,
fix it to put its declarations at the top of blocks like a good C program.
If that's a big job though it's probably not worth the bother.
Attached the patch to fix this. I left out the changes to the Makefile, as Keir objected because of the missing gcc-3.3 compatibility (which I can confirm). When I inserted -Wdeclaration-after-statement into my Makefile, everything compiled smoothly without any warnings. I included Ian's prototype fix, too.

Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx>

Regards,
Andre.

--
Andre Przywara
AMD-Operating System Research Center (OSRC), Dresden, Germany
Tel: +49 351 277-84917
----to satisfy European Law for business letters:
AMD Saxony Limited Liability Company & Co. KG,
Wilschdorfer Landstr. 101, 01109 Dresden, Germany
Register Court Dresden: HRA 4896, General Partner authorized
to represent: AMD Saxony LLC (Wilmington, Delaware, US)
General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy
diff -r d13c4d2836a8 tools/libxen/include/xen/api/xen_common.h
--- a/tools/libxen/include/xen/api/xen_common.h Tue Jan 15 14:39:23 2008 +0000
+++ b/tools/libxen/include/xen/api/xen_common.h Wed Jan 16 13:38:04 2008 +0100
@@ -107,7 +107,7 @@ extern void xen_version_free(xen_version
  * minor, and extraversion of the Xen release with which it was released,
  * plus the library's own version as the patch.
  */
-extern xen_version *xen_get_client_side_version();
+extern xen_version *xen_get_client_side_version(void);
 
 
 extern bool
diff -r d13c4d2836a8 tools/libxen/src/xen_common.c
--- a/tools/libxen/src/xen_common.c     Tue Jan 15 14:39:23 2008 +0000
+++ b/tools/libxen/src/xen_common.c     Wed Jan 16 13:38:04 2008 +0100
@@ -416,13 +416,13 @@ xen_call_(xen_session *s, const char *me
           abstract_value params[], int param_count,
           const abstract_type *result_type, void *value)
 {
+    abstract_value *full_params;
     if (!s->ok)
     {
         return;
     }
 
-    abstract_value *full_params =
-        malloc(sizeof(abstract_value) * (param_count + 1));
+    full_params = malloc(sizeof(abstract_value) * (param_count + 1));
 
     full_params[0].type = &abstract_type_string;
     full_params[0].u.string_val = s->session_id;
@@ -475,13 +475,14 @@ call_raw(xen_session *s, const char *met
 
 static void server_error(xen_session *session, const char *error_string)
 {
+    char **strings;
     if (!session->ok)
     {
         /* Don't wipe out the earlier error message with this one. */
         return;
     }
 
-    char **strings = malloc(2 * sizeof(char *));
+    strings = malloc(2 * sizeof(char *));
 
     strings[0] = xen_strdup_("SERVER_FAULT");
     strings[1] = xen_strdup_(error_string);
@@ -495,13 +496,14 @@ static void server_error_2(xen_session *
 static void server_error_2(xen_session *session, const char *error_string,
                            const char *param)
 {
+    char **strings;
     if (!session->ok)
     {
         /* Don't wipe out the earlier error message with this one. */
         return;
     }
 
-    char **strings = malloc(3 * sizeof(char *));
+    strings = malloc(3 * sizeof(char *));
 
     strings[0] = xen_strdup_("SERVER_FAULT_2");
     strings[1] = xen_strdup_(error_string);
@@ -791,17 +793,17 @@ static void parse_into(xen_session *s, x
         }
         else
         {
-            xmlNode *data_node = value_node->children->children;
-            int n = count_children(data_node, "value");
+            arbitrary_set *set;
+            xmlNode *cur, *data_node = value_node->children->children;
+            int i, n = count_children(data_node, "value");
 
             const abstract_type *member_type = result_type->child;
             size_t member_size = size_of_member(member_type);
 
-            arbitrary_set *set =
-                calloc(1, sizeof(arbitrary_set) + member_size * n);
+            set = calloc(1, sizeof(arbitrary_set) + member_size * n);
             set->size = n;
-            int i = 0;
-            xmlNode *cur = data_node->children;
+            i = 0;
+            cur = data_node->children;
 
             while (cur != NULL)
             {
@@ -829,24 +831,25 @@ static void parse_into(xen_session *s, x
         }
         else
         {
-            xmlNode *struct_node = value_node->children;
-            int n = count_children(struct_node, "member");
+            arbitrary_map *map;
+            xmlNode *cur, *struct_node = value_node->children;
+            int i, n = count_children(struct_node, "member");
 
             size_t struct_size = result_type->struct_size;
 
             const struct struct_member *key_member = result_type->members;
             const struct struct_member *val_member = result_type->members + 1;
 
-            arbitrary_map *map =
-                calloc(1, sizeof(arbitrary_map) + struct_size * n);
+            map = calloc(1, sizeof(arbitrary_map) + struct_size * n);
             map->size = n;
-            int i = 0;
-            xmlNode *cur = struct_node->children;
+            i = 0;
+            cur = struct_node->children;
 
             while (cur != NULL)
             {
                 if (0 == strcmp((char *)cur->name, "member"))
                 {
+                    xmlChar *name;
                     if (cur->children == NULL || cur->last == cur->children)
                     {
                         server_error(s, "Malformed Map");
@@ -854,7 +857,7 @@ static void parse_into(xen_session *s, x
                         return;
                     }
 
-                    xmlChar *name = string_from_name(cur);
+                    name = string_from_name(cur);
                     if (name == NULL)
                     {
                         server_error(s, "Malformed Map");
@@ -919,6 +922,7 @@ static void parse_into(xen_session *s, x
             {
                 if (0 == strcmp((char *)cur->name, "member"))
                 {
+                    xmlChar *name;
                     if (cur->children == NULL || cur->last == cur->children)
                     {
                         server_error(s, "Malformed Struct");
@@ -927,7 +931,7 @@ static void parse_into(xen_session *s, x
                         return;
                     }
 
-                    xmlChar *name = string_from_name(cur);
+                    name = string_from_name(cur);
                     if (name == NULL)
                     {
                         server_error(s, "Malformed Struct");
@@ -1075,6 +1079,10 @@ static void parse_structmap_value(xen_se
 
 static void parse_fault(xen_session *session, xmlXPathContextPtr xpathCtx)
 {
+    xmlNode *fault_node0, *fault_node1;
+    xmlChar *fault_code_str, *fault_string_str;
+    char **strings;
+
     xmlXPathObjectPtr xpathObj = xmlXPathCompiledEval(faultPath, xpathCtx);
     if (xpathObj == NULL)
     {
@@ -1090,10 +1098,10 @@ static void parse_fault(xen_session *ses
         return;
     }
 
-    xmlNode *fault_node0 = xpathObj->nodesetval->nodeTab[0];
-    xmlNode *fault_node1 = xpathObj->nodesetval->nodeTab[1];
-
-    xmlChar *fault_code_str = string_from_value(fault_node0, "int");
+    fault_node0 = xpathObj->nodesetval->nodeTab[0];
+    fault_node1 = xpathObj->nodesetval->nodeTab[1];
+
+    fault_code_str = string_from_value(fault_node0, "int");
     if (fault_code_str == NULL)
     {
         fault_code_str = string_from_value(fault_node0, "i4");
@@ -1105,7 +1113,7 @@ static void parse_fault(xen_session *ses
         return;
     }
 
-    xmlChar *fault_string_str = string_from_value(fault_node1, "string");
+    fault_string_str = string_from_value(fault_node1, "string");
     if (fault_string_str == NULL)
     {
         xmlFree(fault_code_str);
@@ -1114,7 +1122,7 @@ static void parse_fault(xen_session *ses
         return;
     }
 
-    char **strings = malloc(3 * sizeof(char *));
+    strings = malloc(3 * sizeof(char *));
 
     strings[0] = xen_strdup_("FAULT");
     strings[1] = xen_strdup_((char *)fault_code_str);
@@ -1142,12 +1150,15 @@ static void parse_failure(xen_session *s
 
     if (session->ok)
     {
+        char **c, **strings;
+        int n;
+
         session->ok = false;
 
-        char **c = (char **)error_descriptions->contents;
-        int n = error_descriptions->size;
-
-        char **strings = malloc(n * sizeof(char *));
+        c = (char **)error_descriptions->contents;
+        n = error_descriptions->size;
+
+        strings = malloc(n * sizeof(char *));
         for (int i = 0; i < n; i++)
         {
             strings[i] = c[i];
@@ -1169,6 +1180,10 @@ static void parse_result(xen_session *se
 {
     xmlDocPtr doc =
         xmlReadMemory(result, strlen(result), "", NULL, XML_PARSE_NONET);
+    xmlXPathContextPtr xpathCtx;
+    xmlXPathObjectPtr xpathObj;
+    xmlNode *node0, *node1;
+    xmlChar *status_code;
 
     if (doc == NULL)
     {
@@ -1176,7 +1191,7 @@ static void parse_result(xen_session *se
         return;
     }
 
-    xmlXPathContextPtr xpathCtx = xmlXPathNewContext(doc);
+    xpathCtx = xmlXPathNewContext(doc);
     if (xpathCtx == NULL)
     {
         xmlFreeDoc(doc);
@@ -1184,8 +1199,7 @@ static void parse_result(xen_session *se
         return;
     }
 
-    xmlXPathObjectPtr xpathObj =
-        xmlXPathCompiledEval(responsePath, xpathCtx);
+    xpathObj = xmlXPathCompiledEval(responsePath, xpathCtx);
     if (xpathObj == NULL)
     {
         parse_fault(session, xpathCtx);
@@ -1206,10 +1220,10 @@ static void parse_result(xen_session *se
         return;
     }
 
-    xmlNode *node0 = xpathObj->nodesetval->nodeTab[0];
-    xmlNode *node1 = xpathObj->nodesetval->nodeTab[1];
-
-    xmlChar *status_code = string_from_value(node0, "string");
+    node0 = xpathObj->nodesetval->nodeTab[0];
+    node1 = xpathObj->nodesetval->nodeTab[1];
+
+    status_code = string_from_value(node0, "string");
     if (status_code == NULL)
     {
         xmlXPathFreeObject(xpathObj);
@@ -1364,14 +1378,17 @@ make_body(const char *method_name, abstr
 make_body(const char *method_name, abstract_value params[], int param_count)
 {
     xmlDocPtr doc = xmlNewDoc(BAD_CAST "1.0");
-    xmlNode *methodCall = xmlNewNode(NULL, BAD_CAST "methodCall");
+    xmlNode *params_node, *methodCall = xmlNewNode(NULL, BAD_CAST 
"methodCall");
+    xmlBufferPtr buffer;
+    xmlSaveCtxtPtr save_ctxt;
+    xmlChar *content;
+
     xmlDocSetRootElement(doc, methodCall);
 
     xmlNewChild(methodCall, NULL, BAD_CAST "methodName",
                 BAD_CAST method_name);
 
-    xmlNode *params_node =
-        xmlNewChild(methodCall, NULL, BAD_CAST "params", NULL);
+    params_node = xmlNewChild(methodCall, NULL, BAD_CAST "params", NULL);
 
     for (int p = 0; p < param_count; p++)
     {
@@ -1379,9 +1396,8 @@ make_body(const char *method_name, abstr
         make_body_add_type(v->type->typename, v, params_node);
     }
 
-    xmlBufferPtr buffer = xmlBufferCreate();
-    xmlSaveCtxtPtr save_ctxt =
-        xmlSaveToBuffer(buffer, NULL, XML_SAVE_NO_XHTML);
+    buffer = xmlBufferCreate();
+    save_ctxt = xmlSaveToBuffer(buffer, NULL, XML_SAVE_NO_XHTML);
 
     if (xmlSaveDoc(save_ctxt, doc) == -1)
     {
@@ -1390,7 +1406,7 @@ make_body(const char *method_name, abstr
 
     xmlFreeDoc(doc);
     xmlSaveClose(save_ctxt);
-    xmlChar *content = xmlStrdup(xmlBufferContent(buffer));
+    content = xmlStrdup(xmlBufferContent(buffer));
     xmlBufferFree(buffer);
     return (char *)content;
 }
@@ -1611,11 +1627,12 @@ add_struct_array(xmlNode *struct_node, c
 add_struct_array(xmlNode *struct_node, const char *name)
 {
     xmlNode *member_node = add_container(struct_node, "member");
+    xmlNode *value_node, *array_node;
 
     xmlNewChild(member_node, NULL, BAD_CAST "name", BAD_CAST name);
 
-    xmlNode *value_node = add_container(member_node, "value");
-    xmlNode *array_node = add_container(value_node,  "array");
+    value_node = add_container(member_node, "value");
+    array_node = add_container(value_node,  "array");
 
     return add_container(array_node,  "data");
 }
@@ -1625,10 +1642,11 @@ add_nested_struct(xmlNode *struct_node, 
 add_nested_struct(xmlNode *struct_node, const char *name)
 {
     xmlNode *member_node = add_container(struct_node, "member");
+    xmlNode *value_node;
 
     xmlNewChild(member_node, NULL, BAD_CAST "name", BAD_CAST name);
 
-    xmlNode *value_node = add_container(member_node, "value");
+    value_node = add_container(member_node, "value");
 
     return add_container(value_node, "struct");
 }
diff -r d13c4d2836a8 tools/libxen/src/xen_int_string_set_map.c
--- a/tools/libxen/src/xen_int_string_set_map.c Tue Jan 15 14:39:23 2008 +0000
+++ b/tools/libxen/src/xen_int_string_set_map.c Wed Jan 16 13:38:04 2008 +0100
@@ -36,12 +36,14 @@ void
 void
 xen_int_string_set_map_free(xen_int_string_set_map *map)
 {
+       size_t n;
+
     if (map == NULL)
     {
         return;
     }
 
-    size_t n = map->size;
+    n = map->size;
     for (size_t i = 0; i < n; i++)
     {
         
diff -r d13c4d2836a8 tools/libxen/src/xen_string_set.c
--- a/tools/libxen/src/xen_string_set.c Tue Jan 15 14:39:23 2008 +0000
+++ b/tools/libxen/src/xen_string_set.c Wed Jan 16 13:38:04 2008 +0100
@@ -33,11 +33,12 @@ void
 void
 xen_string_set_free(xen_string_set *set)
 {
+    size_t n;
     if (set == NULL)
     {
         return;
     }
-    size_t n = set->size;
+    n = set->size;
     for (size_t i = 0; i < n; i++)
     {
        free(set->contents[i]);
diff -r d13c4d2836a8 tools/libxen/src/xen_string_string_map.c
--- a/tools/libxen/src/xen_string_string_map.c  Tue Jan 15 14:39:23 2008 +0000
+++ b/tools/libxen/src/xen_string_string_map.c  Wed Jan 16 13:38:04 2008 +0100
@@ -35,12 +35,13 @@ void
 void
 xen_string_string_map_free(xen_string_string_map *map)
 {
+    size_t n;
     if (map == NULL)
     {
         return;
     }
 
-    size_t n = map->size;
+    n = map->size;
     for (size_t i = 0; i < n; i++)
     {
         free(map->contents[i].key);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.