1# the binaries are statically linked against klibc 2SUMMARY = "Kexec tools, statically compiled against klibc" 3AUTHOR = "Eric Biederman" 4HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kexec/" 5SECTION = "kernel/userland" 6LICENSE = "GPLv2" 7LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a \ 8 file://kexec/kexec.c;beginline=1;endline=20;md5=af10f6ae4a8715965e648aa687ad3e09" 9PV = "2.0.18+git${SRCPV}" 10 11DEPENDS = "zlib xz" 12 13inherit klibc autotools 14 15SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git" 16SRCREV = "5750980cdbbc33ef75bfba6660295b932376ce15" 17 18BUILD_PATCHES = "file://0001-force-static-build.patch \ 19 file://0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch" 20 21KLIBC_PATCHES += " \ 22 file://0003-kexec-elf-rel-use-our-elf.h.patch \ 23 file://0004-kexec-elf-exec.c-replace-with-our-err.h.patch \ 24 file://0005-crashdump-elf.c-work-around-for-sysconf-_SC_NPROCESS.patch \ 25 file://0006-kexec-syscall.h-work-around-missing-syscall-wrapper.patch \ 26 file://0007-kexec.c-add-guard-around-ENOTSUP.patch \ 27 file://0008-kexec.c-replace-mising-BLKGETSIZE64.patch \ 28 file://0009-vmcore-dmesg.c-work-around-missing-imaxdiv.patch \ 29 file://0010-fs2dt.c-work-around-missing-getline.patch \ 30 file://0011-purgatory-Makefile-adapt-to-klcc.patch \ 31 file://0012-purgatory-string.c-avoid-inclusion-of-string.h.patch \ 32 file://0013-sha256.h-avoid-inclusion-of-sys-types.h.patch \ 33 file://0014-add-if_nameindex-from-musl.patch \ 34 file://0015-vmcore-dmesg-fix-warning.patch \ 35 file://klibc-reboot.patch" 36 37WARNING_FIXES = "" 38FROM_OE_CORE = "file://arm_crashdump-fix-buffer-align.patch \ 39 file://powerpc_change-the-memory-size-limit.patch \ 40 file://kexec-x32.patch" 41 42SRC_URI += "${BUILD_PATCHES} ${KLIBC_PATCHES} ${WARNING_FIXES} ${FROM_OE_CORE}" 43 44SRC_URI_append_arm = " file://arm_crashdump.patch" 45 46SRC_URI_append_mips = " file://140-mips_disable_devicetree_support.patch" 47SRC_URI_append_mipsel = " file://140-mips_disable_devicetree_support.patch" 48 49SRC_URI_append_x86 = " file://x86_sys_io.patch file://x86_basename.patch \ 50 file://x86_vfscanf.patch file://x86_kexec_test.patch" 51 52SRC_URI_append_x86-64 = " file://x86_sys_io.patch file://x86_basename.patch \ 53 file://x86_vfscanf.patch file://x86_kexec_test.patch" 54 55SRC_URI_append_aarch64 = " file://arm64_kexec-image-header.h-add-missing-le64toh.patch \ 56 file://arm64-crashdump-arm64.c-fix-warning.patch \ 57 file://arm64_kexec-arm64.c-workaround-for-getrandom-syscall.patch" 58 59SRC_URI_append_powerpc = " file://powerpc-purgatory-Makefile-remove-unknown-flags.patch" 60 61S = "${WORKDIR}/git" 62 63EXTRA_OECONF += "--without-zlib --without-lzma --without-xen" 64 65# fix purgatory/printf.c:2:10: fatal error: limits.h: No such file or directory 66# fix include/limits.h:42:10: fatal error: bitsize/limits.h: No such file or directory 67COMMON_CFLAGS += "-O2 -I${STAGING_DIR_HOST}${libdir}/klibc/include -I${S}/purgatory/include" 68CFLAGS_x86_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32" 69CFLAGS_x86-64_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64" 70CFLAGS_arm_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32" 71CFLAGS_aarch64_append = "${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64" 72CFLAGS_mips_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32" 73CFLAGS_mipsel_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32" 74CFLAGS_mips64_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64" 75CFLAGS_mips64el_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64" 76CFLAGS_powerpc_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32" 77 78 79do_compile_prepend() { 80 # Remove the prepackaged config.h from the source tree as it overrides 81 # the same file generated by configure and placed in the build tree 82 rm -f ${S}/include/config.h 83 84 # Remove the '*.d' file to make sure the recompile is OK 85 for dep in `find ${B} -type f -name '*.d'`; do 86 dep_no_d="`echo $dep | sed 's#.d$##'`" 87 # Remove file.d when there is a file.o 88 if [ -f "$dep_no_d.o" ]; then 89 rm -f $dep 90 fi 91 done 92} 93 94PACKAGES =+ "kexec-klibc vmcore-dmesg-klibc" 95 96FILES_kexec-klibc = "${sbindir}/kexec" 97FILES_vmcore-dmesg-klibc = "${sbindir}/vmcore-dmesg" 98 99INSANE_SKIP_${PN} = "arch" 100 101COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|powerpc.*|mips.*)-(linux|freebsd.*)' 102