rpms/kexec-tools/devel kexec-tools-1.101-et-dyn.patch, NONE, 1.1 kexec-tools.spec, 1.36, 1.37

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Mon Jul 31 14:55:14 UTC 2006


Author: nhorman

Update of /cvs/dist/rpms/kexec-tools/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv17664

Modified Files:
	kexec-tools.spec 
Added Files:
	kexec-tools-1.101-et-dyn.patch 
Log Message:
adding ET_DYN patch

kexec-tools-1.101-et-dyn.patch:
 kexec-elf-exec.c |   10 +++++++---
 kexec-elf.h      |    2 +-
 2 files changed, 8 insertions(+), 4 deletions(-)

--- NEW FILE kexec-tools-1.101-et-dyn.patch ---
--- kexec-tools-1.101/kexec/kexec-elf.h.orig	2006-07-31 10:41:57.000000000 -0400
+++ kexec-tools-1.101/kexec/kexec-elf.h	2006-07-31 10:42:09.000000000 -0400
@@ -89,7 +89,7 @@ extern int build_elf_info(const char *bu
 extern int build_elf_exec_info(const char *buf, off_t len, struct mem_ehdr *ehdr);
 extern int build_elf_rel_info(const char *buf, off_t len, struct mem_ehdr *ehdr);
 
-extern int elf_exec_load(const struct mem_ehdr *ehdr, struct kexec_info *info);
+extern int elf_exec_load(struct mem_ehdr *ehdr, struct kexec_info *info);
 extern int elf_rel_load(struct mem_ehdr *ehdr, struct kexec_info *info,
 	unsigned long min, unsigned long max, int end);
 
--- kexec-tools-1.101/kexec/kexec-elf-exec.c.orig	2006-07-31 10:14:20.000000000 -0400
+++ kexec-tools-1.101/kexec/kexec-elf-exec.c	2006-07-31 10:18:25.000000000 -0400
@@ -47,7 +47,7 @@ int build_elf_exec_info(const char *buf,
 }
 
 
-int elf_exec_load(const struct mem_ehdr *ehdr, struct kexec_info *info)
+int elf_exec_load(struct mem_ehdr *ehdr, struct kexec_info *info)
 {
 	unsigned long base;
 	int result;
@@ -79,8 +79,8 @@ int elf_exec_load(const struct mem_ehdr 
 			}
 			start = phdr->p_paddr;
 			stop  = start + phdr->p_memsz;
-			if (start > first) {
-				start = first;
+			if (first > start) {
+				first = start;
 			}
 			if (last < stop) {
 				last = stop;
@@ -126,6 +126,10 @@ int elf_exec_load(const struct mem_ehdr 
 			phdr->p_data, size,
 			phdr->p_paddr + base, phdr->p_memsz);
 	}
+
+	/* Update entry point to reflect new load address*/
+	ehdr->e_entry += base;
+
 	result = 0;
  out:
 	return result;


Index: kexec-tools.spec
===================================================================
RCS file: /cvs/dist/rpms/kexec-tools/devel/kexec-tools.spec,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- kexec-tools.spec	27 Jul 2006 13:08:21 -0000	1.36
+++ kexec-tools.spec	31 Jul 2006 14:55:12 -0000	1.37
@@ -1,6 +1,6 @@
 Name: kexec-tools
 Version: 1.101
-Release: 31%{dist}.1
+Release: 32%{dist}.1
 License: GPL
 Group: Applications/System
 Summary: The kexec/kdump userspace component.
@@ -50,6 +50,7 @@
 #
 Patch601: kexec-tools-1.101-Makefile.patch
 Patch602: kexec-tools-1.101-Makefile-kcp.patch
+Patch603: kexec-tools-1.101-et-dyn.patch
 
 %description
 kexec-tools provides /sbin/kexec binary that facilitates a new
@@ -69,6 +70,7 @@
 %patch501 -p1
 %patch601 -p1
 %patch602 -p1
+%patch603 -p1
 
 cp $RPM_SOURCE_DIR/kdump.init .
 cp $RPM_SOURCE_DIR/kdump.sysconfig .
@@ -127,11 +129,14 @@
 %doc TODO
 
 %changelog
+* Mon Jul 31 2006 Neil Horman <nhorman at redhat.com> - 1.101-32%{dist}.1
+- added et-dyn patch to allow loading of relocatable kernels
+
 * Thu Jul 27 2006 Neil Horman <nhorman at redhat.com> - 1.101-30%{dist}.1
--fixing up missing patch to kdump.init
+- fixing up missing patch to kdump.init
 
 * Wed Jul 19 2006 Neil Horman <nhorman at redhat.com> - 1.101-30%{dist}.1
--add kexec frontend (bz 197695)
+- add kexec frontend (bz 197695)
 
 * Wed Jul 12 2006 Jesse Keating <jkeating at redhat.com> - 1.101-29%{dist}.1
 - rebuild




More information about the fedora-cvs-commits mailing list