Use new kexec tools

Horms' new kexec-tools repository has a number of updates and fixes for
kexec, and also supports the PS3.

This change updates the kexec repo, and adds a few build-system patches
to make it work with OpenWRT.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>

SVN-Revision: 10803
This commit is contained in:
Jeremy Kerr 2008-04-12 23:20:31 +00:00
parent 077d84f543
commit 4ec5f133bb
5 changed files with 238 additions and 20 deletions

View file

@ -9,46 +9,57 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=kexec-tools
PKG_VERSION:=1.101
PKG_VERSION:=testing-20080227
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.xmission.com/~ebiederm/files/kexec/
PKG_MD5SUM:=b4f7ffcc294d41a6a4c40d6e44b7734d
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://kernel.org/pub/linux/kernel/people/horms/kexec-tools/
PKG_MD5SUM:=45455af789545fdfaff2401d1988996a
include $(INCLUDE_DIR)/package.mk
define Package/kexec-tools
SECTION:=utils
CATEGORY:=Utilities
DEPENDS:=@i386 +zlib
DEPENDS:=@i386||@powerpc +zlib
TITLE:=Kernel boots kernel
URL:=http://www.xmission.com/~ebiederm/files/kexec/README
URL:=http://kernel.org/pub/linux/kernel/people/horms/kexec-tools/
MENU:=1
endef
define Package/kexec-tools/description
kexec is a set of systems call that allows you to load
kexec is a set of systems call that allows you to load
another kernel from the currently executing Linux kernel.
endef
MAKE_FLAGS += \
DESTDIR="$(PKG_INSTALL_DIR)" \
EXTRA_CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
BUILD_CFLAGS="-Os" \
LIBS="$(TARGET_LDFLAGS) -lz" \
install
define Package/kexec-tools/config
source "$(SOURCE)/kexec-config.in"
endef
CONFIGURE_ARGS = \
--target=$(CONFIG_KEXEC_TOOLS_TARGET_NAME)-linux-uclibc \
--host=$(GNU_TARGET_NAME)-uclibc \
--build=$(GNU_HOST_NAME) \
--program-prefix="" \
--program-suffix="" \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--libexecdir=/usr/lib \
--sysconfdir=/etc \
CONFIGURE_VARS += BUILD_CC=$(HOSTCC)
define Build/Compile
rm -rf $(PKG_INSTALL_DIR)
mkdir -p $(PKG_INSTALL_DIR)
$(call Build/Compile/Default,)
$(MAKE) -C $(PKG_BUILD_DIR) all
endef
define Package/kexec-tools/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kexec $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kdump $(1)/usr/bin/
$(INSTALL_BIN) ./files/kexec.sh $(1)/usr/bin/kexec.mtd
$(MAKE) -C $(PKG_BUILD_DIR) \
DESTDIR="$(1)" \
install
rm -rf $(1)/usr/man
endef
$(eval $(call BuildPackage,kexec-tools))

View file

@ -0,0 +1,9 @@
config KEXEC_TOOLS_TARGET_NAME
string
prompt "Target name for kexec kernel" if PACKAGE_kexec-tools
default ARCH
help
Defines the target type of the kernels that kexec deals
with. This should be the target specification of
the kernel you're booting.

View file

@ -0,0 +1,39 @@
From ee274ca1ae88bef43da3090d0e1e9155e3b493ad Mon Sep 17 00:00:00 2001
From: Jeremy Kerr <jk@ozlabs.org>
Date: Wed, 19 Mar 2008 17:06:24 +1100
Subject: [PATCH] Use separate CPPFLAGS and LDFLAGS for purgatory
Currently, CPPFLAGS and LDFLAGS can 'leak' into the purgatory build
from the main kexec/kexec object. Because of this, the purgatory
is build with -lz, but we may not have a zlib present for the
architecture of the purgatory object.
This change uses fresh CPPFLAGS and LDFLAGS for the purgatory object.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
---
purgatory/Makefile | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/purgatory/Makefile b/purgatory/Makefile
index 6c747b1..ac58719 100644
--- a/purgatory/Makefile
+++ b/purgatory/Makefile
@@ -49,11 +49,12 @@ $(PURGATORY): CFLAGS+=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \
-Os -fno-builtin -ffreestanding \
-fno-zero-initialized-in-bss
-$(PURGATORY): CPPFLAGS+=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \
+$(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \
-I$(srcdir)/purgatory/include \
-I$(srcdir)/purgatory/arch/$(ARCH)/include \
+ -I$(srcdir)/util_lib/include \
-I$(shell $(CC) -print-file-name=include)
-$(PURGATORY): LDFLAGS+=$($(ARCH)_PURGATORY_EXTRA_CFLAGS)\
+$(PURGATORY): LDFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS)\
--no-undefined -nostartfiles -nostdlib -nodefaultlibs \
-e purgatory_start -r
--
1.5.0.rc4.g85b1

View file

@ -0,0 +1,27 @@
From 072159b1f4aca88f7d99259fe2bd14a6653ede52 Mon Sep 17 00:00:00 2001
From: Jeremy Kerr <jk@ozlabs.org>
Date: Wed, 19 Mar 2008 17:20:39 +1100
Subject: [PATCH] Use separate LDFLAGS for bin-to-hex
We don't need the general -L and -l flags for the bin-to-hex util.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
---
util/Makefile | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/util/Makefile b/util/Makefile
index 89732a1..11d82fd 100644
--- a/util/Makefile
+++ b/util/Makefile
@@ -6,6 +6,7 @@ $(BIN_TO_HEX): $(srcdir)/util/bin-to-hex.c
$(BIN_TO_HEX): CC=$(BUILD_CC)
$(BIN_TO_HEX): CFLAGS=$(BUILD_CFLAGS)
+$(BIN_TO_HEX): LDFLAGS=
dist += util/Makefile util/bin-to-hex.c
clean += util/bin-to-hex.o $(BIN_TO_HEX)
--
1.5.0.rc4.g85b1

View file

@ -0,0 +1,132 @@
From 0c5e14cdad161e510497df58eb206d3b8f8eba47 Mon Sep 17 00:00:00 2001
From: Jeremy Kerr <jk@ozlabs.org>
Date: Wed, 19 Mar 2008 17:25:37 +1100
Subject: [PATCH] Give installed files user-writable permission
Currently we install all files as 0555 or 0444. This means that we
can't easily do any post-install modification to the files (eg.
stripping, as is done with OpenWRT).
This change installs the files with the user write bit set
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
---
Makefile.in | 42 +++++++++++++++++++++---------------------
1 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index 306d6e9..037f9a4 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -237,87 +237,87 @@ install: $(TARGETS)
for file in $(TARGETS) ; do \
if test `$(DIRNAME) $$file` = "$(SBINDIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(sbindir)/; \
- $(INSTALL) -m 555 $$file $(DESTDIR)/$(sbindir)/; \
+ $(INSTALL) -m 755 $$file $(DESTDIR)/$(sbindir)/; \
fi; \
if test `$(DIRNAME) $$file` = "$(BINDIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(bindir)/; \
- $(INSTALL) -m 555 $$file $(DESTDIR)/$(bindir)/; \
+ $(INSTALL) -m 755 $$file $(DESTDIR)/$(bindir)/; \
fi; \
if test `$(DIRNAME) $$file` = "$(LIBEXECDIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(libexecdir)/; \
- $(INSTALL) -m 555 $$file $(DESTDIR)/$(libexecdir)/; \
+ $(INSTALL) -m 755 $$file $(DESTDIR)/$(libexecdir)/; \
fi; \
if test `$(DIRNAME) $$file` = "$(DATADIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(datadir)/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(datadir)/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(datadir)/; \
fi; \
if test `$(DIRNAME) $$file` = "$(SYSCONFDIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(sysconfdir)/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(sysconfdir)/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(sysconfdir)/; \
fi; \
if test `$(DIRNAME) $$file` = "$(SHAREDSTATEDIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(sharedstatedir)/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(sharedstatedir)/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(sharedstatedir)/; \
fi; \
if test `$(DIRNAME) $$file` = "$(LOCALSTATEDIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(localstatedir)/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(localstatedir)/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(localstatedir)/; \
fi; \
if test `$(DIRNAME) $$file` = "$(LIBDIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(libdir)/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(libdir)/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(libdir)/; \
fi; \
if test `$(DIRNAME) $$file` = "$(INFODIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(infodir)/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(infodir)/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(infodir)/; \
fi; \
if test `$(DIRNAME) $$file` = "$(MAN1DIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(mandir)/man1; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(mandir)/man1; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man1; \
fi; \
if test `$(DIRNAME) $$file` = "$(MAN2DIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(mandir)/man2; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(mandir)/man2; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man2; \
fi; \
if test `$(DIRNAME) $$file` = "$(MAN3DIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(mandir)/man3/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(mandir)/man3/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man3/; \
fi; \
if test `$(DIRNAME) $$file` = "$(MAN4DIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(mandir)/man4/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(mandir)/man4/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man4/; \
fi; \
if test `$(DIRNAME) $$file` = "$(MAN5DIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(mandir)/man5/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(mandir)/man5/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man5/; \
fi; \
if test `$(DIRNAME) $$file` = "$(MAN6DIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(mandir)/man6/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(mandir)/man6/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man6/; \
fi; \
if test `$(DIRNAME) $$file` = "$(MAN7DIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(mandir)/man7/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(mandir)/man7/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man7/; \
fi; \
if test `$(DIRNAME) $$file` = "$(MAN8DIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(mandir)/man8/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(mandir)/man8/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man8/; \
fi; \
if test `$(DIRNAME) $$file` = "$(INCLUDEDIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(includedir)/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(includedir)/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(includedir)/; \
fi; \
if test `$(DIRNAME) $$file` = "$(PKGDATADIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(pkgdatadir)/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(pkgdatadir)/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(pkgdatadir)/; \
fi; \
if test `$(DIRNAME) $$file` = "$(PKGLIBDIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(pkglibdir)/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(pkglibdir)/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(pkglibdir)/; \
fi; \
if test `$(DIRNAME) $$file` = "$(PKGINCLUDEDIR)" ; then \
$(MKDIR) -p $(DESTDIR)/$(pkgincludedir)/; \
- $(INSTALL) -m 444 $$file $(DESTDIR)/$(pkgincludedir)/; \
+ $(INSTALL) -m 644 $$file $(DESTDIR)/$(pkgincludedir)/; \
fi; \
done
--
1.5.0.rc4.g85b1