blob: 55de6a604b74c82e649c7510cefe918cbd3e9c30 [file] [log] [blame]
Andrew Geissler82c905d2020-04-13 13:39:40 -05001SUMMARY = "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
Andrew Geissler9aee5002022-03-30 16:27:02 +000010LICENSE = "GPL-3.0-only"
Andrew Geissler82c905d2020-04-13 13:39:40 -050011LIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504"
12
13DEPENDS = "zlib readline coreutils-native ncurses-native"
14
15S = "${WORKDIR}/git"
Andrew Geissler595f6302022-01-24 19:11:47 +000016SRC_URI = "git://github.com/crash-utility/${BPN}.git;branch=master;protocol=https \
Patrick Williams03907ee2022-05-01 06:28:52 -050017 ${GNU_MIRROR}/gdb/gdb-10.2.tar.gz;name=gdb;subdir=git \
Andrew Geissler82c905d2020-04-13 13:39:40 -050018 file://7001force_define_architecture.patch \
19 file://7003cross_ranlib.patch \
20 file://0001-cross_add_configure_option.patch \
Andrew Geissler82c905d2020-04-13 13:39:40 -050021 file://donnot-extract-gdb-during-do-compile.patch \
22 file://gdb_build_jobs_and_not_write_crash_target.patch \
Andrew Geissler82c905d2020-04-13 13:39:40 -050023 "
Patrick Williams03907ee2022-05-01 06:28:52 -050024SRCREV = "ec568e2ea515b66343d3488d5d4b9a625d55b7ae"
Andrew Geissler82c905d2020-04-13 13:39:40 -050025
Patrick Williams03907ee2022-05-01 06:28:52 -050026SRC_URI[gdb.sha256sum] = "b33ad58d687487a821ec8d878daab0f716be60d0936f2e3ac5cf08419ce70350"
Andrew Geissler82c905d2020-04-13 13:39:40 -050027
28UPSTREAM_CHECK_URI = "https://github.com/crash-utility/crash/releases"
29
30inherit gettext
31
32BBCLASSEXTEND = "native cross"
Patrick Williams213cb262021-08-07 19:21:33 -050033TARGET_CC_ARCH:append = " ${SELECTED_OPTIMIZATION}"
Andrew Geissler82c905d2020-04-13 13:39:40 -050034
35# crash 7.1.3 and before don't support mips64/riscv64
Patrick Williams213cb262021-08-07 19:21:33 -050036COMPATIBLE_HOST:riscv64 = "null"
37COMPATIBLE_HOST:riscv32 = "null"
38COMPATIBLE_HOST:mipsarchn64 = "null"
39COMPATIBLE_HOST:mipsarchn32 = "null"
Andrew Geissler82c905d2020-04-13 13:39:40 -050040
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
Patrick Williams213cb262021-08-07 19:21:33 -050049EXTRA_OEMAKE:class-cross = 'RPMPKG="${PV}" \
Andrew Geissler82c905d2020-04-13 13:39:40 -050050 GDB_TARGET="${BUILD_SYS} --target=${TARGET_SYS}" \
51 GDB_HOST="${BUILD_SYS}" \
52 GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
53 '
54
Patrick Williams213cb262021-08-07 19:21:33 -050055EXTRA_OEMAKE:append:class-native = " LDFLAGS='${BUILD_LDFLAGS}'"
56EXTRA_OEMAKE:append:class-cross = " LDFLAGS='${BUILD_LDFLAGS}'"
Andrew Geissler82c905d2020-04-13 13:39:40 -050057
58do_configure() {
59 :
60}
61
Patrick Williams213cb262021-08-07 19:21:33 -050062do_compile:prepend() {
Andrew Geissler82c905d2020-04-13 13:39:40 -050063 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 Williams03907ee2022-05-01 06:28:52 -050075 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 Geissler82c905d2020-04-13 13:39:40 -050076 sed -i 's/>/>/g' ${S}/Makefile
77}
78
79do_compile() {
80 oe_runmake ${EXTRA_OEMAKE} RECIPE_SYSROOT=${RECIPE_SYSROOT}
81}
82
Patrick Williams213cb262021-08-07 19:21:33 -050083do_install:prepend () {
Andrew Geissler82c905d2020-04-13 13:39:40 -050084 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 Williams213cb262021-08-07 19:21:33 -050092do_install:class-target () {
Andrew Geissler82c905d2020-04-13 13:39:40 -050093 oe_runmake DESTDIR=${D} install
94}
95
Patrick Williams213cb262021-08-07 19:21:33 -050096do_install:class-native () {
Andrew Geissler82c905d2020-04-13 13:39:40 -050097 oe_runmake DESTDIR=${D}${STAGING_DIR_NATIVE} install
98}
99
Patrick Williams213cb262021-08-07 19:21:33 -0500100do_install:class-cross () {
Andrew Geissler82c905d2020-04-13 13:39:40 -0500101 install -m 0755 ${S}/crash ${D}/${bindir}
102}
103
Patrick Williams213cb262021-08-07 19:21:33 -0500104RDEPENDS:${PN} += "liblzma"
105RDEPENDS:${PN}:class-native = ""
106RDEPENDS:${PN}:class-cross = ""
Andrew Geissler82c905d2020-04-13 13:39:40 -0500107
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/
Patrick Williams213cb262021-08-07 19:21:33 -0500113COMPATIBLE_HOST:libc-musl = 'null'