File ipxe-gcc6-e2f14c2f.patch of Package xen
--- /dev/null
+++ b/tools/firmware/etherboot/patches/mucurses-Fix-GCC-6-nonnull-compare-errors.patch
@@ -0,0 +1,63 @@
+From e2f14c2f8c10674dbbd4f1228d79dc4c9be213b5 Mon Sep 17 00:00:00 2001
+From: Vinson Lee <vlee@freedesktop.org>
+Date: Fri, 15 Apr 2016 22:38:35 +0000
+Subject: [mucurses] Fix GCC 6 nonnull-compare errors
+
+Remove null checks for arguments declared as nonnull.
+
+Signed-off-by: Vinson Lee <vlee@freedesktop.org>
+Signed-off-by: Michael Brown <mcb30@ipxe.org>
+---
+ src/hci/mucurses/windows.c | 11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/src/hci/mucurses/windows.c b/src/hci/mucurses/windows.c
+index 7f39bde..5f5d1f4 100644
+--- a/src/hci/mucurses/windows.c
++++ b/src/hci/mucurses/windows.c
+@@ -18,9 +18,6 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
+ * @ret rc return status code
+ */
+ int delwin ( WINDOW *win ) {
+- if ( win == NULL )
+- return ERR;
+-
+ /* I think we should blank the region covered by the window -
+ ncurses doesn't do this, but they have a buffer, so they
+ may just be deleting from an offscreen context whereas we
+@@ -51,8 +48,6 @@ int delwin ( WINDOW *win ) {
+ WINDOW *derwin ( WINDOW *parent, int nlines, int ncols,
+ int begin_y, int begin_x ) {
+ WINDOW *child;
+- if ( parent == NULL )
+- return NULL;
+ if ( ( child = malloc( sizeof( WINDOW ) ) ) == NULL )
+ return NULL;
+ if ( ( (unsigned)ncols > parent->width ) ||
+@@ -75,8 +70,6 @@ WINDOW *derwin ( WINDOW *parent, int nlines, int ncols,
+ */
+ WINDOW *dupwin ( WINDOW *orig ) {
+ WINDOW *copy;
+- if ( orig == NULL )
+- return NULL;
+ if ( ( copy = malloc( sizeof( WINDOW ) ) ) == NULL )
+ return NULL;
+ copy->scr = orig->scr;
+@@ -99,8 +92,6 @@ WINDOW *dupwin ( WINDOW *orig ) {
+ * @ret rc return status code
+ */
+ int mvwin ( WINDOW *win, int y, int x ) {
+- if ( win == NULL )
+- return ERR;
+ if ( ( ( (unsigned)y + win->height ) > LINES ) ||
+ ( ( (unsigned)x + win->width ) > COLS ) )
+ return ERR;
+@@ -149,8 +140,6 @@ WINDOW *newwin ( int nlines, int ncols, int begin_y, int begin_x ) {
+ WINDOW *subwin ( WINDOW *parent, int nlines, int ncols,
+ int begin_y, int begin_x ) {
+ WINDOW *child;
+- if ( parent == NULL )
+- return NULL;
+ if ( ( child = malloc( sizeof( WINDOW ) ) ) == NULL )
+ return NULL;
+ child = newwin( nlines, ncols, begin_y, begin_x );
--- a/tools/firmware/etherboot/patches/series
+++ b/tools/firmware/etherboot/patches/series
@@ -11,3 +11,4 @@ skge-Fix-building-with-GCC-6.patch
ath-Fix-building-with-GCC-6.patch
ethernet-Expose-eth_broadcast-as-a-global-constant.patch
ath9k-Fix-buffer-overrun-for-ar9287.patch
+mucurses-Fix-GCC-6-nonnull-compare-errors.patch