blob: f8a460b8cea19ff6efb57d2c0df5c2e445a5f3e0 [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 Geissler8f840682023-07-21 09:09:43 -050023 file://0001-make-src-string-const-in-strlcpy.patch \
Andrew Geissler82c905d2020-04-13 13:39:40 -050024 "
Andrew Geisslerfc113ea2023-03-31 09:59:46 -050025SRCREV = "f1cd581d1c4afa5b8ffdfaa6a3ea9f545fe4ec91"
Andrew Geissler82c905d2020-04-13 13:39:40 -050026
Patrick Williams03907ee2022-05-01 06:28:52 -050027SRC_URI[gdb.sha256sum] = "b33ad58d687487a821ec8d878daab0f716be60d0936f2e3ac5cf08419ce70350"
Andrew Geissler82c905d2020-04-13 13:39:40 -050028
29UPSTREAM_CHECK_URI = "https://github.com/crash-utility/crash/releases"
30
31inherit gettext
32
33BBCLASSEXTEND = "native cross"
Patrick Williams213cb262021-08-07 19:21:33 -050034TARGET_CC_ARCH:append = " ${SELECTED_OPTIMIZATION}"
Andrew Geissler82c905d2020-04-13 13:39:40 -050035
36# crash 7.1.3 and before don't support mips64/riscv64
Patrick Williams213cb262021-08-07 19:21:33 -050037COMPATIBLE_HOST:riscv64 = "null"
38COMPATIBLE_HOST:riscv32 = "null"
39COMPATIBLE_HOST:mipsarchn64 = "null"
40COMPATIBLE_HOST:mipsarchn32 = "null"
Andrew Geissler82c905d2020-04-13 13:39:40 -050041
42
43EXTRA_OEMAKE = 'RPMPKG="${PV}" \
44 GDB_TARGET="${TARGET_SYS}" \
45 GDB_HOST="${BUILD_SYS}" \
46 GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
47 LDFLAGS="${LDFLAGS}" \
48 '
49
Patrick Williams213cb262021-08-07 19:21:33 -050050EXTRA_OEMAKE:class-cross = 'RPMPKG="${PV}" \
Andrew Geissler82c905d2020-04-13 13:39:40 -050051 GDB_TARGET="${BUILD_SYS} --target=${TARGET_SYS}" \
52 GDB_HOST="${BUILD_SYS}" \
53 GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
54 '
55
Patrick Williams213cb262021-08-07 19:21:33 -050056EXTRA_OEMAKE:append:class-native = " LDFLAGS='${BUILD_LDFLAGS}'"
57EXTRA_OEMAKE:append:class-cross = " LDFLAGS='${BUILD_LDFLAGS}'"
Andrew Geissler82c905d2020-04-13 13:39:40 -050058
59do_configure() {
60 :
61}
62
Patrick Williams213cb262021-08-07 19:21:33 -050063do_compile:prepend() {
Andrew Geissler82c905d2020-04-13 13:39:40 -050064 case ${TARGET_ARCH} in
65 aarch64*) ARCH=ARM64 ;;
66 arm*) ARCH=ARM ;;
67 i*86*) ARCH=X86 ;;
68 x86_64*) ARCH=X86_64 ;;
69 powerpc64*) ARCH=PPC64 ;;
70 powerpc*) ARCH=PPC ;;
71 mips*) ARCH=MIPS ;;
72 esac
73
74 sed -i s/FORCE_DEFINE_ARCH/"${ARCH}"/g ${S}/configure.c
75 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 -050076 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 -050077 sed -i 's/>/>/g' ${S}/Makefile
78}
79
80do_compile() {
81 oe_runmake ${EXTRA_OEMAKE} RECIPE_SYSROOT=${RECIPE_SYSROOT}
82}
83
Patrick Williams213cb262021-08-07 19:21:33 -050084do_install:prepend () {
Andrew Geissler82c905d2020-04-13 13:39:40 -050085 install -d ${D}${bindir}
86 install -d ${D}/${mandir}/man8
87 install -d ${D}${includedir}/crash
88
89 install -m 0644 ${S}/crash.8 ${D}/${mandir}/man8/
90 install -m 0644 ${S}/defs.h ${D}${includedir}/crash
91}
92
Patrick Williams213cb262021-08-07 19:21:33 -050093do_install:class-target () {
Andrew Geissler82c905d2020-04-13 13:39:40 -050094 oe_runmake DESTDIR=${D} install
95}
96
Patrick Williams213cb262021-08-07 19:21:33 -050097do_install:class-native () {
Andrew Geissler82c905d2020-04-13 13:39:40 -050098 oe_runmake DESTDIR=${D}${STAGING_DIR_NATIVE} install
99}
100
Patrick Williams213cb262021-08-07 19:21:33 -0500101do_install:class-cross () {
Andrew Geissler82c905d2020-04-13 13:39:40 -0500102 install -m 0755 ${S}/crash ${D}/${bindir}
103}
104
Patrick Williams213cb262021-08-07 19:21:33 -0500105RDEPENDS:${PN} += "liblzma"
106RDEPENDS:${PN}:class-native = ""
107RDEPENDS:${PN}:class-cross = ""
Andrew Geissler82c905d2020-04-13 13:39:40 -0500108
109# Causes gcc to get stuck and eat all available memory in qemuarm builds
110# 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 -
111ARM_INSTRUCTION_SET = "arm"
112
113# http://errors.yoctoproject.org/Errors/Details/186964/
Patrick Williams213cb262021-08-07 19:21:33 -0500114COMPATIBLE_HOST:libc-musl = 'null'