Index: xen-4.0.3-testing/tools/misc/miniterm/miniterm.c
===================================================================
--- xen-4.0.3-testing.orig/tools/misc/miniterm/miniterm.c
+++ xen-4.0.3-testing/tools/misc/miniterm/miniterm.c
@@ -157,7 +157,7 @@ int main(int argc, char **argv)
     case 0:
         close(1); /* stdout not needed */
         for ( c = (char)getchar(); c != ENDMINITERM; c = (char)getchar() )
-            write(fd,&c,1);
+            if (write(fd,&c,1)) ;
         tcsetattr(fd,TCSANOW,&oldsertio);
         tcsetattr(0,TCSANOW,&oldstdtio);
         close(fd);
@@ -169,19 +169,19 @@ int main(int argc, char **argv)
         close(fd);
         exit(-1);
     default:
-        write(1, start_str, strlen(start_str));
+        if (write(1, start_str, strlen(start_str))) ;
         close(0); /* stdin not needed */
         sa.sa_handler = child_handler;
         sa.sa_flags = 0;
         sigaction(SIGCHLD,&sa,NULL); /* handle dying child */
         while ( !stop )
         {
-            read(fd,&c,1); /* modem */
+            if (read(fd,&c,1)) ; /* modem */
             c = (char)c;
-            write(1,&c,1); /* stdout */
+            if (write(1,&c,1)) ; /* stdout */
         }
         wait(NULL); /* wait for child to die or it will become a zombie */
-        write(1, end_str, strlen(end_str));
+        if (write(1, end_str, strlen(end_str))) ;
         break;
     }
 
Index: xen-4.0.3-testing/tools/libxc/xc_dom_elfloader.c
===================================================================
--- xen-4.0.3-testing.orig/tools/libxc/xc_dom_elfloader.c
+++ xen-4.0.3-testing/tools/libxc/xc_dom_elfloader.c
@@ -193,8 +193,9 @@ static int xc_dom_load_elf_symtab(struct
 
             if ( load )
             {
+                void * dst = (void*)elf_section_start(&syms, shdr);
                 shdr2 = elf_shdr_by_index(elf, h);
-                memcpy((void*)elf_section_start(&syms, shdr),
+                memcpy(dst,
                        elf_section_start(elf, shdr2),
                        size);
             }
Index: xen-4.0.3-testing/tools/xenstore/Makefile
===================================================================
--- xen-4.0.3-testing.orig/tools/xenstore/Makefile
+++ xen-4.0.3-testing/tools/xenstore/Makefile
@@ -4,7 +4,7 @@ include $(XEN_ROOT)/tools/Rules.mk
 MAJOR = 3.0
 MINOR = 0
 
-CFLAGS += -Werror
+CFLAGS += -Werror -fno-strict-aliasing
 CFLAGS += -I.
 CFLAGS += $(CFLAGS_libxenctrl)
 
Index: xen-4.0.3-testing/tools/xenstore/xenstored_core.c
===================================================================
--- xen-4.0.3-testing.orig/tools/xenstore/xenstored_core.c
+++ xen-4.0.3-testing/tools/xenstore/xenstored_core.c
@@ -77,8 +77,8 @@ static void check_store(void);
 
 int quota_nb_entry_per_domain = 1000;
 int quota_nb_watch_per_domain = 128;
-int quota_max_entry_size = 2048; /* 2K */
-int quota_max_transaction = 10;
+unsigned int quota_max_entry_size = 2048; /* 2K */
+unsigned int quota_max_transaction = 10;
 
 TDB_CONTEXT *tdb_context(struct connection *conn)
 {
@@ -1786,10 +1786,10 @@ int main(int argc, char *argv[])
 			remove_local = false;
 			break;
 		case 'S':
-			quota_max_entry_size = strtol(optarg, NULL, 10);
+			quota_max_entry_size = strtoul(optarg, NULL, 10);
 			break;
 		case 't':
-			quota_max_transaction = strtol(optarg, NULL, 10);
+			quota_max_transaction = strtoul(optarg, NULL, 10);
 			break;
 		case 'T':
 			tracefile = optarg;
Index: xen-4.0.3-testing/tools/xenstore/xenstored_domain.c
===================================================================
--- xen-4.0.3-testing.orig/tools/xenstore/xenstored_domain.c
+++ xen-4.0.3-testing/tools/xenstore/xenstored_domain.c
@@ -212,7 +212,7 @@ void handle_event(void)
 {
 	evtchn_port_t port;
 
-	if ((port = xc_evtchn_pending(xce_handle)) == -1)
+	if ((port = xc_evtchn_pending(xce_handle)) == (evtchn_port_t)-1)
 		barf_perror("Failed to read from event fd");
 
 	if (port == virq_port)
@@ -561,7 +561,7 @@ static int dom0_init(void)
 	struct domain *dom0;
 
 	port = xenbus_evtchn();
-	if (port == -1)
+	if (port == (evtchn_port_t)-1)
 		return -1;
 
 	dom0 = new_domain(NULL, 0, port); 
Index: xen-4.0.3-testing/tools/xenstore/xenstored_transaction.c
===================================================================
--- xen-4.0.3-testing.orig/tools/xenstore/xenstored_transaction.c
+++ xen-4.0.3-testing/tools/xenstore/xenstored_transaction.c
@@ -82,7 +82,7 @@ struct transaction
 	struct list_head changed_domains;
 };
 
-extern int quota_max_transaction;
+extern unsigned int quota_max_transaction;
 static unsigned int generation;
 
 /* Return tdb context to use for this connection. */
Index: xen-4.0.3-testing/tools/xenstore/xenstore_client.c
===================================================================
--- xen-4.0.3-testing.orig/tools/xenstore/xenstore_client.c
+++ xen-4.0.3-testing/tools/xenstore/xenstore_client.c
@@ -251,7 +251,7 @@ do_chmod(char *path, struct xs_permissio
 	char **xsval = xs_directory(xsh, xth, path, &xsval_n);
 
 	if (xsval) {
-	    int i;
+	    unsigned int i;
 	    for (i = 0; i < xsval_n; i++) {
 		snprintf(buf, MAX_PATH_LEN, "%s/%s", path, xsval[i]);
 
Index: xen-4.0.3-testing/tools/libxen/src/xen_common.c
===================================================================
--- xen-4.0.3-testing.orig/tools/libxen/src/xen_common.c
+++ xen-4.0.3-testing/tools/libxen/src/xen_common.c
@@ -1057,6 +1057,8 @@ static size_t size_of_member(const abstr
     default:
         assert(false);
     }
+
+    return 0; /* prevents a compiler warning */
 }
 
 
@@ -1568,6 +1570,8 @@ get_val_as_string(const struct abstract_
     default:
         assert(false);
     }
+
+    return NULL; /* prevents a compiler warning */
 }
 
 
Index: xen-4.0.3-testing/tools/blktap2/drivers/block-remus.c
===================================================================
--- xen-4.0.3-testing.orig/tools/blktap2/drivers/block-remus.c
+++ xen-4.0.3-testing/tools/blktap2/drivers/block-remus.c
@@ -1579,7 +1579,7 @@ static int tdremus_open(td_driver_t *dri
 			td_flag_t flags)
 {
 	struct tdremus_state *s = (struct tdremus_state *)driver->data;
-	int rc;
+	int rc = 0;
 
 	RPRINTF("opening %s\n", name);
 
