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: Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
Robert Berger
2026-06-09 08:37:02 +02:00
committed by Khem Raj
parent a7428c96bf
commit 56b437228b
18 changed files with 263 additions and 665 deletions
@@ -1,52 +0,0 @@
inherit cross-canadian
SUMMARY = "crash utility (cross-canadian crash for ${TARGET_ARCH} target)"
PN = "crash-cross-canadian-${TRANSLATED_TARGET_ARCH}"
BPN = "crash"
require crash.inc
DEPENDS = "\
nativesdk-ncurses \
nativesdk-expat \
nativesdk-gettext \
nativesdk-gmp \
nativesdk-mpfr \
nativesdk-readline \
nativesdk-zlib \
virtual/nativesdk-cross-cc \
virtual/nativesdk-cross-binutils \
virtual/nativesdk-compilerlibs \
virtual/nativesdk-libc"
RDEPENDS:${PN} = "nativesdk-liblzma"
EXTRA_OEMAKE:class-cross-canadian = 'RPMPKG="${PV}" \
GDB_TARGET="${BUILD_SYS} --target=${TARGET_SYS}" \
GDB_HOST="${HOST_SYS}" \
GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
LDFLAGS="${LDFLAGS}" \
'
# To ship crash into your sdk, you should create/update a packagegroup-cross-canadian.bbappend and
# add the following
# CRASH = "crash-cross-canadian-${TRANSLATED_TARGET_ARCH}"
# RDEPENDS:${PN} += "${@all_multilib_tune_values(d, 'CRASH')}"
#
# You should also add some kernel packages in your sdk, add the followng in your conf/local.conf:
#
# TOOLCHAIN_TARGET_TASK += "\
# kernel-vmlinux \
# kernel-dbg \
# kernel-dev \
# "
#
# After sourcing the sdk environment script, you can analyze a kernel panic dump with
#
# crash $OECORE_TARGET_SYSROOT/boot/<vmlinux file> $OECORE_TARGET_SYSROOT/boot/<System.map file> <your vmcore>
do_install:class-cross-canadian () {
install -m 0755 ${S}/crash ${D}/${bindir}
cross_canadian_bindirlinks
}
@@ -0,0 +1,73 @@
inherit cross-canadian
SUMMARY = "crash utility (cross-canadian crash for ${TARGET_ARCH} target)"
PN = "crash-cross-canadian-${TRANSLATED_TARGET_ARCH}"
BPN = "crash"
require crash.inc
DEPENDS:append = " \
nativesdk-ncurses \
nativesdk-expat \
nativesdk-gettext \
nativesdk-gmp \
nativesdk-mpfr \
nativesdk-readline \
nativesdk-zlib \
virtual/nativesdk-cross-cc \
virtual/nativesdk-cross-binutils \
virtual/nativesdk-compilerlibs \
virtual/nativesdk-libc \
"
RDEPENDS:${PN} = "nativesdk-liblzma"
EXTRA_OEMAKE:class-cross-canadian = ' \
RPMPKG="${PV}" \
CROSS_COMPILE="${HOST_PREFIX}" \
HOSTCC="gcc" \
CFLAGS="${CFLAGS} -fcommon --sysroot=${STAGING_DIR_HOST}" \
CXXFLAGS="${CXXFLAGS} -fcommon --sysroot=${STAGING_DIR_HOST}" \
LDFLAGS="${LDFLAGS} --sysroot=${STAGING_DIR_HOST}" \
GDB_TARGET="${BUILD_SYS} --target=${TARGET_SYS}" \
GDB_HOST="${HOST_SYS}" \
GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
GDB_CONF_FLAGS="--host=${HOST_SYS} \
--build=${BUILD_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" \
'
# Force the SDK cross-compiler during the command execution phase
do_compile() {
oe_runmake ${EXTRA_OEMAKE} CC="${HOST_PREFIX}gcc ${HOST_CC_ARCH}" CXX="${HOST_PREFIX}g++ ${HOST_CC_ARCH}" RECIPE_SYSROOT=${RECIPE_SYSROOT}
}
# To ship crash into your sdk, you should create/update a packagegroup-cross-canadian.bbappend and
# add the following
# CRASH = "crash-cross-canadian-${TRANSLATED_TARGET_ARCH}"
# RDEPENDS:${PN} += "${@all_multilib_tune_values(d, 'CRASH')}"
#
# You should also add some kernel packages in your sdk, add the followng in your conf/local.conf:
#
# TOOLCHAIN_TARGET_TASK += "\
# kernel-vmlinux \
# kernel-dbg \
# kernel-dev \
# "
#
# After sourcing the sdk environment script, you can analyze a kernel panic dump with
#
# crash $OECORE_TARGET_SYSROOT/boot/<vmlinux file> $OECORE_TARGET_SYSROOT/boot/<System.map file> <your vmcore>
do_install:class-cross-canadian () {
rm -rf ${D}
install -d ${D}${bindir}
install -m 0755 ${S}/crash ${D}${bindir}/crash
cross_canadian_bindirlinks
}
@@ -0,0 +1,52 @@
From 4e33b3183f7ec903f73479600cfcb9014de1780e Mon Sep 17 00:00:00 2001
From: Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>
Date: Wed, 5 Mar 2025 06:28:02 +0000
Subject: [PATCH] hacked Makefile for module.bbclass
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>
---
memory_driver/Makefile | 26 +++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/memory_driver/Makefile b/memory_driver/Makefile
index 61ee7c0..d8dd3b5 100644
--- a/memory_driver/Makefile
+++ b/memory_driver/Makefile
@@ -7,15 +7,23 @@
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
-ifneq ($(KERNELRELEASE),)
+
obj-m := crash.o
-else
-PWD := $(shell pwd)
-KVER ?= $(shell uname -r)
-KDIR ?= /lib/modules/${KVER}/build
+
+SRC := $(shell pwd)
+
all:
- ${MAKE} -C ${KDIR} M=${PWD} SUBDIRS=${PWD} modules
+ $(MAKE) -C $(KERNEL_SRC) M=$(SRC)
+
+# if you would like to invoke sparse:
+#
+# all:
+# $(MAKE) KBUILD_CHECKSRC=1 -C $(KERNEL_SRC) M=$(SRC)
+
+modules_install:
+ $(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install
+
clean:
- test -e ${KDIR}/Makefile && ${MAKE} -C ${KDIR} M=${PWD} SUBDIRS=${PWD} clean || ${RM} *.mod.c *.ko *.o Module.*
-endif
+ rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c
+ rm -f Module.markers Module.symvers modules.order
+ rm -rf .tmp_versions Modules.symvers
--
2.34.1
@@ -0,0 +1,26 @@
DESCRIPTION = "Once installed, the /dev/crash driver will be used by default for live system crash sessions."
SECTION = "devel"
SUMMARY = "/dev/crash driver"
HOMEPAGE = "https://github.com/crash-utility/crash/tree/master/memory_driver"
RECIPE_MAINTAINER = "Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://crash.c;beginline=1;endline=25;md5=c278eae78e2bf99783849a90f03d0e43"
inherit module
SRCREV = "61fe107ff96a22e7df0029877529b7ce6da36850"
SRC_URI = "git://github.com/crash-utility/crash;protocol=https;branch=master;subpath=memory_driver;destsuffix=${BP} \
file://0001-hacked-Makefile-for-module.bbclass.patch;striplevel=2 \
"
PV = "9.0.2+git"
# The inherit of module.bbclass will automatically name module packages with
# "kernel-module-" prefix as required by the oe-core build environment.
RPROVIDES:${PN} += "kernel-module-crash-memory-driver"
# to local.conf add:
# to add the kernel module to the rootfs:
# MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "kernel-module-crash-memory-driver"
# to autoload it:
# KERNEL_MODULE_AUTOLOAD += "crash"
+88 -45
View File
@@ -1,37 +1,32 @@
SUMMARY = "Kernel analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore 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 the\
netdump, diskdump and kdump packages from Red Hat Linux, the mcore kernel patch\
offered by Mission Critical Linux, or the LKCD kernel patch."
HOMEPAGE = "http://people.redhat.com/anderson"
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://COPYING3;md5=d32239bcb673463ab874e80d47fae504"
LIC_FILES_CHKSUM = "file://${UNPACKDIR}/${BP}/COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
file://${UNPACKDIR}/gdb/gdb-16.2/COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
"
DEPENDS = "zlib readline coreutils-native ncurses-native"
DEPENDS = "zlib readline ncurses gmp mpfr"
# Use append for cross-canadian on native packages
DEPENDS:append = " coreutils-native bison-native flex-native"
INC_PR = "r1"
SRC_URI = "git://github.com/crash-utility/${BPN}.git;branch=master;protocol=https \
${GNU_MIRROR}/gdb/gdb-10.2.tar.gz;name=gdb;subdir=${BB_GIT_DEFAULT_DESTSUFFIX} \
file://7001force_define_architecture.patch \
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://0001-cross_add_configure_option.patch \
file://donnot-extract-gdb-during-do-compile.patch \
file://gdb_build_jobs_and_not_write_crash_target.patch \
file://0001-symbol-fix-S-cannot-work-with-kaslr-detection.patch \
file://0002-arm64-add-pac-mask-to-better-support-gdb-stack-unwin.patch \
file://0003-Fix-build-failure-in-readline-lib.patch \
file://0004-tools.c-do-not-use-keywords-nullptr-as-a-variable-in.patch \
file://0005-Fix-build-failure-on-32bit-machine-i686.patch \
file://0001-Use-CC-env-var-to-get-compiler-version.patch \
file://0006-gdbsupport-fix-default-init-alloc-for-C-20.patch \
"
SRCREV = "f13853cef53f5c5463a51021edbc81977e2b1405"
"
# 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"
SRC_URI[gdb.sha256sum] = "b33ad58d687487a821ec8d878daab0f716be60d0936f2e3ac5cf08419ce70350"
UPSTREAM_CHECK_URI = "https://github.com/crash-utility/crash/releases"
@@ -39,44 +34,90 @@ inherit gettext
TARGET_CC_ARCH:append = " ${SELECTED_OPTIMIZATION}"
# crash 7.1.3 and before don't support mips64/riscv64
# 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'
CXXFLAGS += "-std=gnu++17"
# 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" \
'
EXTRA_OEMAKE = 'RPMPKG="${PV}" \
GDB_TARGET="${TARGET_SYS}" \
GDB_HOST="${BUILD_SYS}" \
GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
LDFLAGS="${LDFLAGS}" \
'
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=ARM64 ;;
arm*) ARCH=ARM ;;
i*86*) ARCH=X86 ;;
x86_64*) ARCH=X86_64 ;;
powerpc64*) ARCH=PPC64 ;;
powerpc*) ARCH=PPC ;;
mips*) ARCH=MIPS ;;
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
sed -i s/FORCE_DEFINE_ARCH/"${ARCH}"/g ${S}/configure.c
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
cd ${B}/gdb-16.2/
git init
git add .
git commit -m "initial commit"
cd ${B}
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
cd ${B}/gdb-16.2/
git add .
git commit -m "after upstream crash gdb-16.2.patch"
cd ${B}
}
do_compile() {
oe_runmake ${EXTRA_OEMAKE} RECIPE_SYSROOT=${RECIPE_SYSROOT}
oe_runmake ${EXTRA_OEMAKE} CC="${CC}" CXX="${CXX}" RECIPE_SYSROOT=${RECIPE_SYSROOT}
}
do_install:prepend () {
@@ -90,9 +131,11 @@ do_install:prepend () {
RDEPENDS:${PN} += "liblzma"
# Causes gcc to get stuck and eat all available memory in qemuarm builds
# 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 -
ARM_INSTRUCTION_SET = "arm"
# http://errors.yoctoproject.org/Errors/Details/186964/
COMPATIBLE_HOST:libc-musl = 'null'
# 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"
@@ -1,7 +1,7 @@
From 6ad5e9302057e157ab701880a8543ca59058df2d Mon Sep 17 00:00:00 2001
From df98eb38b680fd633a6e87679d7267252849764d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?K=C3=A9l=C3=A9fa=20San=C3=A9?= <kelefa.sane@smile.fr>
Date: Fri, 16 May 2025 16:18:28 +0200
Subject: [PATCH v2] Use CC env var to get compiler version
Subject: [PATCH] Use CC env var to get compiler version
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -19,15 +19,16 @@ compiler version, when the CC env var is define.
Upstream-Status: Submitted [https://lists.crash-utility.osci.io/archives/list/devel@lists.crash-utility.osci.io/thread/V3G3QH3YW6WZWD56TVTFQIHYLZ33UIJL/]
Signed-off-by: Kéléfa Sané <kelefa.sane@smile.fr>
Signed-off-by: Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>
---
configure.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/configure.c b/configure.c
index 4668c9a..4b65bd7 100644
index 6e39d87..74e88b7 100644
--- a/configure.c
+++ b/configure.c
@@ -1362,7 +1362,17 @@ make_build_data(char *target)
@@ -1381,7 +1381,17 @@ make_build_data(char *target)
fp1 = popen("date", "r");
fp2 = popen("id", "r");
@@ -1,34 +0,0 @@
From e3ba432243d9be4e845daabc78a0ae7c03c680f5 Mon Sep 17 00:00:00 2001
From: Lei Maohui <leimaohui@cn.fujitsu.com>
Date: Fri, 9 Jan 2015 11:51:18 +0900
Subject: [PATCH] cross_add_configure_option
---
Upstream-Status: Pending
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 7266e305..390fc0ef 100644
--- a/Makefile
+++ b/Makefile
@@ -260,7 +260,7 @@ gdb_merge: force
@echo "../../${PROGRAM} ../../${PROGRAM}lib.a" > ${GDB}/gdb/mergeobj
@rm -f ${PROGRAM}
@if [ ! -f ${GDB}/config.status ]; then \
- (cd ${GDB}; ./configure ${GDB_CONF_FLAGS} --with-separate-debug-dir=/usr/lib/debug \
+ (cd ${GDB}; ./configure --host=${GDB_TARGET} --build=${GDB_HOST} --with-separate-debug-dir=/usr/lib/debug \
--with-bugurl="" --with-expat=no --with-python=no --disable-sim; \
$(MAKE) CRASH_TARGET=${TARGET}; echo ${TARGET} > crash.target) \
else $(MAKE) rebuild; fi
@@ -306,7 +306,7 @@ force:
make_configure: force
@rm -f configure
- @${CC} ${CONF_FLAGS} -o configure configure.c ${WARNING_ERROR} ${WARNING_OPTIONS}
+ @${BUILD_CC} ${CONF_FLAGS} -o configure configure.c ${WARNING_ERROR} ${WARNING_OPTIONS}
clean: make_configure
@./configure ${CONF_TARGET_FLAG} -q -b
@@ -1,4 +1,4 @@
From 329bd56da28fc1b5b53a60ca2172643d2090435d Mon Sep 17 00:00:00 2001
From 35a721485f2a20ebb18d9f4ab48b7cf293369a70 Mon Sep 17 00:00:00 2001
From: Tao Liu <ltao@redhat.com>
Date: Fri, 13 Dec 2024 08:36:03 +0000
Subject: [PATCH] symbol: fix -S cannot work with kaslr detection
@@ -15,15 +15,16 @@ Upstream-Status: Pending
[https://lists.crash-utility.osci.io/archives/list/devel@lists.crash-utility.osci.io/thread/5OXNYPPU6GLLQKCWH7WBNBJXLNZ4EBZD/]
Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
Signed-off-by: Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>
---
symbols.c | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/symbols.c b/symbols.c
index a3cd0f3..6062d21 100644
index e6865ca..0028874 100644
--- a/symbols.c
+++ b/symbols.c
@@ -25,7 +25,7 @@
@@ -26,7 +26,7 @@
static void store_symbols(bfd *, int, void *, long, unsigned int);
static void store_sysmap_symbols(void);
@@ -32,7 +33,7 @@ index a3cd0f3..6062d21 100644
static int relocate_force(ulong, char *);
static void kaslr_init(void);
static void strip_module_symbol_end(char *s);
@@ -230,6 +230,7 @@ symtab_init(void)
@@ -231,6 +231,7 @@ symtab_init(void)
DEBUGINFO_ERROR_MESSAGE1 :
DEBUGINFO_ERROR_MESSAGE2);
}
@@ -40,7 +41,7 @@ index a3cd0f3..6062d21 100644
store_sysmap_symbols();
return;
} else if (LKCD_KERNTYPES())
@@ -817,7 +818,7 @@ store_symbols(bfd *abfd, int dynamic, void *minisyms, long symcount,
@@ -818,7 +819,7 @@ store_symbols(bfd *abfd, int dynamic, void *minisyms, long symcount,
syminfo.type)) {
if (kt->flags & (RELOC_SET|RELOC_FORCE))
sp->value = relocate(syminfo.value,
@@ -49,7 +50,7 @@ index a3cd0f3..6062d21 100644
else
sp->value = syminfo.value;
sp->type = syminfo.type;
@@ -893,9 +894,9 @@ store_sysmap_symbols(void)
@@ -894,9 +895,9 @@ store_sysmap_symbols(void)
if (machdep->verify_symbol(name, syment.value,
syment.type)) {
@@ -61,7 +62,7 @@ index a3cd0f3..6062d21 100644
else
sp->value = syment.value;
sp->type = syment.type;
@@ -924,7 +925,7 @@ store_sysmap_symbols(void)
@@ -925,7 +926,7 @@ store_sysmap_symbols(void)
* are not as loaded into the kernel (not unity-mapped).
*/
static ulong
@@ -70,7 +71,7 @@ index a3cd0f3..6062d21 100644
{
if (XEN_HYPER_MODE()) {
kt->flags &= ~(RELOC_SET|RELOC_FORCE);
@@ -937,9 +938,10 @@ relocate(ulong symval, char *symname, int first_symbol)
@@ -938,9 +939,10 @@ relocate(ulong symval, char *symname, int first_symbol)
break;
case RELOC_FORCE:
@@ -84,6 +85,3 @@ index a3cd0f3..6062d21 100644
}
if (machine_type("X86_64")) {
--
2.35.5
@@ -1,85 +0,0 @@
From 0f39e33d3504f3a17b83574c3be97640460b7eef Mon Sep 17 00:00:00 2001
From: "Guanyou.Chen" <chenguanyou@xiaomi.com>
Date: Wed, 25 Dec 2024 23:50:28 +0800
Subject: [PATCH] arm64: add pac mask to better support gdb stack unwind
Currently, gdb passthroughs of 'bt', 'frame', 'up', 'down',
'info, locals' don't work on arm64 machine enabled pauth.
This is because gdb does not know the lr register actual values
to unwind the stack frames.
Without the patch:
crash> gdb bt
#0 __switch_to (prev=0xffffff8001af92c0, next=0xffffff889da7a580) at /proc/self/cwd/common/arch/arm64/kernel/process.c:569
#1 0x9fc5c5d3602132c0 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
With the patch:
crash> gdb bt
#0 __switch_to (prev=prev@entry=0xffffff8001af92c0, next=next@entry=0xffffff889da7a580) at /proc/self/cwd/common/arch/arm64/kernel/process.c:569
#1 0xffffffd3602132c0 in context_switch (rq=0xffffff8a7295a080, prev=0xffffff8001af92c0, next=0xffffff889da7a580, rf=<optimized out>) at /proc/self/cwd/common/kernel/sched/core.c:5515
#2 __schedule (sched_mode=<optimized out>, sched_mode@entry=2147859424) at /proc/self/cwd/common/kernel/sched/core.c:6843
#3 0xffffffd3602136d8 in schedule () at /proc/self/cwd/common/kernel/sched/core.c:6917
...
Signed-off-by: Guanyou.Chen <chenguanyou@xiaomi.com>
Signed-off-by: mark.yang <mark.yang@lge.com>
Upstream-Status: Backport [0f39e33 arm64: add pac mask to better support gdb stack unwind]
---
gdb-10.2.patch | 23 +++++++++++++++++++++++
gdb_interface.c | 10 ++++++++++
2 files changed, 33 insertions(+)
diff --git a/gdb-10.2.patch b/gdb-10.2.patch
index c867660..fd6fadb 100644
--- a/gdb-10.2.patch
+++ b/gdb-10.2.patch
@@ -16216,3 +16216,26 @@ exit 0
printf_filtered (_("Backtrace stopped: %s\n"),
frame_stop_reason_string (trailing));
}
+--- gdb-10.2/gdb/frame.c.orig
++++ gdb-10.2/gdb/frame.c
+@@ -944,6 +944,10 @@ frame_find_by_id (struct frame_id id)
+ return NULL;
+ }
+
++#ifdef CRASH_MERGE
++extern "C" void crash_decode_ptrauth_pc(ulong* pc);
++#endif
++
+ static CORE_ADDR
+ frame_unwind_pc (struct frame_info *this_frame)
+ {
+@@ -974,6 +978,9 @@ frame_unwind_pc (struct frame_info *this_frame)
+ try
+ {
+ pc = gdbarch_unwind_pc (prev_gdbarch, this_frame);
++#ifdef CRASH_MERGE
++ crash_decode_ptrauth_pc(&pc);
++#endif
+ pc_p = true;
+ }
+ catch (const gdb_exception_error &ex)
diff --git a/gdb_interface.c b/gdb_interface.c
index 315711e..e108d09 100644
--- a/gdb_interface.c
+++ b/gdb_interface.c
@@ -1083,3 +1083,13 @@ int crash_get_current_task_reg (int regno, const char *regname,
return machdep->get_current_task_reg(regno, regname, regsize, value);
}
+/* arm64 kernel lr maybe has patuh */
+void crash_decode_ptrauth_pc(ulong *pc);
+void crash_decode_ptrauth_pc(ulong *pc)
+{
+#ifdef ARM64
+ struct machine_specific *ms = machdep->machspec;
+ if (is_kernel_text(*pc | ms->CONFIG_ARM64_KERNELPACMASK))
+ *pc |= ms->CONFIG_ARM64_KERNELPACMASK;
+#endif /* !ARM64 */
+}
--
2.34.1
@@ -1,136 +0,0 @@
From 772fbb1022911410b5fb773fde37910fc8286041 Mon Sep 17 00:00:00 2001
From: Lianbo Jiang <lijiang@redhat.com>
Date: Fri, 24 Jan 2025 16:12:40 +0800
Subject: [PATCH] Fix build failure in readline lib
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This is a backported patch from gdb upstream, see the commit
425f843d58c5 ("Import GNU Readline 8.2"), and only backported
patch related to compilation errors.
Without the patch:
signals.c: In function _rl_handle_signal:
signals.c:62:36: error: return with a value, in function returning void [-Wreturn-mismatch]
62 | # define SIGHANDLER_RETURN return (0)
| ^
signals.c:290:3: note: in expansion of macro SIGHANDLER_RETURN
290 | SIGHANDLER_RETURN;
| ^~~~~~~~~~~~~~~~~
signals.c:178:1: note: declared here
178 | _rl_handle_signal (int sig)
| ^~~~~~~~~~~~~~~~~
signals.c: In function rl_sigwinch_handler:
signals.c:306:32: error: passing argument 2 of rl_set_sighandler from incompatible pointer type [-Wincompatible-pointer-types]
306 | rl_set_sighandler (SIGWINCH, rl_sigwinch_handler, &dummy_winch);
| ^~~~~~~~~~~~~~~~~~~
| |
| void (*)(int)
In file included from rldefs.h:31,
from signals.c:37:
signals.c:81:51: note: expected void (*)(void) but argument is of type void (*)(int)
81 | static SigHandler *rl_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
Note: the current build failure was observed on gcc (GCC) 15.0.0.
Signed-off-by: Lianbo Jiang <lijiang@redhat.com>
Signed-off-by: mark.yang <mark.yang@lge.com>
Upstream-Status: Backport [772fbb1 Fix build failure in readline lib]
---
gdb-10.2.patch | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 82 insertions(+)
diff --git a/gdb-10.2.patch b/gdb-10.2.patch
index fd6fadb..8f5d7db 100644
--- a/gdb-10.2.patch
+++ b/gdb-10.2.patch
@@ -16239,3 +16239,85 @@ exit 0
pc_p = true;
}
catch (const gdb_exception_error &ex)
+--- gdb-10.2/readline/readline/signals.c.orig
++++ gdb-10.2/readline/readline/signals.c
+@@ -48,23 +48,11 @@
+
+ #if defined (HANDLE_SIGNALS)
+
+-#if !defined (RETSIGTYPE)
+-# if defined (VOID_SIGHANDLER)
+-# define RETSIGTYPE void
+-# else
+-# define RETSIGTYPE int
+-# endif /* !VOID_SIGHANDLER */
+-#endif /* !RETSIGTYPE */
+-
+-#if defined (VOID_SIGHANDLER)
+-# define SIGHANDLER_RETURN return
+-#else
+-# define SIGHANDLER_RETURN return (0)
+-#endif
++#define SIGHANDLER_RETURN return
+
+ /* This typedef is equivalent to the one for Function; it allows us
+ to say SigHandler *foo = signal (SIGKILL, SIG_IGN); */
+-typedef RETSIGTYPE SigHandler ();
++typedef void SigHandler (int);
+
+ #if defined (HAVE_POSIX_SIGNALS)
+ typedef struct sigaction sighandler_cxt;
+@@ -78,12 +66,12 @@ typedef struct { SigHandler *sa_handler; int sa_mask, sa_flags; } sighandler_cxt
+ # define SA_RESTART 0
+ #endif
+
+-static SigHandler *rl_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
+-static void rl_maybe_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
+-static void rl_maybe_restore_sighandler PARAMS((int, sighandler_cxt *));
++static SigHandler *rl_set_sighandler (int, SigHandler *, sighandler_cxt *);
++static void rl_maybe_set_sighandler (int, SigHandler *, sighandler_cxt *);
++static void rl_maybe_restore_sighandler (int, sighandler_cxt *);
+
+-static RETSIGTYPE rl_signal_handler PARAMS((int));
+-static RETSIGTYPE _rl_handle_signal PARAMS((int));
++static void rl_signal_handler (int);
++static void _rl_handle_signal (int);
+
+ /* Exported variables for use by applications. */
+
+@@ -137,7 +125,7 @@ void *_rl_sigcleanarg;
+ /* Readline signal handler functions. */
+
+ /* Called from RL_CHECK_SIGNALS() macro */
+-RETSIGTYPE
++void
+ _rl_signal_handler (int sig)
+ {
+ _rl_caught_signal = 0; /* XXX */
+@@ -160,7 +148,7 @@ _rl_signal_handler (int sig)
+ SIGHANDLER_RETURN;
+ }
+
+-static RETSIGTYPE
++static void
+ rl_signal_handler (int sig)
+ {
+ if (_rl_interrupt_immediately)
+@@ -174,7 +162,7 @@ rl_signal_handler (int sig)
+ SIGHANDLER_RETURN;
+ }
+
+-static RETSIGTYPE
++static void
+ _rl_handle_signal (int sig)
+ {
+ #if defined (HAVE_POSIX_SIGNALS)
+@@ -291,7 +279,7 @@ _rl_handle_signal (int sig)
+ }
+
+ #if defined (SIGWINCH)
+-static RETSIGTYPE
++static void
+ rl_sigwinch_handler (int sig)
+ {
+ SigHandler *oh;
@@ -1,60 +0,0 @@
From 325a9d1b3b4ce76bf4556235c885e619e219622c Mon Sep 17 00:00:00 2001
From: Lianbo Jiang <lijiang@redhat.com>
Date: Fri, 24 Jan 2025 15:32:59 +0800
Subject: [PATCH] tools.c: do not use keywords 'nullptr' as a variable in code
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Without the patch:
tools.c: In function drop_core:
tools.c:6251:23: error: expected identifier or ( before nullptr
6251 | volatile int *nullptr;
| ^~~~~~~
tools.c:6259:17: error: lvalue required as left operand of assignment
6259 | nullptr = NULL;
| ^
tools.c:6261:21: error: invalid type argument of unary * (have typeof (nullptr))
6261 | i = *nullptr;
| ^~~~~~~~
make[6]: *** [Makefile:345: tools.o] Error 1
Note: this was observed on gcc version 15.0.1
Signed-off-by: Lianbo Jiang <lijiang@redhat.com>
Signed-off-by: mark.yang <mark.yang@lge.com>
Upstream-Status: Backport [325a9d1 tools.c: do not use keywords 'nullptr' as a variable in code]
---
tools.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools.c b/tools.c
index 85d8b6f..c9305be 100644
--- a/tools.c
+++ b/tools.c
@@ -6248,7 +6248,7 @@ lowest_bit_long(ulong val)
void
drop_core(char *s)
{
- volatile int *nullptr;
+ volatile int *ptr;
int i ATTRIBUTE_UNUSED;
if (s && ascii_string(s))
@@ -6256,9 +6256,9 @@ drop_core(char *s)
kill((pid_t)pc->program_pid, 3);
- nullptr = NULL;
+ ptr = NULL;
while (TRUE)
- i = *nullptr;
+ i = *ptr;
}
--
2.34.1
@@ -1,83 +0,0 @@
From 2724bb1d0260f3886f8a3d533838caf80c7e61e5 Mon Sep 17 00:00:00 2001
From: Lianbo Jiang <lijiang@redhat.com>
Date: Fri, 24 Jan 2025 17:56:23 +0800
Subject: [PATCH 10/10] Fix build failure on 32bit machine(i686)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This issue was caused by commit 0f39e33d3504 with the following
compilation error:
frame.c: In function CORE_ADDR frame_unwind_pc(frame_info*):
frame.c:982:35: error: cannot convert CORE_ADDR* {aka long long unsigned int*} to ulong* {aka long unsigned int*}
982 | crash_decode_ptrauth_pc(&pc);
| ^~~
| |
| CORE_ADDR* {aka long long unsigned int*}
frame.c:948:48: note: initializing argument 1 of void crash_decode_ptrauth_pc(ulong*)
948 | extern "C" void crash_decode_ptrauth_pc(ulong* pc);
| ~~~~~~~^~
Upstream-Status: Backport [https://github.com/crash-utility/crash/commit/2724bb1d0260f3886f8a3d533838caf80c7e61e5]
Fixes: 0f39e33d3504 ("arm64: add pac mask to better support gdb stack unwind")
Reported-by: Guanyou.Chen <chenguanyou@xiaomi.com>
Signed-off-by: Lianbo Jiang <lijiang@redhat.com>
---
gdb-10.2.patch | 6 +++---
gdb_interface.c | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/gdb-10.2.patch b/gdb-10.2.patch
index 8f5d7db22840..d22f2d6d75bc 100644
--- a/gdb-10.2.patch
+++ b/gdb-10.2.patch
@@ -55,7 +55,7 @@ exit 0
# your system doesn't have fcntl.h in /usr/include (which is where it
# should be according to Posix).
-DEFS = @DEFS@
-+DEFS = -DCRASH_MERGE @DEFS@
++DEFS = -DCRASH_MERGE -D${CRASH_TARGET} @DEFS@
GDB_CFLAGS = -I. -I$(srcdir) -I$(srcdir)/config \
-DLOCALEDIR="\"$(localedir)\"" $(DEFS)
@@ -16222,7 +16222,7 @@ exit 0
return NULL;
}
-+#ifdef CRASH_MERGE
++#if defined(CRASH_MERGE) && defined(ARM64)
+extern "C" void crash_decode_ptrauth_pc(ulong* pc);
+#endif
+
@@ -16233,7 +16233,7 @@ exit 0
try
{
pc = gdbarch_unwind_pc (prev_gdbarch, this_frame);
-+#ifdef CRASH_MERGE
++#if defined(CRASH_MERGE) && defined(ARM64)
+ crash_decode_ptrauth_pc(&pc);
+#endif
pc_p = true;
diff --git a/gdb_interface.c b/gdb_interface.c
index e108d097ee5f..c2e99f5c156a 100644
--- a/gdb_interface.c
+++ b/gdb_interface.c
@@ -1084,12 +1084,12 @@ int crash_get_current_task_reg (int regno, const char *regname,
}
/* arm64 kernel lr maybe has patuh */
+#ifdef ARM64
void crash_decode_ptrauth_pc(ulong *pc);
void crash_decode_ptrauth_pc(ulong *pc)
{
-#ifdef ARM64
struct machine_specific *ms = machdep->machspec;
if (is_kernel_text(*pc | ms->CONFIG_ARM64_KERNELPACMASK))
*pc |= ms->CONFIG_ARM64_KERNELPACMASK;
-#endif /* !ARM64 */
}
+#endif /* !ARM64 */
--
2.47.1
@@ -1,82 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 23 Jun 2026 00:00:00 +0000
Subject: [PATCH] gdbsupport: fix default-init-alloc for C++20
std::allocator::construct() and std::allocator::destroy() were
deprecated in C++17 and removed in C++20. gdb-10.2's
gdbsupport/default-init-alloc.h pulls them into scope with
using A::construct;
where A defaults to std::allocator<T>. With GCC 16 (which defaults to
C++20 or newer) std::vector instantiations such as gdb::def_vector<char>
(= std::vector<char, gdb::default_init_allocator<char>>) fail to build:
default-init-alloc.h:52:12: error: 'construct' has not been declared
in 'class std::allocator<char>'
Note that def-vector.h instantiates default_init_allocator with the
explicit std::allocator<T> base, so changing only the template's default
allocator argument is not sufficient to fix this.
Pull in "using A::construct;" only for standards older than C++17 (where
std::allocator still provides construct()), and for C++17 and later add a
variadic construct() overload that forwards to
std::allocator_traits<A>::construct(). This both keeps non-default
construction working and avoids referring to the removed
std::allocator::construct() member. The existing default-init
construct(U*) overload is preserved unchanged.
This patch only touches the bundled gdb-10.2 sources downloaded by the
crash recipe.
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
gdbsupport/default-init-alloc.h | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
--- a/gdb-10.2/gdbsupport/default-init-alloc.h
+++ b/gdb-10.2/gdbsupport/default-init-alloc.h
@@ -18,6 +18,8 @@
#ifndef COMMON_DEFAULT_INIT_ALLOC_H
#define COMMON_DEFAULT_INIT_ALLOC_H
+#include <memory>
+
namespace gdb {
/* An allocator that default constructs using default-initialization
@@ -48,8 +50,13 @@ public:
typedef default_init_allocator<U, alloc_> other;
};
- /* Make the base allocator's construct method(s) visible. */
+ /* Make the base allocator's construct method(s) visible. std::allocator
+ lost its construct() member in C++20, so only pull it in for older
+ standards; for C++20 and later we forward non-default construction to
+ std::allocator_traits below instead. */
+#if __cplusplus < 201703L
using A::construct;
+#endif
/* .. and provide an override/overload for the case of default
construction (i.e., no arguments). This is where we construct
@@ -60,6 +67,16 @@ public:
{
::new ((void *) ptr) U; /* default-init */
}
+
+ /* Forward all other construct() calls to the base allocator. This
+ replaces the "using A::construct;" pulled in above for standards
+ where std::allocator still provides construct(). */
+ template <typename U, typename... Args>
+ void construct (U *ptr, Args&&... args)
+ {
+ std::allocator_traits<A>::construct (static_cast<A &> (*this), ptr,
+ std::forward<Args> (args)...);
+ }
};
} /* namespace gdb */
@@ -1,15 +0,0 @@
Upstream-Status: Pending
diff -uprN crash-5.1.8.org/configure.c crash-5.1.8/configure.c
--- crash-5.1.8.org/configure.c 2011-09-17 04:01:12.000000000 +0900
+++ crash-5.1.8/configure.c 2012-09-13 13:28:45.393344108 +0900
@@ -391,6 +391,9 @@ get_current_configuration(struct support
arch_mismatch(sp);
}
+ /** Force define archtecture */
+ target_data.target = FORCE_DEFINE_ARCH;
+
if ((fp = fopen("Makefile", "r")) == NULL) {
perror("Makefile");
goto get_release;
@@ -1,19 +1,19 @@
From 2f200ceed289f935b5e7ec230454a22dd76e42b0 Mon Sep 17 00:00:00 2001
From 72921a32cc2c1df390265e8c4e205bc5ba2b985d Mon Sep 17 00:00:00 2001
From: leimaohui <leimaohui@cn.fujitsu.com>
Date: Mon, 12 Jan 2015 11:52:35 +0800
Subject: [PATCH] crash: add new recipe
---
Upstream-Status: Pending
Signed-off-by: Robert.Berger <Robert.Berger@ReliableEmbeddedSystems.com>
---
Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile b/Makefile
index 79aef176..7266e305 100644
index 58b1326..f2c945a 100644
--- a/Makefile
+++ b/Makefile
@@ -295,6 +295,7 @@ gdb_patch:
@@ -349,6 +349,7 @@ gdb_patch:
library: ${OBJECT_FILES}
ar -rs ${PROGRAM}lib.a ${OBJECT_FILES}
@@ -1,45 +0,0 @@
From 8b882650b730cb6e025d47d65574f43549b7a1a3 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Thu, 9 Mar 2023 10:28:28 +0800
Subject: [PATCH] Makefile: Put gdb source tarball in SRC_URI
Put gdb source tarball in SRC_URI and don't fetch and extract it during
do_compile.
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
Makefile | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index 79aef17..146da6a 100644
--- a/Makefile
+++ b/Makefile
@@ -254,7 +254,7 @@ all: make_configure
# @$(MAKE) extensions
gdb_merge: force
- @if [ ! -f ${GDB}/README ]; then \
+ @if [ ! -f ${GDB}/${GDB}.patch ]; then \
$(MAKE) gdb_unzip; fi
@echo "${LDFLAGS} -lz -ldl -rdynamic" > ${GDB}/gdb/mergelibs
@echo "../../${PROGRAM} ../../${PROGRAM}lib.a" > ${GDB}/gdb/mergeobj
@@ -281,12 +281,6 @@ gdb_unzip:
@rm -f gdb.files
@for FILE in ${GDB_FILES} dummy; do\
echo $$FILE >> gdb.files; done
- @if [ ! -f ${GDB}.tar.gz ] && [ ! -f /usr/bin/wget ]; then \
- echo /usr/bin/wget is required to download ${GDB}.tar.gz; echo; exit 1; fi
- @if [ ! -f ${GDB}.tar.gz ] && [ -f /usr/bin/wget ]; then \
- [ ! -t 2 ] && WGET_OPTS="--progress=dot:mega"; \
- wget $$WGET_OPTS http://ftp.gnu.org/gnu/gdb/${GDB}.tar.gz; fi
- @tar --exclude-from gdb.files -xzmf ${GDB}.tar.gz
@$(MAKE) gdb_patch
gdb_patch:
--
2.25.1
@@ -1,4 +1,4 @@
From af49d8df559aa18f97d14ab7971f211238a16041 Mon Sep 17 00:00:00 2001
From 43d02dfa24f9f04e60911593e47e9cc2d68562e3 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Thu, 9 Mar 2023 10:50:10 +0800
Subject: [PATCH] Makefile: Don't write ${TARGET} to crash.target
@@ -14,17 +14,18 @@ Don't write ${TARGET} to crash.target which causes rebuild fails.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>
---
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index cd25c7d..d61c4c5 100644
index f2c945a..9fdb29b 100644
--- a/Makefile
+++ b/Makefile
@@ -262,8 +262,8 @@ gdb_merge: force
@@ -316,8 +316,8 @@ gdb_merge: force
@if [ ! -f ${GDB}/config.status ]; then \
(cd ${GDB}; ./configure --host=${GDB_TARGET} --build=${GDB_HOST} --with-separate-debug-dir=/usr/lib/debug \
(cd ${GDB}; ./configure ${GDB_CONF_FLAGS} --with-separate-debug-dir=/usr/lib/debug \
--with-bugurl="" --with-expat=no --with-python=no --disable-sim; \
- $(MAKE) CRASH_TARGET=${TARGET}; echo ${TARGET} > crash.target) \
- else $(MAKE) rebuild; fi
@@ -33,6 +34,3 @@ index cd25c7d..d61c4c5 100644
@if [ ! -f ${PROGRAM} ]; then \
echo; echo "${PROGRAM} build failed"; \
echo; exit 1; fi
--
2.25.1
@@ -1,6 +1,5 @@
require crash.inc
BBCLASSEXTEND = "native cross"
EXTRA_OEMAKE:class-cross = 'RPMPKG="${PV}" \