From e22a87046f51e40972d732377505e62f9940d874 Mon Sep 17 00:00:00 2001 From: Andrea Adami Date: Mon, 14 May 2018 00:17:30 +0200 Subject: kexec-tools-klibc: upgrade from v. 2.0.2 to 2.0.17 This version does support aarch64. Ad klibc-specific patchset and track the git repository to get the (many) fixes for the warnings. Signed-off-by: Andrea Adami Signed-off-by: Armin Kuster --- .../recipes-kernel/kexec/kexec-tools-klibc_git.bb | 92 ++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb (limited to 'meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb') diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb new file mode 100644 index 0000000000..14edec2d12 --- /dev/null +++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb @@ -0,0 +1,92 @@ +# the binaries are statically linked against klibc +SUMMARY = "Kexec tools, statically compiled against klibc" +AUTHOR = "Eric Biederman" +HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kexec/" +SECTION = "kernel/userland" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a \ + file://kexec/kexec.c;beginline=1;endline=20;md5=af10f6ae4a8715965e648aa687ad3e09" +PV = "2.0.17+git${SRCPV}" + +DEPENDS = "zlib xz" + +inherit klibc autotools + +SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git" +SRCREV = "0481e9ed61ef80b3d851bb96b0c70a3d4a112c8b" + +BUILD_PATCHES = "file://0001-force-static-build.patch \ + file://0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch" + +KLIBC_PATCHES += " \ + file://0003-kexec-elf-rel-use-our-elf.h.patch \ + file://0004-kexec-elf-exec.c-replace-with-our-err.h.patch \ + file://0005-crashdump-elf.c-work-around-for-sysconf-_SC_NPROCESS.patch \ + file://0006-kexec-syscall.h-work-around-missing-syscall-wrapper.patch \ + file://0007-kexec.c-add-guard-around-ENOTSUP.patch \ + file://0008-kexec.c-replace-mising-BLKGETSIZE64.patch \ + file://0009-vmcore-dmesg.c-work-around-missing-imaxdiv.patch \ + file://0010-fs2dt.c-work-around-missing-getline.patch \ + file://0011-purgatory-Makefile-adapt-to-klcc.patch \ + file://0012-purgatory-string.c-avoid-inclusion-of-string.h.patch \ + file://0013-sha256.h-avoid-inclusion-of-sys-types.h.patch \ + file://0014-add-if_nameindex-from-musl.patch \ + file://0015-vmcore-dmesg-fix-warning.patch" + +WARNING_FIXES = "" + +SRC_URI += "${BUILD_PATCHES} ${KLIBC_PATCHES} ${WARNING_FIXES}" + +SRC_URI_append_arm = " file://arm_crashdump.patch" + +SRC_URI_append_x86 = " file://x86_sys_io.patch file://x86_basename.patch \ + file://x86_vfscanf.patch file://x86_kexec_test.patch" + +SRC_URI_append_x86-64 = " file://x86_sys_io.patch file://x86_basename.patch \ + file://x86_vfscanf.patch file://x86_kexec_test.patch \ + file://x86-64-purgatory-Makefile-remove-unknown-flags.patch" + +SRC_URI_append_aarch64 = " file://arm64_purgatory-Makefile-remove-unknown-flags.patch \ + file://arm64_kexec-image-header.h-add-missing-le64toh.patch \ + file://arm64-crashdump-arm64.c-fix-warning.patch" + +SRC_URI_append_powerpc = " file://powerpc-purgatory-Makefile-remove-unknown-flags.patch" + +S = "${WORKDIR}/git" + +EXTRA_OECONF += "--without-zlib --without-lzma --without-xen" + +# fix purgatory/printf.c:2:10: fatal error: limits.h: No such file or directory +# fix include/limits.h:42:10: fatal error: bitsize/limits.h: No such file or directory +COMMON_CFLAGS += "-I${STAGING_DIR_HOST}${libdir}/klibc/include -I${S}/purgatory/include" +CFLAGS_x86_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32" +CFLAGS_x86-64_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64" +CFLAGS_arm_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32" +CFLAGS_aarch64_append = "${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64" +CFLAGS_mips_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32" +CFLAGS_mips64_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64" +CFLAGS_powerpc_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32" + +do_compile_prepend() { + # Remove the prepackaged config.h from the source tree as it overrides + # the same file generated by configure and placed in the build tree + rm -f ${S}/include/config.h + + # Remove the '*.d' file to make sure the recompile is OK + for dep in `find ${B} -type f -name '*.d'`; do + dep_no_d="`echo $dep | sed 's#.d$##'`" + # Remove file.d when there is a file.o + if [ -f "$dep_no_d.o" ]; then + rm -f $dep + fi + done +} + +PACKAGES =+ "kexec-klibc kdump-klibc" + +FILES_kexec-klibc = "${sbindir}/kexec" +FILES_kdump-klibc = "${sbindir}/kdump" + +INSANE_SKIP_${PN} = "arch" + +COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|powerpc.*|mips.*)-(linux|freebsd.*)' -- cgit 1.2.3-korg