--- /dev/null
+From 7ebb916782949621ff6819acf373a06902df7679 Mon Sep 17 00:00:00 2001
+From: Markus Trippelsdorf <markus@trippelsdorf.de>
+Date: Thu, 15 Dec 2016 13:45:13 +0100
+Subject: x86/tools: Fix gcc-7 warning in relocs.c
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Markus Trippelsdorf <markus@trippelsdorf.de>
+
+commit 7ebb916782949621ff6819acf373a06902df7679 upstream.
+
+gcc-7 warns:
+
+In file included from arch/x86/tools/relocs_64.c:17:0:
+arch/x86/tools/relocs.c: In function ‘process_64’:
+arch/x86/tools/relocs.c:953:2: warning: argument 1 null where non-null expected [-Wnonnull]
+ qsort(r->offset, r->count, sizeof(r->offset[0]), cmp_relocs);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+In file included from arch/x86/tools/relocs.h:6:0,
+ from arch/x86/tools/relocs_64.c:1:
+/usr/include/stdlib.h:741:13: note: in a call to function ‘qsort’ declared here
+ extern void qsort
+
+This happens because relocs16 is not used for ELF_BITS == 64,
+so there is no point in trying to sort it.
+
+Make the sort_relocs(&relocs16) call 32bit only.
+
+Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de>
+Link: http://lkml.kernel.org/r/20161215124513.GA289@x4
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/tools/relocs.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/arch/x86/tools/relocs.c
++++ b/arch/x86/tools/relocs.c
+@@ -992,11 +992,12 @@ static void emit_relocs(int as_text, int
+ die("Segment relocations found but --realmode not specified\n");
+
+ /* Order the relocations for more efficient processing */
+- sort_relocs(&relocs16);
+ sort_relocs(&relocs32);
+ #if ELF_BITS == 64
+ sort_relocs(&relocs32neg);
+ sort_relocs(&relocs64);
++#else
++ sort_relocs(&relocs16);
+ #endif
+
+ /* Print the relocations */