aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kerr <​jk@ozlabs.org>2008-04-12 23:20:31 +0000
committerJeremy Kerr <​jk@ozlabs.org>2008-04-12 23:20:31 +0000
commit4ec5f133bb0b800ef8bfa0c8687a8f317b092162 (patch)
treea3d74f0326478631eee55ba70c0e44d100bcbd60
parent077d84f543b36d27d1d8aa5f759d6eed6c6a65b2 (diff)
downloadupstream-4ec5f133bb0b800ef8bfa0c8687a8f317b092162.tar.gz
upstream-4ec5f133bb0b800ef8bfa0c8687a8f317b092162.tar.bz2
upstream-4ec5f133bb0b800ef8bfa0c8687a8f317b092162.zip
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
-rw-r--r--package/kexec-tools/Makefile51
-rw-r--r--package/kexec-tools/kexec-config.in9
-rw-r--r--package/kexec-tools/patches/0001-Use-separate-CPPFLAGS-and-LDFLAGS-for-purgatory.patch39
-rw-r--r--package/kexec-tools/patches/0002-Use-separate-LDFLAGS-for-bin-to-hex.patch27
-rw-r--r--package/kexec-tools/patches/0003-Give-installed-files-user-writable-permission.patch132
5 files changed, 238 insertions, 20 deletions
diff --git a/package/kexec-tools/Makefile b/package/kexec-tools/Makefile
index 6274cb81c3..108492dbbf 100644
--- a/package/kexec-tools/Makefile
+++ b/package/kexec-tools/Makefile
@@ -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))
diff --git a/package/kexec-tools/kexec-config.in b/package/kexec-tools/kexec-config.in
new file mode 100644
index 0000000000..0907741825
--- /dev/null
+++ b/package/kexec-tools/kexec-config.in
@@ -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.
diff --git a/package/kexec-tools/patches/0001-Use-separate-CPPFLAGS-and-LDFLAGS-for-purgatory.patch b/package/kexec-tools/patches/0001-Use-separate-CPPFLAGS-and-LDFLAGS-for-purgatory.patch
new file mode 100644
index 0000000000..1a64732109
--- /dev/null
+++ b/package/kexec-tools/patches/0001-Use-separate-CPPFLAGS-and-LDFLAGS-for-purgatory.patch
@@ -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
+
diff --git a/package/kexec-tools/patches/0002-Use-separate-LDFLAGS-for-bin-to-hex.patch b/package/kexec-tools/patches/0002-Use-separate-LDFLAGS-for-bin-to-hex.patch
new file mode 100644
index 0000000000..f420bab6ac
--- /dev/null
+++ b/package/kexec-tools/patches/0002-Use-separate-LDFLAGS-for-bin-to-hex.patch
@@ -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
+
diff --git a/package/kexec-tools/patches/0003-Give-installed-files-user-writable-permission.patch b/package/kexec-tools/patches/0003-Give-installed-files-user-writable-permission.patch
new file mode 100644
index 0000000000..7ff2115008
--- /dev/null
+++ b/package/kexec-tools/patches/0003-Give-installed-files-user-writable-permission.patch
@@ -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
+