diff --git a/fix-ns-on-ET_DYN.patch b/fix-ns-on-ET_DYN.patch new file mode 100644 index 0000000..fc1697f --- /dev/null +++ b/fix-ns-on-ET_DYN.patch @@ -0,0 +1,35 @@ +--- kabi-dw-973fee0f575cc530347bac7f906e7967d4399735.orig/ksymtab.c 2022-01-10 16:09:27.000000000 +0100 ++++ kabi-dw-973fee0f575cc530347bac7f906e7967d4399735.new/ksymtab.c 2022-01-31 17:34:13.122000000 +0100 +@@ -155,6 +155,20 @@ + goto out; + } + ++ switch (ehdr->e_type) { ++ case ET_EXEC: ++ case ET_DYN: ++ case ET_REL: ++ break; ++ default: ++ printf("Unsupported object filetype of %s: %d\n", filename, ++ ehdr->e_type); ++ free(ehdr); ++ (void) elf_end(elf); ++ (void) close(fd); ++ goto out; ++ } ++ + /* + * Get section index of the string table associated with the section + * headers in the ELF file. +@@ -427,7 +441,10 @@ + + name += strlen(STRTAB_NS_PREFIX); + ns = (char *) ctx->ksymtab_raw; +- ns += (ctx->e_type == ET_EXEC) ? value - ctx->sh_addr : value; ++ if (ctx->e_type == ET_EXEC || ctx->e_type == ET_DYN) ++ ns += value - ctx->sh_addr; ++ else if (ctx->e_type == ET_REL) ++ ns += value; + + if (!strlen(ns)) + return; diff --git a/kabi-dw.spec b/kabi-dw.spec index 850cf0a..5f5ddda 100644 --- a/kabi-dw.spec +++ b/kabi-dw.spec @@ -7,11 +7,12 @@ Name: kabi-dw Version: 0 -Release: 0.23%{?dist} +Release: 0.24%{?dist} Summary: Detect changes in the ABI between kernel builds License: GPLv3+ URL: %{forgeurl} Source0: %{forgesource} +Patch0: fix-ns-on-ET_DYN.patch BuildRequires: elfutils-devel BuildRequires: gcc @@ -29,6 +30,7 @@ later comparing the text files. %prep %forgesetup +%patch0 -p1 %build LDFLAGS+=" -pie " @@ -49,6 +51,14 @@ install -m 0755 %{name} %{buildroot}%{_bindir}/ %license COPYING %changelog +* Tue Jan 18 2022 Cestmir Kalina - 0.24 +- Fix annocheck failures +- Fix osci tier0 test reference +- Fix ET_DYN vmlinux namespace support +- Resolves: rhbz#2038913 +- Resolves: rhbz#2045976 +- Resolves: rhbz#2038892 + * Mon Jan 10 2022 Cestmir Kalina - 0.23 - Add support for ET_EXEC - Add support for DW_TAG_restrict_type