blob: d40937e939312c08921b0a6359a9980844b98030 [file] [log] [blame]
Brad Bishopd7bf8c12018-02-25 22:55:05 -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
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 file://0004-crash-fix-build-failure-with-mips.patch \
28 "
29SRC_URI[md5sum] = "f3b44a151dbe7046462b9caaa9847ca6"
30SRC_URI[sha256sum] = "c48e1269443a6a8e8337e328b21b03e4e50248f607eed83fbb27eb0d833d6aa4"
31
32SRC_URI[gdb.md5sum] = "a9836707337e5f7bf76a009a8904f470"
33SRC_URI[gdb.sha256sum] = "8070389a5dcc104eb0be483d582729f98ed4d761ad19cedd3f17b5d2502faa36"
34
35inherit gettext
36
37BBCLASSEXTEND = "native cross"
38TARGET_CC_ARCH_append = " ${SELECTED_OPTIMIZATION}"
39
40# crash 7.1.3 and before don't support mips64
41COMPATIBLE_HOST = "^(?!mips64).*"
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
50EXTRA_OEMAKE_class-cross = 'RPMPKG="${PV}" \
51 GDB_TARGET="${BUILD_SYS} \
52 \${GDB_CONF_FLAGS} \
53 --target=${TARGET_SYS}" \
54 GDB_HOST="${BUILD_SYS}" \
55 GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
56 '
57
58EXTRA_OEMAKE_append_class-native = " LDFLAGS='${BUILD_LDFLAGS}'"
59EXTRA_OEMAKE_append_class-cross = " LDFLAGS='${BUILD_LDFLAGS}'"
60
61REMOVE_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"
62
63REMOVE_M32_class-cross = ""
64
65do_configure() {
66 :
67}
68
69do_compile_prepend() {
70 case ${TARGET_ARCH} in
71 aarch64*) ARCH=ARM64 ;;
72 arm*) ARCH=ARM ;;
73 i*86*) ARCH=X86 ;;
74 x86_64*) ARCH=X86_64 ;;
75 powerpc64*) ARCH=PPC64 ;;
76 powerpc*) ARCH=PPC ;;
77 mips*) ARCH=MIPS ;;
78 esac
79
80 sed -i s/FORCE_DEFINE_ARCH/"${ARCH}"/g ${S}/configure.c
81 ${REMOVE_M32}
82 sed -i 's/>/>/g' ${S}/Makefile
83}
84
85do_compile() {
86 oe_runmake ${EXTRA_OEMAKE} RECIPE_SYSROOT=${RECIPE_SYSROOT}
87}
88
89do_install_prepend () {
90 install -d ${D}${bindir}
91 install -d ${D}/${mandir}/man8
92 install -d ${D}${includedir}/crash
93
94 install -m 0644 ${S}/crash.8 ${D}/${mandir}/man8/
95 install -m 0644 ${S}/defs.h ${D}${includedir}/crash
96}
97
98do_install_class-target () {
99 oe_runmake DESTDIR=${D} install
100}
101
102do_install_class-native () {
103 oe_runmake DESTDIR=${D}${STAGING_DIR_NATIVE} install
104}
105
106do_install_class-cross () {
107 install -m 0755 ${S}/crash ${D}/${bindir}
108}
109
110RDEPENDS_${PN} += "liblzma"
111RDEPENDS_${PN}_class-native = ""
112RDEPENDS_${PN}_class-cross = ""
113
114# Causes gcc to get stuck and eat all available memory in qemuarm builds
115# 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 -
116ARM_INSTRUCTION_SET = "arm"