diff options
| author | Etienne Cordonnier <ecordonnier@snap.com> | 2024-10-14 11:11:18 +0200 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2024-10-15 11:47:24 +0100 |
| commit | acd8c9528f825e05eac570ba69b360b222dea45d (patch) | |
| tree | 6ca66f6f7de9fe9a44e42428355c1b554d99b2d7 | |
| parent | 436d1df93b946634cb62a9923644c6d6a50fd1d9 (diff) | |
| download | poky-acd8c9528f825e05eac570ba69b360b222dea45d.tar.gz | |
makedumpfile: import 1.7.5 from meta-openembedded
The kdump script from kexec-tools does not work without makedumpfile (see https://git.yoctoproject.org/poky/tree/meta/recipes-kernel/kexec/kexec-tools/kdump#n14 ).
Thus, let's import makedumpfile from meta-openembedded/meta-oe/recipes-kernel/makedumpfile and make kexec-tools RDEPENDS on makedumpfile.
makedumpfile is the utility which reads /proc/vmcore after a kernel panic and creates a kdump file under /var/crash/.
(From OE-Core rev: 8534e6427622ec76e100b7d10ee11d180cf5980a)
Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
4 files changed, 203 insertions, 0 deletions
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index b529786214..ad2544741f 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc | |||
| @@ -490,6 +490,7 @@ RECIPE_MAINTAINER:pn-m4-native = "Robert Yang <liezhi.yang@windriver.com>" | |||
| 490 | RECIPE_MAINTAINER:pn-make = "Robert Yang <liezhi.yang@windriver.com>" | 490 | RECIPE_MAINTAINER:pn-make = "Robert Yang <liezhi.yang@windriver.com>" |
| 491 | RECIPE_MAINTAINER:pn-makedepend = "Robert Yang <liezhi.yang@windriver.com>" | 491 | RECIPE_MAINTAINER:pn-makedepend = "Robert Yang <liezhi.yang@windriver.com>" |
| 492 | RECIPE_MAINTAINER:pn-makedevs = "Chen Qi <Qi.Chen@windriver.com>" | 492 | RECIPE_MAINTAINER:pn-makedevs = "Chen Qi <Qi.Chen@windriver.com>" |
| 493 | RECIPE_MAINTAINER:pn-makedumpfile = "Etienne Cordonnier <ecordonnier@snap.com>" | ||
| 493 | RECIPE_MAINTAINER:pn-make-mod-scripts = "Bruce Ashfield <bruce.ashfield@gmail.com>" | 494 | RECIPE_MAINTAINER:pn-make-mod-scripts = "Bruce Ashfield <bruce.ashfield@gmail.com>" |
| 494 | RECIPE_MAINTAINER:pn-man-db = "Hongxu Jia <hongxu.jia@windriver.com>" | 495 | RECIPE_MAINTAINER:pn-man-db = "Hongxu Jia <hongxu.jia@windriver.com>" |
| 495 | RECIPE_MAINTAINER:pn-man-pages = "Hongxu Jia <hongxu.jia@windriver.com>" | 496 | RECIPE_MAINTAINER:pn-man-pages = "Hongxu Jia <hongxu.jia@windriver.com>" |
diff --git a/meta/recipes-kernel/kexec/kexec-tools_2.0.29.bb b/meta/recipes-kernel/kexec/kexec-tools_2.0.29.bb index 2c2901f19e..be24d064bb 100644 --- a/meta/recipes-kernel/kexec/kexec-tools_2.0.29.bb +++ b/meta/recipes-kernel/kexec/kexec-tools_2.0.29.bb | |||
| @@ -7,6 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ | |||
| 7 | file://kexec/kexec.c;beginline=1;endline=20;md5=af10f6ae4a8715965e648aa687ad3e09 \ | 7 | file://kexec/kexec.c;beginline=1;endline=20;md5=af10f6ae4a8715965e648aa687ad3e09 \ |
| 8 | " | 8 | " |
| 9 | DEPENDS = "zlib xz" | 9 | DEPENDS = "zlib xz" |
| 10 | RDEPENDS:${PN} = "makedumpfile" | ||
| 10 | 11 | ||
| 11 | SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz \ | 12 | SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz \ |
| 12 | file://kdump \ | 13 | file://kdump \ |
diff --git a/meta/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch b/meta/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch new file mode 100644 index 0000000000..96a996f616 --- /dev/null +++ b/meta/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch | |||
| @@ -0,0 +1,139 @@ | |||
| 1 | From 6d16911316cb576db0239f607e60918a222e4436 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Mingli Yu <mingli.yu@windriver.com> | ||
| 3 | Date: Sun, 24 Apr 2022 17:25:33 +0800 | ||
| 4 | Subject: [PATCH] makedumpfile: replace hardcode CFLAGS | ||
| 5 | |||
| 6 | * Create alias for target such as powerpc as powerpc32 | ||
| 7 | * Remove hardcode CFLAGS | ||
| 8 | * Add CFLAGS_COMMON to instead of CFLAGS so can flexibly | ||
| 9 | customize CFLAGS and not hardcode the CFLAGS as previously | ||
| 10 | * Forcibly to link dynamic library as the poky build | ||
| 11 | system doesn't build static library by default | ||
| 12 | |||
| 13 | Upstream-Status: Inappropriate [oe specific] | ||
| 14 | |||
| 15 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> | ||
| 16 | |||
| 17 | [2021-11-18] Patch updated to use CFLAGS_COMMON for zstd | ||
| 18 | Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org> | ||
| 19 | |||
| 20 | Rebase to 1.7.1 | ||
| 21 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> | ||
| 22 | --- | ||
| 23 | Makefile | 40 +++++++++++++++++++++------------------- | ||
| 24 | 1 file changed, 21 insertions(+), 19 deletions(-) | ||
| 25 | |||
| 26 | diff --git a/Makefile b/Makefile | ||
| 27 | index 71d8548..22acdd5 100644 | ||
| 28 | --- a/Makefile | ||
| 29 | +++ b/Makefile | ||
| 30 | @@ -8,12 +8,6 @@ ifeq ($(strip $CC),) | ||
| 31 | CC = gcc | ||
| 32 | endif | ||
| 33 | |||
| 34 | -CFLAGS_BASE := $(CFLAGS) -g -O2 -Wall -D_FILE_OFFSET_BITS=64 \ | ||
| 35 | - -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE | ||
| 36 | -CFLAGS := $(CFLAGS_BASE) -DVERSION='"$(VERSION)"' -DRELEASE_DATE='"$(DATE)"' | ||
| 37 | -CFLAGS_ARCH := $(CFLAGS_BASE) | ||
| 38 | -# LDFLAGS = -L/usr/local/lib -I/usr/local/include | ||
| 39 | - | ||
| 40 | HOST_ARCH := $(shell uname -m) | ||
| 41 | # Use TARGET as the target architecture if specified. | ||
| 42 | # Defaults to uname -m | ||
| 43 | @@ -24,26 +18,34 @@ endif | ||
| 44 | ARCH := $(shell echo ${TARGET} | sed -e s/i.86/x86/ -e s/sun4u/sparc64/ \ | ||
| 45 | -e s/arm.*/arm/ -e s/sa110/arm/ \ | ||
| 46 | -e s/s390x/s390/ -e s/parisc64/parisc/ \ | ||
| 47 | - -e s/ppc64/powerpc64/ -e s/ppc/powerpc32/) | ||
| 48 | + -e s/ppc64/powerpc64/ -e s/ppc/powerpc32/ \ | ||
| 49 | + -e s/_powerpc_/_powerpc32_/) | ||
| 50 | |||
| 51 | CROSS := | ||
| 52 | ifneq ($(TARGET), $(HOST_ARCH)) | ||
| 53 | CROSS := -U__$(HOST_ARCH)__ | ||
| 54 | endif | ||
| 55 | |||
| 56 | -CFLAGS += -D__$(ARCH)__ $(CROSS) | ||
| 57 | CFLAGS_ARCH += -D__$(ARCH)__ $(CROSS) | ||
| 58 | |||
| 59 | -ifeq ($(ARCH), powerpc64) | ||
| 60 | -CFLAGS += -m64 | ||
| 61 | +ifeq ($(ARCH), __powerpc64__) | ||
| 62 | CFLAGS_ARCH += -m64 | ||
| 63 | endif | ||
| 64 | |||
| 65 | -ifeq ($(ARCH), powerpc32) | ||
| 66 | -CFLAGS += -m32 | ||
| 67 | +ifeq ($(ARCH), __powerpc32__) | ||
| 68 | CFLAGS_ARCH += -m32 | ||
| 69 | endif | ||
| 70 | |||
| 71 | +CFLAGS_ARCH += $(CFLAGS) \ | ||
| 72 | + -D_FILE_OFFSET_BITS=64 \ | ||
| 73 | + -D_LARGEFILE_SOURCE \ | ||
| 74 | + -D_LARGEFILE64_SOURCE | ||
| 75 | + | ||
| 76 | +CFLAGS_COMMON = $(CFLAGS_ARCH) \ | ||
| 77 | + -DVERSION='"$(VERSION)"' \ | ||
| 78 | + -DRELEASE_DATE='"$(DATE)"' | ||
| 79 | + | ||
| 80 | + | ||
| 81 | SRC_BASE = makedumpfile.c makedumpfile.h diskdump_mod.h sadump_mod.h sadump_info.h | ||
| 82 | SRC_PART = print_info.c dwarf_info.c elf_info.c erase_info.c sadump_info.c cache.c tools.c printk.c detect_cycle.c | ||
| 83 | OBJ_PART=$(patsubst %.c,%.o,$(SRC_PART)) | ||
| 84 | @@ -52,12 +54,12 @@ OBJ_ARCH=$(patsubst %.c,%.o,$(SRC_ARCH)) | ||
| 85 | |||
| 86 | LIBS = -ldw -lbz2 -ldl -lelf -lz | ||
| 87 | ifneq ($(LINKTYPE), dynamic) | ||
| 88 | -LIBS := -static $(LIBS) -llzma | ||
| 89 | +LIBS := $(LIBS) -llzma | ||
| 90 | endif | ||
| 91 | |||
| 92 | ifeq ($(USELZO), on) | ||
| 93 | LIBS := -llzo2 $(LIBS) | ||
| 94 | -CFLAGS += -DUSELZO | ||
| 95 | +CFLAGS_COMMON += -DUSELZO | ||
| 96 | endif | ||
| 97 | |||
| 98 | ifeq ($(USESNAPPY), on) | ||
| 99 | @@ -65,12 +67,12 @@ LIBS := -lsnappy $(LIBS) | ||
| 100 | ifneq ($(LINKTYPE), dynamic) | ||
| 101 | LIBS := $(LIBS) -lstdc++ | ||
| 102 | endif | ||
| 103 | -CFLAGS += -DUSESNAPPY | ||
| 104 | +CFLAGS_COMMON += -DUSESNAPPY | ||
| 105 | endif | ||
| 106 | |||
| 107 | ifeq ($(USEZSTD), on) | ||
| 108 | LIBS := -lzstd $(LIBS) | ||
| 109 | -CFLAGS += -DUSEZSTD | ||
| 110 | +CFLAGS_COMMON += -DUSEZSTD | ||
| 111 | endif | ||
| 112 | |||
| 113 | ifeq ($(DEBUG), on) | ||
| 114 | @@ -104,14 +106,14 @@ LIBS := $(LIBS) $(call try-run,\ | ||
| 115 | all: makedumpfile | ||
| 116 | |||
| 117 | $(OBJ_PART): $(SRC_PART) | ||
| 118 | - $(CC) $(CFLAGS) -c -o ./$@ $(VPATH)$(@:.o=.c) | ||
| 119 | + $(CC) $(CFLAGS_COMMON) -c -o ./$@ $(VPATH)$(@:.o=.c) | ||
| 120 | |||
| 121 | $(OBJ_ARCH): $(SRC_ARCH) | ||
| 122 | @mkdir -p $(@D) | ||
| 123 | $(CC) $(CFLAGS_ARCH) -c -o ./$@ $(VPATH)$(@:.o=.c) | ||
| 124 | |||
| 125 | makedumpfile: $(SRC_BASE) $(OBJ_PART) $(OBJ_ARCH) | ||
| 126 | - $(CC) $(CFLAGS) $(LDFLAGS) $(OBJ_PART) $(OBJ_ARCH) -rdynamic -o $@ $< $(LIBS) | ||
| 127 | + $(CC) $(CFLAGS_COMMON) $(LDFLAGS) $(OBJ_PART) $(OBJ_ARCH) -rdynamic -o $@ $< $(LIBS) | ||
| 128 | @sed -e "s/@DATE@/$(DATE)/" \ | ||
| 129 | -e "s/@VERSION@/$(VERSION)/" \ | ||
| 130 | $(VPATH)makedumpfile.8.in > $(VPATH)makedumpfile.8 | ||
| 131 | @@ -120,7 +122,7 @@ makedumpfile: $(SRC_BASE) $(OBJ_PART) $(OBJ_ARCH) | ||
| 132 | $(VPATH)makedumpfile.conf.5.in > $(VPATH)makedumpfile.conf.5 | ||
| 133 | |||
| 134 | eppic_makedumpfile.so: extension_eppic.c | ||
| 135 | - $(CC) $(CFLAGS) $(LDFLAGS) -shared -rdynamic -o $@ extension_eppic.c -fPIC -leppic -ltinfo | ||
| 136 | + $(CC) $(CFLAGS_COMMON) $(LDFLAGS) -shared -rdynamic -o $@ extension_eppic.c -fPIC -leppic -ltinfo | ||
| 137 | |||
| 138 | clean: | ||
| 139 | rm -f $(OBJ) $(OBJ_PART) $(OBJ_ARCH) makedumpfile makedumpfile.8 makedumpfile.conf.5 | ||
diff --git a/meta/recipes-kernel/makedumpfile/makedumpfile_1.7.5.bb b/meta/recipes-kernel/makedumpfile/makedumpfile_1.7.5.bb new file mode 100644 index 0000000000..85b44c4941 --- /dev/null +++ b/meta/recipes-kernel/makedumpfile/makedumpfile_1.7.5.bb | |||
| @@ -0,0 +1,62 @@ | |||
| 1 | SUMMARY = "VMcore extraction tool" | ||
| 2 | DESCRIPTION = "\ | ||
| 3 | This program is used to extract a subset of the memory available either \ | ||
| 4 | via /dev/mem or /proc/vmcore (for crashdumps). It is used to get memory \ | ||
| 5 | images without extra uneeded information (zero pages, userspace programs, \ | ||
| 6 | etc). \ | ||
| 7 | " | ||
| 8 | HOMEPAGE = "https://github.com/makedumpfile/makedumpfile" | ||
| 9 | |||
| 10 | LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" | ||
| 11 | LICENSE = "GPL-2.0-only" | ||
| 12 | |||
| 13 | SRCBRANCH ?= "master" | ||
| 14 | SRCREV = "c266469347d49287be38059d45e7aaa454db9cb2" | ||
| 15 | |||
| 16 | DEPENDS = "bzip2 zlib elfutils xz" | ||
| 17 | RDEPENDS:${PN}-tools = "perl ${PN}" | ||
| 18 | |||
| 19 | # mips/rv32 would not compile. | ||
| 20 | COMPATIBLE_HOST:mipsarcho32 = "null" | ||
| 21 | COMPATIBLE_HOST:riscv32 = "null" | ||
| 22 | |||
| 23 | PACKAGES =+ "${PN}-tools" | ||
| 24 | FILES:${PN}-tools = "${bindir}/*.pl" | ||
| 25 | |||
| 26 | SRC_URI = "\ | ||
| 27 | git://github.com/makedumpfile/makedumpfile;branch=${SRCBRANCH};protocol=https \ | ||
| 28 | file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \ | ||
| 29 | " | ||
| 30 | |||
| 31 | S = "${WORKDIR}/git" | ||
| 32 | |||
| 33 | UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" | ||
| 34 | |||
| 35 | SECTION = "base" | ||
| 36 | |||
| 37 | # If we do not specify TARGET, makedumpfile will build for the host but use the | ||
| 38 | # target gcc. | ||
| 39 | # | ||
| 40 | |||
| 41 | MAKEDUMPFILE_TARGET ?= "${TARGET_ARCH}" | ||
| 42 | MAKEDUMPFILE_TARGET:powerpc = "ppc" | ||
| 43 | |||
| 44 | EXTRA_OEMAKE = "\ | ||
| 45 | LINKTYPE=static \ | ||
| 46 | TARGET=${MAKEDUMPFILE_TARGET} \ | ||
| 47 | ${PACKAGECONFIG_CONFARGS} \ | ||
| 48 | " | ||
| 49 | |||
| 50 | PACKAGECONFIG ??= "" | ||
| 51 | PACKAGECONFIG[lzo] = "USELZO=on,USELZO=off,lzo" | ||
| 52 | PACKAGECONFIG[snappy] = "USESNAPPY=on,USESNAPPY=off,snappy" | ||
| 53 | PACKAGECONFIG[zstd] = "USEZSTD=on,USEZSTD=off,zstd" | ||
| 54 | |||
| 55 | do_install () { | ||
| 56 | mkdir -p ${D}/usr/bin | ||
| 57 | install -m 755 ${S}/makedumpfile ${D}/usr/bin | ||
| 58 | install -m 755 ${S}/makedumpfile-R.pl ${D}/usr/bin | ||
| 59 | |||
| 60 | mkdir -p ${D}/etc/ | ||
| 61 | install -m 644 ${S}/makedumpfile.conf ${D}/etc/makedumpfile.conf.sample | ||
| 62 | } | ||
