blob: c72b1a32116fe96cdb3faf1ef6e7780ce475a139 [file] [log] [blame]
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001SUMMARY = "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 = "GPLv3"
11LIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504"
12
13DEPENDS = "zlib readline coreutils-native"
14
15SRC_URI = "https://github.com/crash-utility/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
16 http://ftp.gnu.org/gnu/gdb/gdb-7.6.tar.gz;name=gdb;subdir=${BP} \
17 file://7001force_define_architecture.patch \
18 file://7003cross_ranlib.patch \
19 file://0001-cross_add_configure_option.patch \
20 file://sim-ppc-drop-LIBS-from-psim-dependency.patch \
21 file://sim-common-sim-arange-fix-extern-inline-handling.patch \
22 file://donnot-extract-gdb-during-do-compile.patch \
23 file://gdb_build_jobs_and_not_write_crash_target.patch \
24 file://remove-unrecognized-gcc-option-m32-for-mips.patch \
25 file://0002-crash-fix-build-error-unknown-type-name-gdb_fpregset.patch \
26 file://0003-crash-detect-the-sysroot-s-glibc-header-file.patch \
27 "
28SRC_URI[md5sum] = "4f66eb0e9a82ff83de06ac2b37501f5c"
29SRC_URI[sha256sum] = "85ca2e93f1ee628ef2499ab9c78623f8b04500bdf7378c09de19283f6a7a698f"
30
31SRC_URI[gdb.md5sum] = "a9836707337e5f7bf76a009a8904f470"
32SRC_URI[gdb.sha256sum] = "8070389a5dcc104eb0be483d582729f98ed4d761ad19cedd3f17b5d2502faa36"
33
34UPSTREAM_CHECK_URI = "https://github.com/crash-utility/crash/releases"
35
36inherit gettext
37
38BBCLASSEXTEND = "native cross"
39TARGET_CC_ARCH_append = " ${SELECTED_OPTIMIZATION}"
40
41# crash 7.1.3 and before don't support mips64
42COMPATIBLE_HOST = "^(?!mips64).*"
43
44EXTRA_OEMAKE = 'RPMPKG="${PV}" \
45 GDB_TARGET="${TARGET_SYS}" \
46 GDB_HOST="${BUILD_SYS}" \
47 GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
48 LDFLAGS="${LDFLAGS}" \
49 '
50
51EXTRA_OEMAKE_class-cross = 'RPMPKG="${PV}" \
52 GDB_TARGET="${BUILD_SYS} \
53 \${GDB_CONF_FLAGS} \
54 --target=${TARGET_SYS}" \
55 GDB_HOST="${BUILD_SYS}" \
56 GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
57 '
58
59EXTRA_OEMAKE_append_class-native = " LDFLAGS='${BUILD_LDFLAGS}'"
60EXTRA_OEMAKE_append_class-cross = " LDFLAGS='${BUILD_LDFLAGS}'"
61
62REMOVE_M32 = "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"
63
64REMOVE_M32_class-cross = ""
65
66do_configure() {
67 :
68}
69
70do_compile_prepend() {
71 case ${TARGET_ARCH} in
72 aarch64*) ARCH=ARM64 ;;
73 arm*) ARCH=ARM ;;
74 i*86*) ARCH=X86 ;;
75 x86_64*) ARCH=X86_64 ;;
76 powerpc64*) ARCH=PPC64 ;;
77 powerpc*) ARCH=PPC ;;
78 mips*) ARCH=MIPS ;;
79 esac
80
81 sed -i s/FORCE_DEFINE_ARCH/"${ARCH}"/g ${S}/configure.c
82 ${REMOVE_M32}
83 sed -i 's/>/>/g' ${S}/Makefile
84}
85
86do_compile() {
87 oe_runmake ${EXTRA_OEMAKE} RECIPE_SYSROOT=${RECIPE_SYSROOT}
88}
89
90do_install_prepend () {
91 install -d ${D}${bindir}
92 install -d ${D}/${mandir}/man8
93 install -d ${D}${includedir}/crash
94
95 install -m 0644 ${S}/crash.8 ${D}/${mandir}/man8/
96 install -m 0644 ${S}/defs.h ${D}${includedir}/crash
97}
98
99do_install_class-target () {
100 oe_runmake DESTDIR=${D} install
101}
102
103do_install_class-native () {
104 oe_runmake DESTDIR=${D}${STAGING_DIR_NATIVE} install
105}
106
107do_install_class-cross () {
108 install -m 0755 ${S}/crash ${D}/${bindir}
109}
110
111RDEPENDS_${PN} += "liblzma"
112RDEPENDS_${PN}_class-native = ""
113RDEPENDS_${PN}_class-cross = ""
114
115# Causes gcc to get stuck and eat all available memory in qemuarm builds
116# 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 -
117ARM_INSTRUCTION_SET = "arm"
118
119# http://errors.yoctoproject.org/Errors/Details/186964/
120EXCLUDE_FROM_WORLD_libc-musl = "1"