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