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-changelog

[Xen-changelog] [xen-unstable] tools/libxl: compile with -Wmissing-decla

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] tools/libxl: compile with -Wmissing-declarations
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 18 Aug 2010 07:01:22 -0700
Delivery-date: Wed, 18 Aug 2010 07:09:05 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
# Date 1282062053 -3600
# Node ID e5a9221bdd3fec99bc4b01afe56ef639cc9be60a
# Parent  c82f7f4ee9b7e73642b6f01dc4426f64e61f8585
tools/libxl: compile with -Wmissing-declarations

Since the recent build error caused by mismatch of symbol types due to
missing declarations, build libxl with -Wmissing-declarations.

The patch is mostly straightforward, a one liner in the makefile enables
the flag, a lot of functions in xl_cmdimpl.c needed to be made static
and libxl_paths.c needed to include libxl.h.

The one wart on the patch-set is that flex has a bug where it emits code
with missing declarations for yy(set|get)_column.  This can be worked
around by providing the declarations ourselves regardless.

Signed-off-by: Gianni Tedesco <gianni.tedesco@xxxxxxxxxx>
Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---
 tools/libxl/Makefile         |    2 -
 tools/libxl/libxl.c          |    2 -
 tools/libxl/libxl_device.c   |    2 -
 tools/libxl/libxl_internal.h |    4 ++-
 tools/libxl/libxl_paths.c    |    1 
 tools/libxl/libxlu_cfg_l.c   |   53 ++++++++++++++++++++++++-------------------
 tools/libxl/libxlu_cfg_l.h   |    2 -
 tools/libxl/libxlu_cfg_l.l   |    7 +++++
 tools/libxl/xl_cmdimpl.c     |   46 ++++++++++++++++++-------------------
 9 files changed, 68 insertions(+), 51 deletions(-)

diff -r c82f7f4ee9b7 -r e5a9221bdd3f tools/libxl/Makefile
--- a/tools/libxl/Makefile      Tue Aug 17 15:23:36 2010 +0100
+++ b/tools/libxl/Makefile      Tue Aug 17 17:20:53 2010 +0100
@@ -11,7 +11,7 @@ XLUMAJOR = 1.0
 XLUMAJOR = 1.0
 XLUMINOR = 0
 
-CFLAGS += -Werror -Wno-format-zero-length
+CFLAGS += -Werror -Wno-format-zero-length -Wmissing-declarations
 CFLAGS += -I. -fPIC
 CFLAGS += $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest) $(CFLAGS_libxenstore) 
$(CFLAGS_libblktapctl)
 
diff -r c82f7f4ee9b7 -r e5a9221bdd3f tools/libxl/libxl.c
--- a/tools/libxl/libxl.c       Tue Aug 17 15:23:36 2010 +0100
+++ b/tools/libxl/libxl.c       Tue Aug 17 17:20:53 2010 +0100
@@ -1346,7 +1346,7 @@ static char ** libxl_build_device_model_
     }
 }
 
-void dm_xenstore_record_pid(void *for_spawn, pid_t innerchild)
+static void dm_xenstore_record_pid(void *for_spawn, pid_t innerchild)
 {
     libxl_device_model_starting *starting = for_spawn;
     char *kvs[3];
diff -r c82f7f4ee9b7 -r e5a9221bdd3f tools/libxl/libxl_device.c
--- a/tools/libxl/libxl_device.c        Tue Aug 17 15:23:36 2010 +0100
+++ b/tools/libxl/libxl_device.c        Tue Aug 17 17:20:53 2010 +0100
@@ -262,7 +262,7 @@ out:
     return rc;
 }
 
-int wait_for_dev_destroy(libxl_ctx *ctx, struct timeval *tv)
+static int wait_for_dev_destroy(libxl_ctx *ctx, struct timeval *tv)
 {
     libxl_gc gc = LIBXL_INIT_GC(ctx);
     int nfds, rc;
diff -r c82f7f4ee9b7 -r e5a9221bdd3f tools/libxl/libxl_internal.h
--- a/tools/libxl/libxl_internal.h      Tue Aug 17 15:23:36 2010 +0100
+++ b/tools/libxl/libxl_internal.h      Tue Aug 17 17:20:53 2010 +0100
@@ -272,4 +272,6 @@ struct libxl__xen_console_reader {
     unsigned int index;
 };
 
-#endif
+_hidden int libxl_error_set(libxl_ctx *ctx, int code);
+
+#endif
diff -r c82f7f4ee9b7 -r e5a9221bdd3f tools/libxl/libxl_paths.c
--- a/tools/libxl/libxl_paths.c Tue Aug 17 15:23:36 2010 +0100
+++ b/tools/libxl/libxl_paths.c Tue Aug 17 17:20:53 2010 +0100
@@ -12,6 +12,7 @@
  * GNU Lesser General Public License for more details.
  */
 
+#include "libxl.h"
 #include "_libxl_paths.h"
 
 const char *libxl_sbindir_path(void)
diff -r c82f7f4ee9b7 -r e5a9221bdd3f tools/libxl/libxlu_cfg_l.c
--- a/tools/libxl/libxlu_cfg_l.c        Tue Aug 17 15:23:36 2010 +0100
+++ b/tools/libxl/libxlu_cfg_l.c        Tue Aug 17 17:20:53 2010 +0100
@@ -488,8 +488,15 @@ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1
     return (x);                   \
   }while(0)
 
-
-#line 493 "libxlu_cfg_l.c"
+/* Some versions of flex have a bug (Fedora bugzilla 612465) which causes
+ * it to fail to declare these functions, which it defines.  So declare
+ * them ourselves.  Hopefully we won't have to simultaneously support
+ * a flex version which declares these differently somehow. */
+int xlu__cfg_yyget_column(yyscan_t yyscanner);
+void xlu__cfg_yyset_column(int  column_no, yyscan_t yyscanner);
+
+
+#line 500 "libxlu_cfg_l.c"
 
 #define INITIAL 0
 #define lexerr 1
@@ -734,10 +741,10 @@ YY_DECL
        register int yy_act;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
-#line 30 "libxlu_cfg_l.l"
-
-
-#line 741 "libxlu_cfg_l.c"
+#line 37 "libxlu_cfg_l.l"
+
+
+#line 748 "libxlu_cfg_l.c"
 
     yylval = yylval_param;
 
@@ -840,7 +847,7 @@ do_action:  /* This label is used only to
 
 case 1:
 YY_RULE_SETUP
-#line 32 "libxlu_cfg_l.l"
+#line 39 "libxlu_cfg_l.l"
 {
                           yylval->string= xlu__cfgl_strdup(ctx,yytext);
                           GOT(IDENT);
@@ -848,7 +855,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 36 "libxlu_cfg_l.l"
+#line 43 "libxlu_cfg_l.l"
 {
                           yylval->string= xlu__cfgl_strdup(ctx,yytext);
                           GOT(NUMBER);
@@ -856,43 +863,43 @@ YY_RULE_SETUP
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 41 "libxlu_cfg_l.l"
+#line 48 "libxlu_cfg_l.l"
 
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 43 "libxlu_cfg_l.l"
+#line 50 "libxlu_cfg_l.l"
 { GOT(','); }
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 44 "libxlu_cfg_l.l"
+#line 51 "libxlu_cfg_l.l"
 { GOT('['); }
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 45 "libxlu_cfg_l.l"
+#line 52 "libxlu_cfg_l.l"
 { GOT(']'); }
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 46 "libxlu_cfg_l.l"
+#line 53 "libxlu_cfg_l.l"
 { GOT('='); }
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 47 "libxlu_cfg_l.l"
+#line 54 "libxlu_cfg_l.l"
 { GOT(';'); }
        YY_BREAK
 case 9:
 /* rule 9 can match eol */
 YY_RULE_SETUP
-#line 49 "libxlu_cfg_l.l"
+#line 56 "libxlu_cfg_l.l"
 { yylloc->first_line= yylineno-1; return NEWLINE; }
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 51 "libxlu_cfg_l.l"
+#line 58 "libxlu_cfg_l.l"
 {
                           yylval->string= xlu__cfgl_dequote(ctx,yytext);
                           GOT(STRING);
@@ -900,7 +907,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 55 "libxlu_cfg_l.l"
+#line 62 "libxlu_cfg_l.l"
 {
                           yylval->string= xlu__cfgl_dequote(ctx,yytext);
                           GOT(STRING);
@@ -908,7 +915,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 60 "libxlu_cfg_l.l"
+#line 67 "libxlu_cfg_l.l"
 {
                           BEGIN(lexerr);
                           yymore();
@@ -916,7 +923,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 65 "libxlu_cfg_l.l"
+#line 72 "libxlu_cfg_l.l"
 {
                           xlu__cfgl_lexicalerror(ctx,"lexical error");
                           BEGIN(0);
@@ -925,7 +932,7 @@ case 14:
 case 14:
 /* rule 14 can match eol */
 YY_RULE_SETUP
-#line 70 "libxlu_cfg_l.l"
+#line 77 "libxlu_cfg_l.l"
 {
                           xlu__cfgl_lexicalerror(ctx,"lexical error");
                           BEGIN(0);
@@ -934,10 +941,10 @@ YY_RULE_SETUP
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 75 "libxlu_cfg_l.l"
+#line 82 "libxlu_cfg_l.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
        YY_BREAK
-#line 941 "libxlu_cfg_l.c"
+#line 948 "libxlu_cfg_l.c"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(lexerr):
        yyterminate();
@@ -2087,4 +2094,4 @@ void xlu__cfg_yyfree (void * ptr , yysca
 
 #define YYTABLES_NAME "yytables"
 
-#line 75 "libxlu_cfg_l.l"
+#line 82 "libxlu_cfg_l.l"
diff -r c82f7f4ee9b7 -r e5a9221bdd3f tools/libxl/libxlu_cfg_l.h
--- a/tools/libxl/libxlu_cfg_l.h        Tue Aug 17 15:23:36 2010 +0100
+++ b/tools/libxl/libxlu_cfg_l.h        Tue Aug 17 17:20:53 2010 +0100
@@ -350,7 +350,7 @@ extern int xlu__cfg_yylex \
 #undef YY_DECL
 #endif
 
-#line 75 "libxlu_cfg_l.l"
+#line 82 "libxlu_cfg_l.l"
 
 #line 356 "libxlu_cfg_l.h"
 #undef xlu__cfg_yyIN_HEADER
diff -r c82f7f4ee9b7 -r e5a9221bdd3f tools/libxl/libxlu_cfg_l.l
--- a/tools/libxl/libxlu_cfg_l.l        Tue Aug 17 15:23:36 2010 +0100
+++ b/tools/libxl/libxlu_cfg_l.l        Tue Aug 17 17:20:53 2010 +0100
@@ -10,6 +10,13 @@
     yylloc->first_line= yylineno; \
     return (x);                   \
   }while(0)
+
+/* Some versions of flex have a bug (Fedora bugzilla 612465) which causes
+ * it to fail to declare these functions, which it defines.  So declare
+ * them ourselves.  Hopefully we won't have to simultaneously support
+ * a flex version which declares these differently somehow. */
+int xlu__cfg_yyget_column(yyscan_t yyscanner);
+void xlu__cfg_yyset_column(int  column_no, yyscan_t yyscanner);
 
 %}
 
diff -r c82f7f4ee9b7 -r e5a9221bdd3f tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c  Tue Aug 17 15:23:36 2010 +0100
+++ b/tools/libxl/xl_cmdimpl.c  Tue Aug 17 17:20:53 2010 +0100
@@ -214,7 +214,7 @@ static void find_domain(const char *p)
 
 #define LOG(_f, _a...)   dolog(__FILE__, __LINE__, __func__, _f "\n", ##_a)
 
-void dolog(const char *file, int line, const char *func, char *fmt, ...)
+static void dolog(const char *file, int line, const char *func, char *fmt, ...)
 {
     va_list ap;
     char *s;
@@ -1037,7 +1037,7 @@ static void *xrealloc(void *ptr, size_t 
     return r;
 }
 
-int autoconnect_console(int hvm)
+static int autoconnect_console(int hvm)
 {
     int status, options;
     pid_t pid, r;
@@ -1661,7 +1661,7 @@ static int64_t parse_mem_size_kb(char *m
     return kbytes;
 }
 
-int set_memory_max(char *p, char *mem)
+static int set_memory_max(char *p, char *mem)
 {
     int64_t memorykb;
     int rc;
@@ -1712,7 +1712,7 @@ int main_memmax(int argc, char **argv)
     return 0;
 }
 
-void set_memory_target(char *p, char *mem)
+static void set_memory_target(char *p, char *mem)
 {
     long long int memorykb;
 
@@ -1754,7 +1754,7 @@ int main_memset(int argc, char **argv)
     return 0;
 }
 
-void cd_insert(char *dom, char *virtdev, char *phys)
+static void cd_insert(char *dom, char *virtdev, char *phys)
 {
     libxl_device_disk disk;
     char *p;
@@ -1936,7 +1936,7 @@ int main_vncviewer(int argc, char **argv
     return 0;
 }
 
-void pcilist_assignable(void)
+static void pcilist_assignable(void)
 {
     libxl_device_pci *pcidevs;
     int num, i;
@@ -1969,7 +1969,7 @@ int main_pcilist_assignable(int argc, ch
     return 0;
 }
 
-void pcilist(char *dom)
+static void pcilist(char *dom)
 {
     libxl_device_pci *pcidevs;
     int num, i;
@@ -2011,7 +2011,7 @@ int main_pcilist(int argc, char **argv)
     return 0;
 }
 
-void pcidetach(char *dom, char *bdf)
+static void pcidetach(char *dom, char *bdf)
 {
     libxl_device_pci pcidev;
 
@@ -2051,7 +2051,7 @@ int main_pcidetach(int argc, char **argv
     pcidetach(domname, bdf);
     return 0;
 }
-void pciattach(char *dom, char *bdf, char *vs)
+static void pciattach(char *dom, char *bdf, char *vs)
 {
     libxl_device_pci pcidev;
 
@@ -2095,19 +2095,19 @@ int main_pciattach(int argc, char **argv
     return 0;
 }
 
-void pause_domain(char *p)
+static void pause_domain(char *p)
 {
     find_domain(p);
     libxl_domain_pause(&ctx, domid);
 }
 
-void unpause_domain(char *p)
+static void unpause_domain(char *p)
 {
     find_domain(p);
     libxl_domain_unpause(&ctx, domid);
 }
 
-void destroy_domain(char *p)
+static void destroy_domain(char *p)
 {
     int rc;
     find_domain(p);
@@ -2119,7 +2119,7 @@ void destroy_domain(char *p)
     if (rc) { fprintf(stderr,"destroy failed (rc=%d)\n.",rc); exit(-1); }
 }
 
-void shutdown_domain(char *p)
+static void shutdown_domain(char *p)
 {
     int rc;
     find_domain(p);
@@ -2127,7 +2127,7 @@ void shutdown_domain(char *p)
     if (rc) { fprintf(stderr,"shutdown failed (rc=%d)\n.",rc);exit(-1); }
 }
 
-void reboot_domain(char *p)
+static void reboot_domain(char *p)
 {
     int rc;
     find_domain(p);
@@ -2135,7 +2135,7 @@ void reboot_domain(char *p)
     if (rc) { fprintf(stderr,"reboot failed (rc=%d)\n.",rc);exit(-1); }
 }
 
-void list_domains_details(const libxl_dominfo *info, int nb_domain)
+static void list_domains_details(const libxl_dominfo *info, int nb_domain)
 {
     struct domain_config d_config;
 
@@ -2161,7 +2161,7 @@ void list_domains_details(const libxl_do
     }
 }
 
-void list_domains(int verbose, const libxl_dominfo *info, int nb_domain)
+static void list_domains(int verbose, const libxl_dominfo *info, int nb_domain)
 {
     int i;
 
@@ -2188,7 +2188,7 @@ void list_domains(int verbose, const lib
     }
 }
 
-void list_vm(void)
+static void list_vm(void)
 {
     libxl_vminfo *info;
     char *domname;
@@ -2236,7 +2236,7 @@ static void save_domain_core_begin(char 
     }
 }
 
-void save_domain_core_writeconfig(int fd, const char *filename,
+static void save_domain_core_writeconfig(int fd, const char *filename,
                                   const uint8_t *config_data, int config_len)
 {
     struct save_file_header hdr;
@@ -2275,7 +2275,7 @@ void save_domain_core_writeconfig(int fd
             hdr.optional_data_len);
 }
 
-int save_domain(char *p, char *filename, int checkpoint,
+static int save_domain(char *p, char *filename, int checkpoint,
                 const char *override_config_file)
 {
     int fd;
@@ -3157,7 +3157,7 @@ int main_create(int argc, char **argv)
     return 0;
 }
 
-void button_press(char *p, char *b)
+static void button_press(char *p, char *b)
 {
     libxl_button button;
 
@@ -3272,7 +3272,7 @@ static void print_vcpuinfo(uint32_t tdom
     }
 }
 
-void vcpulist(int argc, char **argv)
+static void vcpulist(int argc, char **argv)
 {
     libxl_dominfo *dominfo, *domlist;
     libxl_vcpuinfo *vcpuinfo, *list = NULL;
@@ -3340,7 +3340,7 @@ int main_vcpulist(int argc, char **argv)
     return 0;
 }
 
-void vcpupin(char *d, const char *vcpu, char *cpu)
+static void vcpupin(char *d, const char *vcpu, char *cpu)
 {
     libxl_vcpuinfo *vcpuinfo;
     libxl_physinfo physinfo;
@@ -3444,7 +3444,7 @@ int main_vcpupin(int argc, char **argv)
     return 0;
 }
 
-void vcpuset(char *d, char* nr_vcpus)
+static void vcpuset(char *d, char* nr_vcpus)
 {
     char *endptr;
     unsigned int max_vcpus;

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] tools/libxl: compile with -Wmissing-declarations, Xen patchbot-unstable <=