1SUMMARY = "Kernel analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles" 2DESCRIPTION = "The core analysis suite is a self-contained tool that can be used to\ 3investigate either live systems, kernel core dumps created from the\ 4netdump, diskdump and kdump packages from Red Hat Linux, the mcore kernel patch\ 5offered by Mission Critical Linux, or the LKCD kernel patch." 6 7HOMEPAGE = "http://people.redhat.com/anderson" 8SECTION = "devel" 9 10LICENSE = "GPL-3.0-only" 11LIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504" 12 13DEPENDS = "zlib readline coreutils-native ncurses-native" 14 15S = "${WORKDIR}/git" 16SRC_URI = "git://github.com/crash-utility/${BPN}.git;branch=master;protocol=https \ 17 ${GNU_MIRROR}/gdb/gdb-10.2.tar.gz;name=gdb;subdir=git \ 18 file://7001force_define_architecture.patch \ 19 file://7003cross_ranlib.patch \ 20 file://0001-cross_add_configure_option.patch \ 21 file://donnot-extract-gdb-during-do-compile.patch \ 22 file://gdb_build_jobs_and_not_write_crash_target.patch \ 23 " 24SRCREV = "ec568e2ea515b66343d3488d5d4b9a625d55b7ae" 25 26SRC_URI[gdb.sha256sum] = "b33ad58d687487a821ec8d878daab0f716be60d0936f2e3ac5cf08419ce70350" 27 28UPSTREAM_CHECK_URI = "https://github.com/crash-utility/crash/releases" 29 30inherit gettext 31 32BBCLASSEXTEND = "native cross" 33TARGET_CC_ARCH:append = " ${SELECTED_OPTIMIZATION}" 34 35# crash 7.1.3 and before don't support mips64/riscv64 36COMPATIBLE_HOST:riscv64 = "null" 37COMPATIBLE_HOST:riscv32 = "null" 38COMPATIBLE_HOST:mipsarchn64 = "null" 39COMPATIBLE_HOST:mipsarchn32 = "null" 40 41 42EXTRA_OEMAKE = 'RPMPKG="${PV}" \ 43 GDB_TARGET="${TARGET_SYS}" \ 44 GDB_HOST="${BUILD_SYS}" \ 45 GDB_MAKE_JOBS="${PARALLEL_MAKE}" \ 46 LDFLAGS="${LDFLAGS}" \ 47 ' 48 49EXTRA_OEMAKE:class-cross = 'RPMPKG="${PV}" \ 50 GDB_TARGET="${BUILD_SYS} --target=${TARGET_SYS}" \ 51 GDB_HOST="${BUILD_SYS}" \ 52 GDB_MAKE_JOBS="${PARALLEL_MAKE}" \ 53 ' 54 55EXTRA_OEMAKE:append:class-native = " LDFLAGS='${BUILD_LDFLAGS}'" 56EXTRA_OEMAKE:append:class-cross = " LDFLAGS='${BUILD_LDFLAGS}'" 57 58do_configure() { 59 : 60} 61 62do_compile:prepend() { 63 case ${TARGET_ARCH} in 64 aarch64*) ARCH=ARM64 ;; 65 arm*) ARCH=ARM ;; 66 i*86*) ARCH=X86 ;; 67 x86_64*) ARCH=X86_64 ;; 68 powerpc64*) ARCH=PPC64 ;; 69 powerpc*) ARCH=PPC ;; 70 mips*) ARCH=MIPS ;; 71 esac 72 73 sed -i s/FORCE_DEFINE_ARCH/"${ARCH}"/g ${S}/configure.c 74 sed -i -e 's/#define TARGET_CFLAGS_ARM_ON_X86_64.*/#define TARGET_CFLAGS_ARM_ON_X86_64\t\"TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64\"/g' ${S}/configure.c 75 sed -i -e 's/#define TARGET_CFLAGS_MIPS_ON_X86_64.*/#define TARGET_CFLAGS_MIPS_ON_X86_64\t\"TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64\"/g' ${S}/configure.c 76 sed -i 's/>/>/g' ${S}/Makefile 77} 78 79do_compile() { 80 oe_runmake ${EXTRA_OEMAKE} RECIPE_SYSROOT=${RECIPE_SYSROOT} 81} 82 83do_install:prepend () { 84 install -d ${D}${bindir} 85 install -d ${D}/${mandir}/man8 86 install -d ${D}${includedir}/crash 87 88 install -m 0644 ${S}/crash.8 ${D}/${mandir}/man8/ 89 install -m 0644 ${S}/defs.h ${D}${includedir}/crash 90} 91 92do_install:class-target () { 93 oe_runmake DESTDIR=${D} install 94} 95 96do_install:class-native () { 97 oe_runmake DESTDIR=${D}${STAGING_DIR_NATIVE} install 98} 99 100do_install:class-cross () { 101 install -m 0755 ${S}/crash ${D}/${bindir} 102} 103 104RDEPENDS:${PN} += "liblzma" 105RDEPENDS:${PN}:class-native = "" 106RDEPENDS:${PN}:class-cross = "" 107 108# Causes gcc to get stuck and eat all available memory in qemuarm builds 109# jenkins 15161 100 12.5 10389596 10321284 ? R 11:40 28:17 /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/cc1 -quiet -I . -I . -I ./common -I ./config -I ./../include/opcode -I ./../opcodes/.. -I ./../readline/.. -I ../bfd -I ./../bfd -I ./../include -I ../libdecnumber -I ./../libdecnumber -I ./gnulib/import -I build-gnulib/import -isysroot /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemuarm -MMD eval.d -MF .deps/eval.Tpo -MP -MT eval.o -D LOCALEDIR="/usr/local/share/locale" -D CRASH_MERGE -D HAVE_CONFIG_H -D TUI=1 eval.c -quiet -dumpbase eval.c -march=armv5te -mthumb -mthumb-interwork -mtls-dialect=gnu -auxbase-strip eval.o -g -O2 -Wall -Wpointer-arith -Wformat-nonliteral -Wno-pointer-sign -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Wdeclaration-after-statement -Wempty-body -feliminate-unused-debug-types -o - 110ARM_INSTRUCTION_SET = "arm" 111 112# http://errors.yoctoproject.org/Errors/Details/186964/ 113COMPATIBLE_HOST:libc-musl = 'null' 114