This patch fixes a recently found problem when a zImage passed to kexec-tools contains an appended DTB. In that case kexec boot fails because the decompressor wrongly tries to use the non-existing appended DTB instaed of the one passed in the register r2. - http://lists.infradead.org/pipermail/kexec/2021-April/022353.html Signed-off-by: Alexander Egorenkov <egorenar-dev@posteo.net>
		
			
				
	
	
		
			100 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
#
 | 
						|
# Copyright (C) 2006-2012 OpenWrt.org
 | 
						|
#
 | 
						|
# This is free software, licensed under the GNU General Public License v2.
 | 
						|
# See /LICENSE for more information.
 | 
						|
#
 | 
						|
 | 
						|
include $(TOPDIR)/rules.mk
 | 
						|
 | 
						|
PKG_NAME:=kexec-tools
 | 
						|
PKG_VERSION:=2.0.21
 | 
						|
PKG_RELEASE:=2
 | 
						|
 | 
						|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 | 
						|
PKG_SOURCE_URL:=@KERNEL/linux/utils/kernel/kexec
 | 
						|
PKG_HASH:=e113142dee891638ad96e0f72cf9277b244477619470b30c41999d312e8e8702
 | 
						|
 | 
						|
PKG_CONFIG_DEPENDS := CONFIG_KEXEC_ZLIB CONFIG_KEXEC_LZMA
 | 
						|
 | 
						|
include $(INCLUDE_DIR)/package.mk
 | 
						|
 | 
						|
define Package/kexec-tools/Default
 | 
						|
  SECTION:=utils
 | 
						|
  CATEGORY:=Utilities
 | 
						|
  URL:=http://kernel.org/pub/linux/kernel/people/horms/kexec-tools/
 | 
						|
endef
 | 
						|
 | 
						|
define Package/kexec-tools
 | 
						|
  $(call Package/kexec-tools/Default)
 | 
						|
  TITLE:=kexec-tools transition meta package
 | 
						|
  DEPENDS:=+kexec
 | 
						|
endef
 | 
						|
 | 
						|
define Package/kexec-tools/description
 | 
						|
 kexec is a set of system calls that allows you to load
 | 
						|
 another kernel from the currently executing Linux kernel.
 | 
						|
 The kexec utility allows to load and boot another kernel.
 | 
						|
endef
 | 
						|
 | 
						|
define Package/kexec
 | 
						|
  $(call Package/kexec-tools/Default)
 | 
						|
  TITLE:=Kernel boots kernel
 | 
						|
  DEPENDS:=\
 | 
						|
	@(armeb||arm||i386||x86_64||powerpc64||mipsel||mips) \
 | 
						|
	+KEXEC_ZLIB:zlib +KEXEC_LZMA:liblzma @KERNEL_KEXEC
 | 
						|
endef
 | 
						|
 | 
						|
define Package/kexec/description
 | 
						|
 The kexec utility allows to load and boot another kernel.
 | 
						|
endef
 | 
						|
 | 
						|
define Package/kexec/config
 | 
						|
	source "$(SOURCE)/Config.in"
 | 
						|
endef
 | 
						|
 | 
						|
KEXEC_TARGET_NAME:=$(ARCH)-linux-$(TARGET_SUFFIX)
 | 
						|
 | 
						|
CONFIGURE_ARGS = \
 | 
						|
		--target=$(KEXEC_TARGET_NAME) \
 | 
						|
		--host=$(REAL_GNU_TARGET_NAME) \
 | 
						|
		--build=$(GNU_HOST_NAME) \
 | 
						|
		--program-prefix="" \
 | 
						|
		--program-suffix="" \
 | 
						|
		--prefix=/usr \
 | 
						|
		--exec-prefix=/usr \
 | 
						|
		--bindir=/usr/bin \
 | 
						|
		--sbindir=/usr/sbin \
 | 
						|
		--libexecdir=/usr/lib \
 | 
						|
		--sysconfdir=/etc \
 | 
						|
		$(if $(CONFIG_KEXEC_ZLIB),--with,--without)-zlib \
 | 
						|
		$(if $(CONFIG_KEXEC_LZMA),--with,--without)-lzma \
 | 
						|
		TARGET_LD="$(TARGET_CROSS)ld"
 | 
						|
 | 
						|
TARGET_CFLAGS += -ffunction-sections -fdata-sections
 | 
						|
TARGET_LDFLAGS += -Wl,--gc-sections
 | 
						|
 | 
						|
CONFIGURE_VARS += \
 | 
						|
	BUILD_CC="$(HOSTCC)" \
 | 
						|
	TARGET_CC="$(TARGET_CC)"
 | 
						|
 | 
						|
define Build/Compile
 | 
						|
	$(MAKE) -C $(PKG_BUILD_DIR) DESTDIR="$(PKG_INSTALL_DIR)" all install
 | 
						|
endef
 | 
						|
 | 
						|
define Package/kexec-tools/install
 | 
						|
	:
 | 
						|
endef
 | 
						|
 | 
						|
define Package/kexec/install
 | 
						|
	$(INSTALL_DIR) $(1)/usr/sbin
 | 
						|
	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kexec $(1)/usr/sbin
 | 
						|
 | 
						|
# make a link for compatability with other distros
 | 
						|
	$(INSTALL_DIR) $(1)/sbin
 | 
						|
	$(LN) ../usr/sbin/kexec $(1)/sbin/kexec
 | 
						|
endef
 | 
						|
 | 
						|
$(eval $(call BuildPackage,kexec-tools))
 | 
						|
$(eval $(call BuildPackage,kexec))
 |