+Khem Raj and Wang My in CC

Hi all,
for context: Wang Mingyu has been maintaining the recipe in
meta-openembedded. I proposed to her to add them as maintainer in poky per
email, but have not heard back. Because of that, I wrote down my name
instead. I am completely open to having someone else written down as the
maintainer of makedumpfile in poky, in case it makes more sense.

Étienne

On Mon, Oct 14, 2024 at 11:12 AM Etienne Cordonnier via
lists.openembedded.org <ecordonnier=snap....@lists.openembedded.org> wrote:

> From: Etienne Cordonnier <ecordonn...@snap.com>
>
> The kdump script from kexec-tools does not work without makedumpfile (see
> https://urldefense.proofpoint.com/v2/url?u=https-3A__git.yoctoproject.org_poky_tree_meta_recipes-2Dkernel_kexec_kexec-2Dtools_kdump-23n14&d=DwIDAg&c=ncDTmphkJTvjIDPh0hpF_4vCHvabgGkICC2epckfdiw&r=AhkbNonVuMIGRfPx_Qj9TsRih1DULJTKUkSGa66m67E&m=P-43Iy1a-1QaUUSrWN6DEeLWV4aG-XtwZpHqKi3mYSCthF8ucEUy5NbXbB1A1gBJ&s=pvS8H6faoTDdXL0OP37Fg3OC8xR0mhtz-148E4m1HIs&e=
> ).
> 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/.
>
> Signed-off-by: Etienne Cordonnier <ecordonn...@snap.com>
> ---
>  meta/conf/distro/include/maintainers.inc      |   1 +
>  .../kexec/kexec-tools_2.0.29.bb               |   1 +
>  ...makedumpfile-replace-hardcode-CFLAGS.patch | 139 ++++++++++++++++++
>  .../makedumpfile/makedumpfile_1.7.5.bb        |  62 ++++++++
>  4 files changed, 203 insertions(+)
>  create mode 100644
> meta/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch
>  create mode 100644 meta/recipes-kernel/makedumpfile/makedumpfile_1.7.5.bb
>
> 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.y...@windriver.com>"
>  RECIPE_MAINTAINER:pn-make = "Robert Yang <liezhi.y...@windriver.com>"
>  RECIPE_MAINTAINER:pn-makedepend = "Robert Yang <liezhi.y...@windriver.com
> >"
>  RECIPE_MAINTAINER:pn-makedevs = "Chen Qi <qi.c...@windriver.com>"
> +RECIPE_MAINTAINER:pn-makedumpfile = "Etienne Cordonnier <
> ecordonn...@snap.com>"
>  RECIPE_MAINTAINER:pn-make-mod-scripts = "Bruce Ashfield <
> bruce.ashfi...@gmail.com>"
>  RECIPE_MAINTAINER:pn-man-db = "Hongxu Jia <hongxu....@windriver.com>"
>  RECIPE_MAINTAINER:pn-man-pages = "Hongxu Jia <hongxu....@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 \
>
>  
> file://kexec/kexec.c;beginline=1;endline=20;md5=af10f6ae4a8715965e648aa687ad3e09
> \
>                      "
>  DEPENDS = "zlib xz"
> +RDEPENDS:${PN} = "makedumpfile"
>
>  SRC_URI =
> "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz \
>             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 @@
> +From 6d16911316cb576db0239f607e60918a222e4436 Mon Sep 17 00:00:00 2001
> +From: Mingli Yu <mingli...@windriver.com>
> +Date: Sun, 24 Apr 2022 17:25:33 +0800
> +Subject: [PATCH] makedumpfile: replace hardcode CFLAGS
> +
> +* Create alias for target such as powerpc as powerpc32
> +* Remove hardcode CFLAGS
> +* Add CFLAGS_COMMON to instead of CFLAGS so can flexibly
> +  customize CFLAGS and not hardcode the CFLAGS as previously
> +* Forcibly to link dynamic library as the poky build
> +  system doesn't build static library by default
> +
> +Upstream-Status: Inappropriate [oe specific]
> +
> +Signed-off-by: Mingli Yu <mingli...@windriver.com>
> +
> +[2021-11-18] Patch updated to use CFLAGS_COMMON for zstd
> +Signed-off-by: Fathi Boudra <fathi.bou...@linaro.org>
> +
> +Rebase to 1.7.1
> +Signed-off-by: Mingli Yu <mingli...@windriver.com>
> +---
> + Makefile | 40 +++++++++++++++++++++-------------------
> + 1 file changed, 21 insertions(+), 19 deletions(-)
> +
> +diff --git a/Makefile b/Makefile
> +index 71d8548..22acdd5 100644
> +--- a/Makefile
> ++++ b/Makefile
> +@@ -8,12 +8,6 @@ ifeq ($(strip $CC),)
> + CC    = gcc
> + endif
> +
> +-CFLAGS_BASE := $(CFLAGS) -g -O2 -Wall -D_FILE_OFFSET_BITS=64 \
> +-              -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> +-CFLAGS      := $(CFLAGS_BASE) -DVERSION='"$(VERSION)"'
> -DRELEASE_DATE='"$(DATE)"'
> +-CFLAGS_ARCH := $(CFLAGS_BASE)
> +-# LDFLAGS = -L/usr/local/lib -I/usr/local/include
> +-
> + HOST_ARCH := $(shell uname -m)
> + # Use TARGET as the target architecture if specified.
> + # Defaults to uname -m
> +@@ -24,26 +18,34 @@ endif
> + ARCH := $(shell echo ${TARGET}  | sed -e s/i.86/x86/ -e s/sun4u/sparc64/
> \
> +                              -e s/arm.*/arm/ -e s/sa110/arm/ \
> +                              -e s/s390x/s390/ -e s/parisc64/parisc/ \
> +-                             -e s/ppc64/powerpc64/ -e s/ppc/powerpc32/)
> ++                             -e s/ppc64/powerpc64/ -e s/ppc/powerpc32/ \
> ++                             -e s/_powerpc_/_powerpc32_/)
> +
> + CROSS :=
> + ifneq ($(TARGET), $(HOST_ARCH))
> + CROSS := -U__$(HOST_ARCH)__
> + endif
> +
> +-CFLAGS += -D__$(ARCH)__ $(CROSS)
> + CFLAGS_ARCH += -D__$(ARCH)__ $(CROSS)
> +
> +-ifeq ($(ARCH), powerpc64)
> +-CFLAGS += -m64
> ++ifeq ($(ARCH), __powerpc64__)
> + CFLAGS_ARCH += -m64
> + endif
> +
> +-ifeq ($(ARCH), powerpc32)
> +-CFLAGS += -m32
> ++ifeq ($(ARCH), __powerpc32__)
> + CFLAGS_ARCH += -m32
> + endif
> +
> ++CFLAGS_ARCH += $(CFLAGS) \
> ++              -D_FILE_OFFSET_BITS=64 \
> ++              -D_LARGEFILE_SOURCE \
> ++              -D_LARGEFILE64_SOURCE
> ++
> ++CFLAGS_COMMON = $(CFLAGS_ARCH) \
> ++              -DVERSION='"$(VERSION)"' \
> ++              -DRELEASE_DATE='"$(DATE)"'
> ++
> ++
> + SRC_BASE = makedumpfile.c makedumpfile.h diskdump_mod.h sadump_mod.h
> sadump_info.h
> + 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
> + OBJ_PART=$(patsubst %.c,%.o,$(SRC_PART))
> +@@ -52,12 +54,12 @@ OBJ_ARCH=$(patsubst %.c,%.o,$(SRC_ARCH))
> +
> + LIBS = -ldw -lbz2 -ldl -lelf -lz
> + ifneq ($(LINKTYPE), dynamic)
> +-LIBS := -static $(LIBS) -llzma
> ++LIBS := $(LIBS) -llzma
> + endif
> +
> + ifeq ($(USELZO), on)
> + LIBS := -llzo2 $(LIBS)
> +-CFLAGS += -DUSELZO
> ++CFLAGS_COMMON += -DUSELZO
> + endif
> +
> + ifeq ($(USESNAPPY), on)
> +@@ -65,12 +67,12 @@ LIBS := -lsnappy $(LIBS)
> + ifneq ($(LINKTYPE), dynamic)
> + LIBS := $(LIBS) -lstdc++
> + endif
> +-CFLAGS += -DUSESNAPPY
> ++CFLAGS_COMMON += -DUSESNAPPY
> + endif
> +
> + ifeq ($(USEZSTD), on)
> + LIBS := -lzstd $(LIBS)
> +-CFLAGS += -DUSEZSTD
> ++CFLAGS_COMMON += -DUSEZSTD
> + endif
> +
> + ifeq ($(DEBUG), on)
> +@@ -104,14 +106,14 @@ LIBS := $(LIBS) $(call try-run,\
> + all: makedumpfile
> +
> + $(OBJ_PART): $(SRC_PART)
> +-      $(CC) $(CFLAGS) -c -o ./$@ $(VPATH)$(@:.o=.c)
> ++      $(CC) $(CFLAGS_COMMON) -c -o ./$@ $(VPATH)$(@:.o=.c)
> +
> + $(OBJ_ARCH): $(SRC_ARCH)
> +       @mkdir -p $(@D)
> +       $(CC) $(CFLAGS_ARCH) -c -o ./$@ $(VPATH)$(@:.o=.c)
> +
> + makedumpfile: $(SRC_BASE) $(OBJ_PART) $(OBJ_ARCH)
> +-      $(CC) $(CFLAGS) $(LDFLAGS) $(OBJ_PART) $(OBJ_ARCH) -rdynamic -o $@
> $< $(LIBS)
> ++      $(CC) $(CFLAGS_COMMON) $(LDFLAGS) $(OBJ_PART) $(OBJ_ARCH)
> -rdynamic -o $@ $< $(LIBS)
> +       @sed -e "s/@DATE@/$(DATE)/" \
> +            -e "s/@VERSION@/$(VERSION)/" \
> +            $(VPATH)makedumpfile.8.in > $(VPATH)makedumpfile.8
> +@@ -120,7 +122,7 @@ makedumpfile: $(SRC_BASE) $(OBJ_PART) $(OBJ_ARCH)
> +            $(VPATH)makedumpfile.conf.5.in > $(VPATH)makedumpfile.conf.5
> +
> + eppic_makedumpfile.so: extension_eppic.c
> +-      $(CC) $(CFLAGS) $(LDFLAGS) -shared -rdynamic -o $@
> extension_eppic.c -fPIC -leppic -ltinfo
> ++      $(CC) $(CFLAGS_COMMON) $(LDFLAGS) -shared -rdynamic -o $@
> extension_eppic.c -fPIC -leppic -ltinfo
> +
> + clean:
> +       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 @@
> +SUMMARY = "VMcore extraction tool"
> +DESCRIPTION = "\
> +    This program is used to extract a subset of the memory available
> either \
> +    via /dev/mem or /proc/vmcore (for crashdumps). It is used to get
> memory \
> +    images without extra uneeded information (zero pages, userspace
> programs, \
> +    etc). \
> +"
> +HOMEPAGE = "https://github.com/makedumpfile/makedumpfile";
> +
> +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
> +LICENSE = "GPL-2.0-only"
> +
> +SRCBRANCH ?= "master"
> +SRCREV = "c266469347d49287be38059d45e7aaa454db9cb2"
> +
> +DEPENDS = "bzip2 zlib elfutils xz"
> +RDEPENDS:${PN}-tools = "perl ${PN}"
> +
> +# mips/rv32 would not compile.
> +COMPATIBLE_HOST:mipsarcho32 = "null"
> +COMPATIBLE_HOST:riscv32 = "null"
> +
> +PACKAGES =+ "${PN}-tools"
> +FILES:${PN}-tools = "${bindir}/*.pl"
> +
> +SRC_URI = "\
> +    git://
> github.com/makedumpfile/makedumpfile;branch=${SRCBRANCH};protocol=https
> <http://github.com/makedumpfile/makedumpfile;branch=$%7BSRCBRANCH%7D;protocol=https>
> \
> +    file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \
> +"
> +
> +S = "${WORKDIR}/git"
> +
> +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
> +
> +SECTION = "base"
> +
> +# If we do not specify TARGET, makedumpfile will build for the host but
> use the
> +# target gcc.
> +#
> +
> +MAKEDUMPFILE_TARGET ?= "${TARGET_ARCH}"
> +MAKEDUMPFILE_TARGET:powerpc = "ppc"
> +
> +EXTRA_OEMAKE = "\
> +    LINKTYPE=static \
> +    TARGET=${MAKEDUMPFILE_TARGET} \
> +    ${PACKAGECONFIG_CONFARGS} \
> +"
> +
> +PACKAGECONFIG ??= ""
> +PACKAGECONFIG[lzo] = "USELZO=on,USELZO=off,lzo"
> +PACKAGECONFIG[snappy] = "USESNAPPY=on,USESNAPPY=off,snappy"
> +PACKAGECONFIG[zstd] = "USEZSTD=on,USEZSTD=off,zstd"
> +
> +do_install () {
> +    mkdir -p ${D}/usr/bin
> +    install -m 755 ${S}/makedumpfile ${D}/usr/bin
> +    install -m 755 ${S}/makedumpfile-R.pl ${D}/usr/bin
> +
> +    mkdir -p ${D}/etc/
> +    install -m 644 ${S}/makedumpfile.conf
> ${D}/etc/makedumpfile.conf.sample
> +}
> --
> 2.43.0
>
>
> 
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#205735): 
https://lists.openembedded.org/g/openembedded-core/message/205735
Mute This Topic: https://lists.openembedded.org/mt/108998255/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to