From fc705202c06204cc5956f0e53117d22d52189310 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= Date: Fri, 8 Jan 2016 17:02:54 +0100 Subject: [PATCH] Fixed memtest86+ to run even if relocated above 1 MB (by real-mode-reloc patch) - Relocated memtest86+ above 1 MB (as we always did in Fedora) - Fixed compilation of inline assembly with new gcc (by fgnu89-inline patch) --- memtest86+-5.01-fgnu89-inline.patch | 13 +++++++++++++ memtest86+-5.01-real-mode-reloc.patch | 27 +++++++++++++++++++++++++++ memtest86+.spec | 15 +++++++++++++-- 3 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 memtest86+-5.01-fgnu89-inline.patch create mode 100644 memtest86+-5.01-real-mode-reloc.patch diff --git a/memtest86+-5.01-fgnu89-inline.patch b/memtest86+-5.01-fgnu89-inline.patch new file mode 100644 index 0000000..1080835 --- /dev/null +++ b/memtest86+-5.01-fgnu89-inline.patch @@ -0,0 +1,13 @@ +diff --git a/Makefile b/Makefile +index 7906d50..03eb50b 100644 +--- a/Makefile ++++ b/Makefile +@@ -13,7 +13,7 @@ AS=as -32 + CC=gcc + + CFLAGS= -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin \ +- -ffreestanding -fPIC $(SMP_FL) -fno-stack-protector ++ -ffreestanding -fPIC $(SMP_FL) -fno-stack-protector -fgnu89-inline + + OBJS= head.o reloc.o main.o test.o init.o lib.o patn.o screen_buffer.o \ + config.o cpuid.o linuxbios.o pci.o memsize.o spd.o error.o dmi.o controller.o \ diff --git a/memtest86+-5.01-real-mode-reloc.patch b/memtest86+-5.01-real-mode-reloc.patch new file mode 100644 index 0000000..173a472 --- /dev/null +++ b/memtest86+-5.01-real-mode-reloc.patch @@ -0,0 +1,27 @@ +diff --git a/defs.h b/defs.h +index 3891699..2060333 100644 +--- a/defs.h ++++ b/defs.h +@@ -13,7 +13,7 @@ + * Unlike earlier versions all of the settings are in defs.h + * so the build process should be more robust. + */ +-#define LOW_TEST_ADR 0x00010000 /* Final adrs for test code */ ++#define LOW_TEST_ADR 0x00002000 /* Final adrs for test code */ + + #define BOOTSEG 0x07c0 /* Segment adrs for inital boot */ + #define INITSEG 0x9000 /* Segment adrs for relocated boot */ +diff --git a/main.c b/main.c +index 613f811..44f49f8 100644 +--- a/main.c ++++ b/main.c +@@ -394,6 +394,9 @@ void test_start(void) + /* If this is the first time here we are CPU 0 */ + if (start_seq == 0) { + my_cpu_num = 0; ++ if ((ulong)&_start != LOW_TEST_ADR) { ++ run_at(LOW_TEST_ADR, 0); ++ } + } else { + my_cpu_num = smp_my_cpu_num(); + } diff --git a/memtest86+.spec b/memtest86+.spec index 8695097..8bc0116 100644 --- a/memtest86+.spec +++ b/memtest86+.spec @@ -9,7 +9,7 @@ Name: memtest86+ Version: 5.01 -Release: 9%{?dist} +Release: 10%{?dist} License: GPLv2 Summary: Stand-alone memory tester for x86 and x86-64 computers Group: System Environment/Base @@ -28,6 +28,8 @@ Patch0: memtest86+-5.01-no-scp.patch Patch1: memtest86+-5.01-no-optimization.patch Patch2: memtest86+-5.01-compile-fix.patch Patch3: memtest86+-5.01-crash-fix.patch +Patch4: memtest86+-5.01-fgnu89-inline.patch +Patch5: memtest86+-5.01-real-mode-reloc.patch URL: http://www.memtest.org BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # require glibc-devel.i386 via this file: @@ -57,8 +59,10 @@ cp -p %{SOURCE5} README.%{readme_suffix} %patch1 -p1 -b .no-optimization %patch2 -p1 -b .compile-fix %patch3 -p1 -b .crash-fix +%patch4 -p1 -b .fgnu89-inline +%patch5 -p1 -b .real-mode-reloc -sed -i -e's,0x5000,0x100000,' memtest.lds +sed -i -e's,0x10000,0x100000,' memtest.lds %ifarch x86_64 sed -i -e's,$(LD) -s -T memtest.lds,$(LD) -s -T memtest.lds -z max-page-size=0x1000,' Makefile %endif @@ -120,6 +124,13 @@ rm -rf %{buildroot} %{_mandir}/man8/*.8.gz %changelog +* Fri Jan 8 2016 Jaroslav Škarvada - 5.01-10 +- Fixed memtest86+ to run even if relocated above 1 MB + (by real-mode-reloc patch) +- Relocated memtest86+ above 1 MB (as we always did in Fedora) +- Fixed compilation of inline assembly with new gcc + (by fgnu89-inline patch) + * Wed Jun 17 2015 Fedora Release Engineering - 5.01-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild