kexec-tools-klibc_git.bb 4.7 KB

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