Robert Berger e6bd3835c9
crash 8.0.6 -> 9.0.2 + crash-memory-driver
1) crash-memory-driver: fixed typo to include proper patch
2) crash-memory-driver: keep license,...

patch against comments on pull request:

1) HOMEPAGE updated
2) UPSTREAM_CHECK_URI updated
3) exports removed
4) if [ -f "gdb-16.2.patch" ]; then... removed
5) notes about QA Issue: reference to TMPDIR [buildpaths] added
6) notes ./crash --buildinfo removed
7) LIC_FILES_CHKSUM: use license text in crash.c
8) PV = "9.0.2+git${SRCPV}" -> SRCPV removed
9) removed unused patches
10) crash: LICENSE = GPL-3.0-only

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-06-14 23:07:50 -07:00

142 lines
5.4 KiB
PHP

SUMMARY = "Kernel analysis utility for live systems and core dumpfiles"
DESCRIPTION = "The core analysis suite is a self-contained tool that can be used to \
investigate either live systems, kernel core dumps created from kdump, or mcore dumpfiles."
HOMEPAGE = "https://crash-utility.github.io/"
SECTION = "devel"
LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://${UNPACKDIR}/${BP}/COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
file://${UNPACKDIR}/gdb/gdb-16.2/COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
"
DEPENDS = "zlib readline ncurses gmp mpfr"
# Use append for cross-canadian on native packages
DEPENDS:append = " coreutils-native bison-native flex-native"
SRC_URI = "git://github.com/crash-utility/${BPN}.git;branch=master;protocol=https;destsuffix=${BP} \
${GNU_MIRROR}/gdb/gdb-16.2.tar.gz;name=gdb;subdir=gdb \
file://7003cross_ranlib.patch \
file://gdb_build_jobs_and_not_write_crash_target.patch \
file://0001-symbol-fix-S-cannot-work-with-kaslr-detection.patch \
file://0001-Use-CC-env-var-to-get-compiler-version.patch \
"
# 0001-Use-CC-env-var-to-get-compiler-version.patch:
# to get the right compiler info into ./crash --buildinfo
SRCREV = "61fe107ff96a22e7df0029877529b7ce6da36850"
#PV = "9.0.2"
SRC_URI[gdb.sha256sum] = "bdc1da4a033280ac752e7d34b0418efaa45bed093235cb88e62ea961752a37f8"
UPSTREAM_CHECK_URI = "https://github.com/crash-utility/crash/releases"
inherit gettext
TARGET_CC_ARCH:append = " ${SELECTED_OPTIMIZATION}"
# Target machine constraints preserved from your original layout
COMPATIBLE_HOST:riscv64 = "null"
COMPATIBLE_HOST:riscv32 = "null"
COMPATIBLE_HOST:mipsarchn64 = "null"
COMPATIBLE_HOST:mipsarchn32 = "null"
COMPATIBLE_HOST:libc-musl = 'null'
# add gdb autoconf overrides
EXTRA_OEMAKE = ' \
RPMPKG="${PV}" \
CROSS_COMPILE="${TARGET_PREFIX}" \
HOSTCC="gcc" \
CFLAGS="${CFLAGS} -fcommon --sysroot=${STAGING_DIR_TARGET}" \
CXXFLAGS="${CXXFLAGS} -fcommon --sysroot=${STAGING_DIR_TARGET}" \
LDFLAGS="${LDFLAGS} --sysroot=${STAGING_DIR_TARGET}" \
AR="${AR}" \
RANLIB="${RANLIB}" \
GDB_TARGET="${TARGET_SYS}" \
GDB_HOST="${BUILD_SYS}" \
GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
GDB_CONF_FLAGS="--host=${HOST_SYS} \
--target=${TARGET_SYS} \
--disable-gdbserver \
--disable-gprofng \
--with-sysroot=${STAGING_DIR_TARGET} \
ac_cv_type_gregset_t=yes \
ac_cv_type_fpregset_t=yes \
ac_cv_header_sys_procfs_h=yes" \
'
TARGET_CFLAGS:append = " -fcommon -fpermissive"
TARGET_CXXFLAGS:append = " -fcommon -fpermissive"
do_configure() {
:
}
do_compile:prepend() {
# 1. Map Yocto architecture strings to the strict naming convention expected by crash
case ${TARGET_ARCH} in
aarch64*) ARCH_UPPER=ARM64 ;;
arm*) ARCH_UPPER=ARM ;;
i*86*) ARCH_UPPER=X86 ;;
x86_64*) ARCH_UPPER=X86_64 ;;
powerpc64*) ARCH_UPPER=PPC64 ;;
powerpc*) ARCH_UPPER=PPC ;;
mips*) ARCH_UPPER=MIPS ;;
*) ARCH_UPPER=$(echo "${TARGET_ARCH}" | tr '[:lower:]' '[:upper:]') ;;
esac
bbnote "Staging pre-unpacked GDB 16.2 source tree into active build workspace layout..."
rm -rf ${B}/gdb-16.2
# 2. Copy the official clean GNU tarball source footprint into the active workspace mapping
cp -rf ${UNPACKDIR}/gdb/gdb-16.2 ${B}/gdb-16.2
# 3. Initialize the localized tracking repository required by the crash build architecture
pushd ${B}/gdb-16.2/
git init
git add .
git commit -m "initial commit"
popd
bbnote "Writing dynamic target layout architecture context: ${ARCH_UPPER}"
echo "${ARCH_UPPER}" > ${B}/gdb-16.2/crash.target
# 4. Apply your original configuration text manipulations natively
sed -i s/FORCE_DEFINE_ARCH/"${ARCH_UPPER}"/g ${S}/configure.c
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
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
sed -i 's/&gt;/>/g' ${S}/Makefile
# 5. Return to the active workspace build root to merge downstream additions
cd ${B}
bbnote "Applying the native upstream crash integration patch onto the GDB source tree..."
patch -p0 --fuzz=3 < gdb-16.2.patch
pushd ${B}/gdb-16.2/
git add .
git commit -m "after upstream crash gdb-16.2.patch"
popd
}
do_compile() {
oe_runmake ${EXTRA_OEMAKE} CC="${CC}" CXX="${CXX}" RECIPE_SYSROOT=${RECIPE_SYSROOT}
}
do_install:prepend () {
install -d ${D}${bindir}
install -d ${D}/${mandir}/man8
install -d ${D}${includedir}/crash
install -m 0644 ${S}/crash.8 ${D}/${mandir}/man8/
install -m 0644 ${S}/defs.h ${D}${includedir}/crash
}
RDEPENDS:${PN} += "liblzma"
ARM_INSTRUCTION_SET = "arm"
# WARNING: crash-9.0.2-r0 do_package_qa: QA Issue: File /usr/bin/crash in package crash contains reference to TMPDIR [buildpaths]
#
# WARNING: crash-cross-canadian-aarch64-9.0.2-r0 do_package_qa: QA Issue: File /opt/phytec-ampliphy-resy-systemd/6.0.98-devel/sysroots/x86_64-resysdk-linux/usr/bin/aarch64-resy-linux/crash in package crash-cross-canadian-aarch64 contains reference to TMPDIR [buildpaths]
#
ERROR_QA:remove = "buildpaths"
WARN_QA:append = " buildpaths"