memtest86+: Disable optimization

Patch taken from debian updates:
https://packages.debian.org/sid/memtest86+

"Build -O0 to workaround what is apparently a gcc 4.9
optimisation bug, and use "static" the __in and __out
macros to allow compilation to proceed under this condition
as done in other distros, including Mageia, closes: #753627):
memtest86+-5.01-O0.patch."

Change-Id: I2daadc162dbea9b0c3ad4a897b1dfacbdd8146b1
Signed-off-by: Martin Roth <martinroth@google.com>
Reviewed-on: https://review.coreboot.org/13821
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Tested-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/Makefile b/Makefile
index 96d1108..ea9ba0f 100644
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@
 AS=as -32
 CC=gcc
 
-CFLAGS= -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin \
+CFLAGS= -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin \
 	-ffreestanding -fPIC $(SMP_FL) -fno-stack-protector 
 
 # This reverts a change introduced with recent binutils (post
diff --git a/io.h b/io.h
index 4fda2de..b3779e4 100644
--- a/io.h
+++ b/io.h
@@ -31,7 +31,7 @@
  */
 
 #define __OUT1(s,x) \
-extern inline void __out##s(unsigned x value, unsigned short port) {
+static inline void __out##s(unsigned x value, unsigned short port) {
 
 #define __OUT2(s,s1,s2) \
 __asm__ __volatile__ ("out" #s " %" s1 "0,%" s2 "1"
@@ -43,7 +43,7 @@
 __OUT1(s##c_p,x) __OUT2(s,s1,"") : : "a" (value), "id" (port)); SLOW_DOWN_IO; }
 
 #define __IN1(s) \
-extern inline RETURN_TYPE __in##s(unsigned short port) { RETURN_TYPE _v;
+static inline RETURN_TYPE __in##s(unsigned short port) { RETURN_TYPE _v;
 
 #define __IN2(s,s1,s2) \
 __asm__ __volatile__ ("in" #s " %" s2 "1,%" s1 "0"