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)
This commit is contained in:
Jaroslav Škarvada 2016-01-08 17:02:54 +01:00
parent 4847f5187c
commit fc705202c0
3 changed files with 53 additions and 2 deletions

View File

@ -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 \

View File

@ -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();
}

View File

@ -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 <jskarvad@redhat.com> - 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 <rel-eng@lists.fedoraproject.org> - 5.01-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild