Index: xen-3.2-testing/tools/misc/miniterm/miniterm.c
===================================================================
--- xen-3.2-testing.orig/tools/misc/miniterm/miniterm.c
+++ xen-3.2-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-3.2-testing/xen/tools/symbols.c
===================================================================
--- xen-3.2-testing.orig/xen/tools/symbols.c
+++ xen-3.2-testing/xen/tools/symbols.c
@@ -81,7 +81,8 @@ static int read_symbol(FILE *in, struct 
 	if (rc != 3) {
 		if (rc != EOF) {
 			/* skip line */
-			fgets(str, 500, in);
+			if (fgets(str, sizeof(str), in) == NULL)
+				; /* don't care */
 		}
 		return -1;
 	}
Index: xen-3.2-testing/tools/libxc/xc_dom_elfloader.c
===================================================================
--- xen-3.2-testing.orig/tools/libxc/xc_dom_elfloader.c
+++ xen-3.2-testing/tools/libxc/xc_dom_elfloader.c
@@ -195,8 +195,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-3.2-testing/tools/xenstore/Makefile
===================================================================
--- xen-3.2-testing.orig/tools/xenstore/Makefile
+++ xen-3.2-testing/tools/xenstore/Makefile
@@ -6,7 +6,7 @@ MAJOR = 3.0
 MINOR = 0
 
 PROFILE=#-pg
-BASECFLAGS=-Werror
+BASECFLAGS=-Werror -fno-strict-aliasing
 # Make gcc generate dependencies.
 BASECFLAGS += -Wp,-MD,.$(@F).d
 PROG_DEP = .*.d
Index: xen-3.2-testing/tools/xenstore/xenstored_core.c
===================================================================
--- xen-3.2-testing.orig/tools/xenstore/xenstored_core.c
+++ xen-3.2-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)
 {
@@ -1789,10 +1789,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-3.2-testing/tools/xenstore/xenstored_domain.c
===================================================================
--- xen-3.2-testing.orig/tools/xenstore/xenstored_domain.c
+++ xen-3.2-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)
@@ -516,7 +516,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-3.2-testing/tools/xenstore/xenstored_transaction.c
===================================================================
--- xen-3.2-testing.orig/tools/xenstore/xenstored_transaction.c
+++ xen-3.2-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-3.2-testing/tools/xenstore/xenstore_client.c
===================================================================
--- xen-3.2-testing.orig/tools/xenstore/xenstore_client.c
+++ xen-3.2-testing/tools/xenstore/xenstore_client.c
@@ -119,7 +119,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-3.2-testing/tools/xenstore/xsls.c
===================================================================
--- xen-3.2-testing.orig/tools/xenstore/xsls.c
+++ xen-3.2-testing/tools/xenstore/xsls.c
@@ -24,8 +24,7 @@ void print_dir(struct xs_handle *h, char
     char **e;
     char newpath[STRING_MAX], *val;
     int newpath_len;
-    int i;
-    unsigned int num, len;
+    unsigned int i, num, len;
 
     e = xs_directory(h, XBT_NULL, path, &num);
     if (e == NULL)
@@ -69,7 +68,7 @@ void print_dir(struct xs_handle *h, char
             printf(":\n");
         }
         else {
-            if (max_width < (linewid + len + TAG_LEN)) {
+            if (max_width < (int)(linewid + len + TAG_LEN)) {
                 printf(" = \"%.*s\\...\"",
                        (int)(max_width - TAG_LEN - linewid),
 		       sanitise_value(&ebuf, val, len));
@@ -94,7 +93,7 @@ void print_dir(struct xs_handle *h, char
                 warn("\ncould not access permissions for %s", e[i]);
             }
             else {
-                int i;
+                unsigned int i;
                 fputs("  (", stdout);
                 for (i = 0; i < nperms; i++) {
                     if (i)
Index: xen-3.2-testing/tools/blktap/drivers/tapaio.c
===================================================================
--- xen-3.2-testing.orig/tools/blktap/drivers/tapaio.c
+++ xen-3.2-testing/tools/blktap/drivers/tapaio.c
@@ -150,7 +150,7 @@ tap_aio_get_events(tap_aio_context_t *ct
                 nr_events = io_getevents(ctx->aio_ctx, 1,
                                          ctx->max_aio_events, ctx->aio_events, NULL);
         else
-                read(ctx->completion_fd[0], &nr_events, sizeof(nr_events));
+                if (read(ctx->completion_fd[0], &nr_events, sizeof(nr_events)));
 
         return nr_events;
 }
Index: xen-3.2-testing/xen/arch/x86/x86_emulate.c
===================================================================
--- xen-3.2-testing.orig/xen/arch/x86/x86_emulate.c
+++ xen-3.2-testing/xen/arch/x86/x86_emulate.c
@@ -31,7 +31,9 @@
 #include <xen/lib.h>
 #include <asm/regs.h>
 #undef cmpxchg
+#undef cpuid
 #endif
+#undef wbinvd /* Macro'ed in include/asm-x86/system.h */
 #include <asm-x86/x86_emulate.h>
 
 /* Operand sizes: 8-bit operands or specified/overridden size. */
Index: xen-3.2-testing/tools/libxen/src/xen_common.c
===================================================================
--- xen-3.2-testing.orig/tools/libxen/src/xen_common.c
+++ xen-3.2-testing/tools/libxen/src/xen_common.c
@@ -1051,6 +1051,8 @@ static size_t size_of_member(const abstr
     default:
         assert(false);
     }
+
+    return 0; /* prevents a compiler warning */
 }
 
 
@@ -1550,6 +1552,8 @@ get_val_as_string(const struct abstract_
     default:
         assert(false);
     }
+
+    return NULL; /* prevents a compiler warning */
 }