xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-oe/recipes-kernel/crash/crash_8.0.0.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSUMMARY = "Kernel analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles"
2*4882a593SmuzhiyunDESCRIPTION = "The core analysis suite is a self-contained tool that can be used to\
3*4882a593Smuzhiyuninvestigate either live systems, kernel core dumps created from the\
4*4882a593Smuzhiyunnetdump, diskdump and kdump packages from Red Hat Linux, the mcore kernel patch\
5*4882a593Smuzhiyunoffered by Mission Critical Linux, or the LKCD kernel patch."
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunHOMEPAGE = "http://people.redhat.com/anderson"
8*4882a593SmuzhiyunSECTION = "devel"
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunLICENSE = "GPL-3.0-only"
11*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504"
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunDEPENDS = "zlib readline coreutils-native ncurses-native"
14*4882a593Smuzhiyun
15*4882a593SmuzhiyunS = "${WORKDIR}/git"
16*4882a593SmuzhiyunSRC_URI = "git://github.com/crash-utility/${BPN}.git;branch=master;protocol=https \
17*4882a593Smuzhiyun           ${GNU_MIRROR}/gdb/gdb-10.2.tar.gz;name=gdb;subdir=git \
18*4882a593Smuzhiyun           file://7001force_define_architecture.patch \
19*4882a593Smuzhiyun           file://7003cross_ranlib.patch \
20*4882a593Smuzhiyun           file://0001-cross_add_configure_option.patch \
21*4882a593Smuzhiyun           file://donnot-extract-gdb-during-do-compile.patch \
22*4882a593Smuzhiyun           file://gdb_build_jobs_and_not_write_crash_target.patch \
23*4882a593Smuzhiyun           "
24*4882a593SmuzhiyunSRCREV = "ec568e2ea515b66343d3488d5d4b9a625d55b7ae"
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunSRC_URI[gdb.sha256sum] = "b33ad58d687487a821ec8d878daab0f716be60d0936f2e3ac5cf08419ce70350"
27*4882a593Smuzhiyun
28*4882a593SmuzhiyunUPSTREAM_CHECK_URI = "https://github.com/crash-utility/crash/releases"
29*4882a593Smuzhiyun
30*4882a593Smuzhiyuninherit gettext
31*4882a593Smuzhiyun
32*4882a593SmuzhiyunBBCLASSEXTEND = "native cross"
33*4882a593SmuzhiyunTARGET_CC_ARCH:append = " ${SELECTED_OPTIMIZATION}"
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun# crash 7.1.3 and before don't support mips64/riscv64
36*4882a593SmuzhiyunCOMPATIBLE_HOST:riscv64 = "null"
37*4882a593SmuzhiyunCOMPATIBLE_HOST:riscv32 = "null"
38*4882a593SmuzhiyunCOMPATIBLE_HOST:mipsarchn64 = "null"
39*4882a593SmuzhiyunCOMPATIBLE_HOST:mipsarchn32 = "null"
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun
42*4882a593SmuzhiyunEXTRA_OEMAKE = 'RPMPKG="${PV}" \
43*4882a593Smuzhiyun                GDB_TARGET="${TARGET_SYS}" \
44*4882a593Smuzhiyun                GDB_HOST="${BUILD_SYS}" \
45*4882a593Smuzhiyun                GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
46*4882a593Smuzhiyun                LDFLAGS="${LDFLAGS}" \
47*4882a593Smuzhiyun                '
48*4882a593Smuzhiyun
49*4882a593SmuzhiyunEXTRA_OEMAKE:class-cross = 'RPMPKG="${PV}" \
50*4882a593Smuzhiyun                            GDB_TARGET="${BUILD_SYS} --target=${TARGET_SYS}" \
51*4882a593Smuzhiyun                            GDB_HOST="${BUILD_SYS}" \
52*4882a593Smuzhiyun                            GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
53*4882a593Smuzhiyun                            '
54*4882a593Smuzhiyun
55*4882a593SmuzhiyunEXTRA_OEMAKE:append:class-native = " LDFLAGS='${BUILD_LDFLAGS}'"
56*4882a593SmuzhiyunEXTRA_OEMAKE:append:class-cross = " LDFLAGS='${BUILD_LDFLAGS}'"
57*4882a593Smuzhiyun
58*4882a593Smuzhiyundo_configure() {
59*4882a593Smuzhiyun    :
60*4882a593Smuzhiyun}
61*4882a593Smuzhiyun
62*4882a593Smuzhiyundo_compile:prepend() {
63*4882a593Smuzhiyun    case ${TARGET_ARCH} in
64*4882a593Smuzhiyun        aarch64*)    ARCH=ARM64 ;;
65*4882a593Smuzhiyun        arm*)        ARCH=ARM ;;
66*4882a593Smuzhiyun        i*86*)       ARCH=X86 ;;
67*4882a593Smuzhiyun        x86_64*)     ARCH=X86_64 ;;
68*4882a593Smuzhiyun        powerpc64*)  ARCH=PPC64 ;;
69*4882a593Smuzhiyun        powerpc*)    ARCH=PPC ;;
70*4882a593Smuzhiyun        mips*)       ARCH=MIPS ;;
71*4882a593Smuzhiyun    esac
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun    sed -i s/FORCE_DEFINE_ARCH/"${ARCH}"/g ${S}/configure.c
74*4882a593Smuzhiyun    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
75*4882a593Smuzhiyun    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
76*4882a593Smuzhiyun    sed -i 's/>/>/g' ${S}/Makefile
77*4882a593Smuzhiyun}
78*4882a593Smuzhiyun
79*4882a593Smuzhiyundo_compile() {
80*4882a593Smuzhiyun    oe_runmake ${EXTRA_OEMAKE} RECIPE_SYSROOT=${RECIPE_SYSROOT}
81*4882a593Smuzhiyun}
82*4882a593Smuzhiyun
83*4882a593Smuzhiyundo_install:prepend () {
84*4882a593Smuzhiyun    install -d ${D}${bindir}
85*4882a593Smuzhiyun    install -d ${D}/${mandir}/man8
86*4882a593Smuzhiyun    install -d ${D}${includedir}/crash
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun    install -m 0644 ${S}/crash.8 ${D}/${mandir}/man8/
89*4882a593Smuzhiyun    install -m 0644 ${S}/defs.h ${D}${includedir}/crash
90*4882a593Smuzhiyun}
91*4882a593Smuzhiyun
92*4882a593Smuzhiyundo_install:class-target () {
93*4882a593Smuzhiyun    oe_runmake DESTDIR=${D} install
94*4882a593Smuzhiyun}
95*4882a593Smuzhiyun
96*4882a593Smuzhiyundo_install:class-native () {
97*4882a593Smuzhiyun    oe_runmake DESTDIR=${D}${STAGING_DIR_NATIVE} install
98*4882a593Smuzhiyun}
99*4882a593Smuzhiyun
100*4882a593Smuzhiyundo_install:class-cross () {
101*4882a593Smuzhiyun    install -m 0755 ${S}/crash ${D}/${bindir}
102*4882a593Smuzhiyun}
103*4882a593Smuzhiyun
104*4882a593SmuzhiyunRDEPENDS:${PN} += "liblzma"
105*4882a593SmuzhiyunRDEPENDS:${PN}:class-native = ""
106*4882a593SmuzhiyunRDEPENDS:${PN}:class-cross = ""
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun# Causes gcc to get stuck and eat all available memory in qemuarm builds
109*4882a593Smuzhiyun# 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 -
110*4882a593SmuzhiyunARM_INSTRUCTION_SET = "arm"
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun# http://errors.yoctoproject.org/Errors/Details/186964/
113*4882a593SmuzhiyunCOMPATIBLE_HOST:libc-musl = 'null'
114