1*4882a593SmuzhiyunSUMMARY = "Kernel analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles" 2*4882a593SmuzhiyunDESCRIPTION = "The core analysis suite is a self-contained tool that can be used to\ 3*4882a593Smuzhiyuninvestigate either live systems, kernel core dumps created from the\ 4*4882a593Smuzhiyunnetdump, diskdump and kdump packages from Red Hat Linux, the mcore kernel patch\ 5*4882a593Smuzhiyunoffered by Mission Critical Linux, or the LKCD kernel patch." 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunHOMEPAGE = "http://people.redhat.com/anderson" 8*4882a593SmuzhiyunSECTION = "devel" 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunLICENSE = "GPL-3.0-only" 11*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504" 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunDEPENDS = "zlib readline coreutils-native ncurses-native" 14*4882a593Smuzhiyun 15*4882a593SmuzhiyunS = "${WORKDIR}/git" 16*4882a593SmuzhiyunSRC_URI = "git://github.com/crash-utility/${BPN}.git;branch=master;protocol=https \ 17*4882a593Smuzhiyun ${GNU_MIRROR}/gdb/gdb-10.2.tar.gz;name=gdb;subdir=git \ 18*4882a593Smuzhiyun file://7001force_define_architecture.patch \ 19*4882a593Smuzhiyun file://7003cross_ranlib.patch \ 20*4882a593Smuzhiyun file://0001-cross_add_configure_option.patch \ 21*4882a593Smuzhiyun file://donnot-extract-gdb-during-do-compile.patch \ 22*4882a593Smuzhiyun file://gdb_build_jobs_and_not_write_crash_target.patch \ 23*4882a593Smuzhiyun " 24*4882a593SmuzhiyunSRCREV = "ec568e2ea515b66343d3488d5d4b9a625d55b7ae" 25*4882a593Smuzhiyun 26*4882a593SmuzhiyunSRC_URI[gdb.sha256sum] = "b33ad58d687487a821ec8d878daab0f716be60d0936f2e3ac5cf08419ce70350" 27*4882a593Smuzhiyun 28*4882a593SmuzhiyunUPSTREAM_CHECK_URI = "https://github.com/crash-utility/crash/releases" 29*4882a593Smuzhiyun 30*4882a593Smuzhiyuninherit gettext 31*4882a593Smuzhiyun 32*4882a593SmuzhiyunBBCLASSEXTEND = "native cross" 33*4882a593SmuzhiyunTARGET_CC_ARCH:append = " ${SELECTED_OPTIMIZATION}" 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun# crash 7.1.3 and before don't support mips64/riscv64 36*4882a593SmuzhiyunCOMPATIBLE_HOST:riscv64 = "null" 37*4882a593SmuzhiyunCOMPATIBLE_HOST:riscv32 = "null" 38*4882a593SmuzhiyunCOMPATIBLE_HOST:mipsarchn64 = "null" 39*4882a593SmuzhiyunCOMPATIBLE_HOST:mipsarchn32 = "null" 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun 42*4882a593SmuzhiyunEXTRA_OEMAKE = 'RPMPKG="${PV}" \ 43*4882a593Smuzhiyun GDB_TARGET="${TARGET_SYS}" \ 44*4882a593Smuzhiyun GDB_HOST="${BUILD_SYS}" \ 45*4882a593Smuzhiyun GDB_MAKE_JOBS="${PARALLEL_MAKE}" \ 46*4882a593Smuzhiyun LDFLAGS="${LDFLAGS}" \ 47*4882a593Smuzhiyun ' 48*4882a593Smuzhiyun 49*4882a593SmuzhiyunEXTRA_OEMAKE:class-cross = 'RPMPKG="${PV}" \ 50*4882a593Smuzhiyun GDB_TARGET="${BUILD_SYS} --target=${TARGET_SYS}" \ 51*4882a593Smuzhiyun GDB_HOST="${BUILD_SYS}" \ 52*4882a593Smuzhiyun GDB_MAKE_JOBS="${PARALLEL_MAKE}" \ 53*4882a593Smuzhiyun ' 54*4882a593Smuzhiyun 55*4882a593SmuzhiyunEXTRA_OEMAKE:append:class-native = " LDFLAGS='${BUILD_LDFLAGS}'" 56*4882a593SmuzhiyunEXTRA_OEMAKE:append:class-cross = " LDFLAGS='${BUILD_LDFLAGS}'" 57*4882a593Smuzhiyun 58*4882a593Smuzhiyundo_configure() { 59*4882a593Smuzhiyun : 60*4882a593Smuzhiyun} 61*4882a593Smuzhiyun 62*4882a593Smuzhiyundo_compile:prepend() { 63*4882a593Smuzhiyun case ${TARGET_ARCH} in 64*4882a593Smuzhiyun aarch64*) ARCH=ARM64 ;; 65*4882a593Smuzhiyun arm*) ARCH=ARM ;; 66*4882a593Smuzhiyun i*86*) ARCH=X86 ;; 67*4882a593Smuzhiyun x86_64*) ARCH=X86_64 ;; 68*4882a593Smuzhiyun powerpc64*) ARCH=PPC64 ;; 69*4882a593Smuzhiyun powerpc*) ARCH=PPC ;; 70*4882a593Smuzhiyun mips*) ARCH=MIPS ;; 71*4882a593Smuzhiyun esac 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun sed -i s/FORCE_DEFINE_ARCH/"${ARCH}"/g ${S}/configure.c 74*4882a593Smuzhiyun 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*4882a593Smuzhiyun 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*4882a593Smuzhiyun sed -i 's/>/>/g' ${S}/Makefile 77*4882a593Smuzhiyun} 78*4882a593Smuzhiyun 79*4882a593Smuzhiyundo_compile() { 80*4882a593Smuzhiyun oe_runmake ${EXTRA_OEMAKE} RECIPE_SYSROOT=${RECIPE_SYSROOT} 81*4882a593Smuzhiyun} 82*4882a593Smuzhiyun 83*4882a593Smuzhiyundo_install:prepend () { 84*4882a593Smuzhiyun install -d ${D}${bindir} 85*4882a593Smuzhiyun install -d ${D}/${mandir}/man8 86*4882a593Smuzhiyun install -d ${D}${includedir}/crash 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun install -m 0644 ${S}/crash.8 ${D}/${mandir}/man8/ 89*4882a593Smuzhiyun install -m 0644 ${S}/defs.h ${D}${includedir}/crash 90*4882a593Smuzhiyun} 91*4882a593Smuzhiyun 92*4882a593Smuzhiyundo_install:class-target () { 93*4882a593Smuzhiyun oe_runmake DESTDIR=${D} install 94*4882a593Smuzhiyun} 95*4882a593Smuzhiyun 96*4882a593Smuzhiyundo_install:class-native () { 97*4882a593Smuzhiyun oe_runmake DESTDIR=${D}${STAGING_DIR_NATIVE} install 98*4882a593Smuzhiyun} 99*4882a593Smuzhiyun 100*4882a593Smuzhiyundo_install:class-cross () { 101*4882a593Smuzhiyun install -m 0755 ${S}/crash ${D}/${bindir} 102*4882a593Smuzhiyun} 103*4882a593Smuzhiyun 104*4882a593SmuzhiyunRDEPENDS:${PN} += "liblzma" 105*4882a593SmuzhiyunRDEPENDS:${PN}:class-native = "" 106*4882a593SmuzhiyunRDEPENDS:${PN}:class-cross = "" 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun# Causes gcc to get stuck and eat all available memory in qemuarm builds 109*4882a593Smuzhiyun# 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 - 110*4882a593SmuzhiyunARM_INSTRUCTION_SET = "arm" 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun# http://errors.yoctoproject.org/Errors/Details/186964/ 113*4882a593SmuzhiyunCOMPATIBLE_HOST:libc-musl = 'null' 114