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