mirror of
				https://github.com/meizu-m86/kexec-tools-arm64
				synced 2025-11-04 05:46:10 +08:00 
			
		
		
		
	Add kexec reboot support for ARM64 platforms. Signed-off-by: Geoff Levand <geoff@infradead.org>
		
			
				
	
	
		
			207 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			207 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
dnl 
 | 
						|
dnl configure.ac for kexec-tools
 | 
						|
dnl 
 | 
						|
dnl 
 | 
						|
 | 
						|
dnl ---Required
 | 
						|
AC_INIT(kexec-tools, 2.0.13)
 | 
						|
AC_CONFIG_AUX_DIR(./config)
 | 
						|
AC_CONFIG_HEADERS([include/config.h])
 | 
						|
AC_LANG(C)
 | 
						|
AC_PROG_CC
 | 
						|
 | 
						|
 | 
						|
dnl -- Compilation platform configuration
 | 
						|
dnl -- the host specifices the host machine for the kexec binary, the
 | 
						|
dnl -- the target specifies the architecture of the kernel to be kexeced.
 | 
						|
AC_CANONICAL_HOST
 | 
						|
AC_CANONICAL_TARGET
 | 
						|
 | 
						|
dnl Compute ARCH from target cpu info
 | 
						|
case $target_cpu in
 | 
						|
	i?86 )
 | 
						|
		ARCH="i386"
 | 
						|
		;;
 | 
						|
	powerpc )
 | 
						|
		ARCH="ppc"
 | 
						|
		SUBARCH="BE"
 | 
						|
		;;
 | 
						|
	powerpc64 )
 | 
						|
		ARCH="ppc64"
 | 
						|
		SUBARCH="BE"
 | 
						|
		;;
 | 
						|
	powerpc64le )
 | 
						|
		ARCH="ppc64"
 | 
						|
		SUBARCH="LE"
 | 
						|
		;;
 | 
						|
	aarch64* )
 | 
						|
		ARCH="arm64"
 | 
						|
		;;
 | 
						|
	arm* )
 | 
						|
		ARCH="arm"
 | 
						|
		;;
 | 
						|
	s390x|s390 )
 | 
						|
		ARCH="s390"
 | 
						|
		;;
 | 
						|
	sh4|sh4a|sh3|sh )
 | 
						|
		ARCH="sh"
 | 
						|
		;;
 | 
						|
	mips* )
 | 
						|
		ARCH="mips"
 | 
						|
		;;
 | 
						|
	cris|crisv32 )
 | 
						|
		ARCH="cris"
 | 
						|
		;;
 | 
						|
	ia64|x86_64|alpha|m68k )
 | 
						|
		ARCH="$target_cpu"
 | 
						|
		;;
 | 
						|
	* )
 | 
						|
		AC_MSG_ERROR([unsupported architecture $target_cpu])
 | 
						|
		;;
 | 
						|
esac
 | 
						|
 | 
						|
dnl ---Options
 | 
						|
 | 
						|
OBJDIR=`pwd`/objdir
 | 
						|
if test "${host_alias}" ; then
 | 
						|
	OBJDIR="$OBJDIR-${host_alias}"
 | 
						|
fi
 | 
						|
 | 
						|
if test "x$BUILD_CFLAGS" = "x" ; then
 | 
						|
	BUILD_CFLAGS='-O2 -Wall'
 | 
						|
fi
 | 
						|
 | 
						|
if test "x$TARGET_CFLAGS" = "x" ; then
 | 
						|
	TARGET_CFLAGS='-O2 -Wall'
 | 
						|
fi
 | 
						|
 | 
						|
AC_ARG_WITH([objdir], AC_HELP_STRING([--with-objdir=<dir>],[select directory for object files]),
 | 
						|
	[ OBJDIR="$withval" ], [ OBJDIR="$OBJDIR" ])
 | 
						|
 | 
						|
AC_ARG_WITH([gamecube],
 | 
						|
		AC_HELP_STRING([--with-gamecube],[enable gamecube support]),
 | 
						|
		AC_DEFINE(WITH_GAMECUBE, 1,
 | 
						|
			[Define to include gamecube support]))
 | 
						|
 | 
						|
AC_ARG_WITH([zlib], AC_HELP_STRING([--without-zlib],[disable zlib support]),
 | 
						|
	[ with_zlib="$withval"], [ with_zlib=yes ] )
 | 
						|
 | 
						|
AC_ARG_WITH([lzma], AC_HELP_STRING([--without-lzma],[disable lzma support]),
 | 
						|
	[ with_lzma="$withval"], [ with_lzma=yes ] )
 | 
						|
 | 
						|
AC_ARG_WITH([xen], AC_HELP_STRING([--without-xen],
 | 
						|
	[disable extended xen support]), [ with_xen="$withval"], [ with_xen=yes ] )
 | 
						|
 | 
						|
AC_ARG_WITH([booke],
 | 
						|
		AC_HELP_STRING([--with-booke],[build for booke]),
 | 
						|
		AC_DEFINE(CONFIG_BOOKE,1,
 | 
						|
			[Define to build for BookE]))
 | 
						|
 | 
						|
dnl ---Programs
 | 
						|
dnl To specify a different compiler, just 'export CC=/path/to/compiler'
 | 
						|
if test "${build}" != "${host}" ; then
 | 
						|
	AC_CHECK_PROGS(BUILD_CC, [${build_alias}-gcc ${build}-gcc gcc])
 | 
						|
else
 | 
						|
	BUILD_CC="$CC"
 | 
						|
fi
 | 
						|
 | 
						|
dnl Find the compiler tool chain
 | 
						|
AC_PROG_CPP
 | 
						|
AC_CHECK_TOOL([LD], ld, "no", $PATH)
 | 
						|
AC_CHECK_TOOL([AS], as, "no", $PATH)
 | 
						|
AC_CHECK_TOOL([OBJCOPY], objcopy, "no", $PATH)
 | 
						|
AC_CHECK_TOOL([AR], ar, "", $PATH)
 | 
						|
AC_CHECK_TOOL([STRIP], strip, "no", $PATH)
 | 
						|
 | 
						|
dnl Find compiler for target
 | 
						|
if test "${target}" != "${host}" ; then
 | 
						|
	AC_CHECK_PROGS(TARGET_CC, [${target_alias}-gcc ${target}-gcc gcc])
 | 
						|
	AC_CHECK_PROGS(TARGET_LD, [${target_alias}-ld ${target}-ld ld])
 | 
						|
else
 | 
						|
	TARGET_CC="$CC"
 | 
						|
	TARGET_LD="$LD"
 | 
						|
fi
 | 
						|
 | 
						|
AC_MSG_CHECKING([whether $TARGET_CC accepts -fno-zero-initialized-in-bss])
 | 
						|
saved_CFLAGS="$CFLAGS"
 | 
						|
saved_CC="$CC"
 | 
						|
CC="$TARGET_CC"
 | 
						|
CFLAGS="$CFLAGS -fno-zero-initialized-in-bss"
 | 
						|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,,)],
 | 
						|
		  PURGATORY_EXTRA_CFLAGS="-fno-zero-initialized-in-bss"
 | 
						|
		  AC_MSG_RESULT([Yes]), AC_MSG_RESULT([No]))
 | 
						|
CFLAGS="$saved_CFLAGS"
 | 
						|
CC="$saved_CC"
 | 
						|
 | 
						|
AC_SUBST(PURGATORY_EXTRA_CFLAGS, [$PURGATORY_EXTRA_CFLAGS])
 | 
						|
 | 
						|
dnl Find the helper functions
 | 
						|
AC_PROG_INSTALL
 | 
						|
AC_CHECK_PROG([MKDIR],    mkdir,    mkdir,    "no", [$PATH])
 | 
						|
AC_CHECK_PROG([RM],       rm,       rm,       "no", [$PATH])
 | 
						|
AC_CHECK_PROG([CP],       cp,       cp,       "no", [$PATH])
 | 
						|
AC_CHECK_PROG([LN],       ln,       ln,       "no", [$PATH])
 | 
						|
AC_CHECK_PROG([TAR],      tar,      tar,      "no", [$PATH])
 | 
						|
AC_CHECK_PROG([RPMBUILD], rpmbuild, rpmbuild, "no", [$PATH])
 | 
						|
AC_CHECK_PROG([SED],      sed,      sed,      "no", [$PATH])
 | 
						|
AC_CHECK_PROG([FIND],     find,     find,     "no", [$PATH])
 | 
						|
AC_CHECK_PROG([XARGS],    xargs,    xargs,    "no", [$PATH])
 | 
						|
AC_CHECK_PROG([DIRNAME],  dirname,  dirname,  "no", [$PATH])
 | 
						|
 | 
						|
dnl See if I have a usable copy of zlib available
 | 
						|
if test "$with_zlib" = yes ; then
 | 
						|
	AC_CHECK_HEADER(zlib.h,
 | 
						|
		[AC_CHECK_LIB(z, inflateInit_, ,
 | 
						|
		AC_MSG_NOTICE([zlib support disabled]))])
 | 
						|
fi
 | 
						|
 | 
						|
dnl See if I have a usable copy of lzma available
 | 
						|
if test "$with_lzma" = yes ; then
 | 
						|
	AC_CHECK_HEADER(lzma.h,
 | 
						|
		[AC_CHECK_LIB(lzma, lzma_code, ,
 | 
						|
		AC_MSG_NOTICE([lzma support disabled]))])
 | 
						|
fi
 | 
						|
 | 
						|
dnl find Xen control stack libraries
 | 
						|
if test "$with_xen" = yes ; then
 | 
						|
	AC_CHECK_HEADER(xenctrl.h,
 | 
						|
		[AC_CHECK_LIB(xenctrl, xc_kexec_load, ,
 | 
						|
		AC_MSG_NOTICE([Xen support disabled]))])
 | 
						|
fi
 | 
						|
 | 
						|
dnl ---Sanity checks
 | 
						|
if test "$CC"      = "no"; then AC_MSG_ERROR([cc not found]); fi
 | 
						|
if test "$CPP"     = "no"; then AC_MSG_ERROR([cpp not found]); fi
 | 
						|
if test "$LD"      = "no"; then AC_MSG_ERROR([ld not found]); fi
 | 
						|
if test "$AS"      = "no"; then AC_MSG_ERROR([as not found]); fi
 | 
						|
if test "$OBJCOPY" = "no"; then	AC_MSG_ERROR([objcopy not found]); fi
 | 
						|
if test "$AR"      = "no"; then	AC_MSG_ERROR([ar not found]); fi
 | 
						|
 | 
						|
if test "$MKDIR"   = "no"; then AC_MSG_ERROR([ mkdir not found]); fi
 | 
						|
if test "$RM"      = "no"; then AC_MSG_ERROR([ rm not found]); fi
 | 
						|
if test "$CP"      = "no"; then AC_MSG_ERROR([ cp not found]); fi
 | 
						|
if test "$LN"      = "no"; then AC_MSG_ERROR([ ln not found]); fi
 | 
						|
if test "$TAR"     = "no"; then AC_MSG_ERROR([ tar not found]); fi
 | 
						|
if test "$RPM"     = "no"; then AC_MSG_ERROR([ rpm not found]); fi
 | 
						|
if test "$SED"     = "no"; then AC_MSG_ERROR([ sed not found]); fi
 | 
						|
if test "$FIND"    = "no"; then AC_MSG_ERROR([ find not found]); fi
 | 
						|
if test "$XARGS"   = "no"; then AC_MSG_ERROR([ xargs not found]); fi
 | 
						|
if test "$DIRNAME" = "no"; then AC_MSG_ERROR([ dirname not found]); fi
 | 
						|
if test "$STRIP"   = "no"; then AC_MSG_ERROR([ strip not found]); fi
 | 
						|
 | 
						|
dnl ---Output variables...
 | 
						|
AC_SUBST([BUILD_CC])
 | 
						|
AC_SUBST([BUILD_CFLAGS])
 | 
						|
AC_SUBST([TARGET_CC])
 | 
						|
AC_SUBST([TARGET_LD])
 | 
						|
AC_SUBST([TARGET_CFLAGS])
 | 
						|
AC_SUBST([ASFLAGS])
 | 
						|
 | 
						|
AC_SUBST([ARCH])
 | 
						|
AC_SUBST([SUBARCH])
 | 
						|
AC_SUBST([OBJDIR])
 | 
						|
AC_SUBST([INSTALL])
 | 
						|
 | 
						|
dnl ---Output
 | 
						|
AC_OUTPUT([Makefile])
 |