Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 1 | SUMMARY = "Kernel analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles" |
| 2 | DESCRIPTION = "The core analysis suite is a self-contained tool that can be used to\ |
| 3 | investigate either live systems, kernel core dumps created from the\ |
| 4 | netdump, diskdump and kdump packages from Red Hat Linux, the mcore kernel patch\ |
| 5 | offered by Mission Critical Linux, or the LKCD kernel patch." |
| 6 | |
| 7 | HOMEPAGE = "http://people.redhat.com/anderson" |
| 8 | SECTION = "devel" |
| 9 | |
Andrew Geissler | 9aee500 | 2022-03-30 16:27:02 +0000 | [diff] [blame] | 10 | LICENSE = "GPL-3.0-only" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 11 | LIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504" |
| 12 | |
| 13 | DEPENDS = "zlib readline coreutils-native ncurses-native" |
| 14 | |
| 15 | S = "${WORKDIR}/git" |
Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 16 | SRC_URI = "git://github.com/crash-utility/${BPN}.git;branch=master;protocol=https \ |
Patrick Williams | 03907ee | 2022-05-01 06:28:52 -0500 | [diff] [blame] | 17 | ${GNU_MIRROR}/gdb/gdb-10.2.tar.gz;name=gdb;subdir=git \ |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 18 | file://7001force_define_architecture.patch \ |
| 19 | file://7003cross_ranlib.patch \ |
| 20 | file://0001-cross_add_configure_option.patch \ |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 21 | file://donnot-extract-gdb-during-do-compile.patch \ |
| 22 | file://gdb_build_jobs_and_not_write_crash_target.patch \ |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 23 | " |
Patrick Williams | 03907ee | 2022-05-01 06:28:52 -0500 | [diff] [blame] | 24 | SRCREV = "ec568e2ea515b66343d3488d5d4b9a625d55b7ae" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 25 | |
Patrick Williams | 03907ee | 2022-05-01 06:28:52 -0500 | [diff] [blame] | 26 | SRC_URI[gdb.sha256sum] = "b33ad58d687487a821ec8d878daab0f716be60d0936f2e3ac5cf08419ce70350" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 27 | |
| 28 | UPSTREAM_CHECK_URI = "https://github.com/crash-utility/crash/releases" |
| 29 | |
| 30 | inherit gettext |
| 31 | |
| 32 | BBCLASSEXTEND = "native cross" |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 33 | TARGET_CC_ARCH:append = " ${SELECTED_OPTIMIZATION}" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 34 | |
| 35 | # crash 7.1.3 and before don't support mips64/riscv64 |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 36 | COMPATIBLE_HOST:riscv64 = "null" |
| 37 | COMPATIBLE_HOST:riscv32 = "null" |
| 38 | COMPATIBLE_HOST:mipsarchn64 = "null" |
| 39 | COMPATIBLE_HOST:mipsarchn32 = "null" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 40 | |
| 41 | |
| 42 | EXTRA_OEMAKE = 'RPMPKG="${PV}" \ |
| 43 | GDB_TARGET="${TARGET_SYS}" \ |
| 44 | GDB_HOST="${BUILD_SYS}" \ |
| 45 | GDB_MAKE_JOBS="${PARALLEL_MAKE}" \ |
| 46 | LDFLAGS="${LDFLAGS}" \ |
| 47 | ' |
| 48 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 49 | EXTRA_OEMAKE:class-cross = 'RPMPKG="${PV}" \ |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 50 | GDB_TARGET="${BUILD_SYS} --target=${TARGET_SYS}" \ |
| 51 | GDB_HOST="${BUILD_SYS}" \ |
| 52 | GDB_MAKE_JOBS="${PARALLEL_MAKE}" \ |
| 53 | ' |
| 54 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 55 | EXTRA_OEMAKE:append:class-native = " LDFLAGS='${BUILD_LDFLAGS}'" |
| 56 | EXTRA_OEMAKE:append:class-cross = " LDFLAGS='${BUILD_LDFLAGS}'" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 57 | |
| 58 | do_configure() { |
| 59 | : |
| 60 | } |
| 61 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 62 | do_compile:prepend() { |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 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 |
Patrick Williams | 03907ee | 2022-05-01 06:28:52 -0500 | [diff] [blame] | 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 |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 76 | sed -i 's/>/>/g' ${S}/Makefile |
| 77 | } |
| 78 | |
| 79 | do_compile() { |
| 80 | oe_runmake ${EXTRA_OEMAKE} RECIPE_SYSROOT=${RECIPE_SYSROOT} |
| 81 | } |
| 82 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 83 | do_install:prepend () { |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 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 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 92 | do_install:class-target () { |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 93 | oe_runmake DESTDIR=${D} install |
| 94 | } |
| 95 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 96 | do_install:class-native () { |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 97 | oe_runmake DESTDIR=${D}${STAGING_DIR_NATIVE} install |
| 98 | } |
| 99 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 100 | do_install:class-cross () { |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 101 | install -m 0755 ${S}/crash ${D}/${bindir} |
| 102 | } |
| 103 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 104 | RDEPENDS:${PN} += "liblzma" |
| 105 | RDEPENDS:${PN}:class-native = "" |
| 106 | RDEPENDS:${PN}:class-cross = "" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 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 - |
| 110 | ARM_INSTRUCTION_SET = "arm" |
| 111 | |
| 112 | # http://errors.yoctoproject.org/Errors/Details/186964/ |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 113 | COMPATIBLE_HOST:libc-musl = 'null' |