diff --git a/.gitignore b/.gitignore index 59acbc7..8bdce0c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/kabi-dw-543ed656d009a4fc46a5a2b6ea60e0fd760865ec.tar.gz +SOURCES/kabi-dw-973fee0f575cc530347bac7f906e7967d4399735.tar.gz diff --git a/.kabi-dw.metadata b/.kabi-dw.metadata index 5d07be7..897ed2d 100644 --- a/.kabi-dw.metadata +++ b/.kabi-dw.metadata @@ -1 +1 @@ -f75ac52f06b95222054f12a881707976057fcaea SOURCES/kabi-dw-543ed656d009a4fc46a5a2b6ea60e0fd760865ec.tar.gz +d908e6e10c1e4b8c815ca3fa0247a6a76c849640 SOURCES/kabi-dw-973fee0f575cc530347bac7f906e7967d4399735.tar.gz diff --git a/SOURCES/fix-ns-on-ET_DYN.patch b/SOURCES/fix-ns-on-ET_DYN.patch new file mode 100644 index 0000000..fc1697f --- /dev/null +++ b/SOURCES/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/SPECS/kabi-dw.spec b/SPECS/kabi-dw.spec index 547d2ed..5f5ddda 100644 --- a/SPECS/kabi-dw.spec +++ b/SPECS/kabi-dw.spec @@ -1,17 +1,18 @@ %global forgeurl https://github.com/skozina/kabi-dw %global commitdate 20220110 -%global commit 543ed656d009a4fc46a5a2b6ea60e0fd760865ec +%global commit 973fee0f575cc530347bac7f906e7967d4399735 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %forgemeta -i 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,14 +30,14 @@ later comparing the text files. %prep %forgesetup +%patch0 -p1 %build -#CFLAGS=$RPM_OPT_FLAGS LDFLAGS=$RPM_LD_FLAGS make debug - -# The following option need to be removed once fixed upstream -# https://github.com/skozina/kabi-dw/issues/17 -LDFLAGS+=" -z muldefs " - +LDFLAGS+=" -pie " +%ifarch x86_64 +CFLAGS+=" -fcf-protection=full " +%endif +CFLAGS+=" -fPIE -D_GLIBCXX_ASSERTIONS -fstack-clash-protection -g" %set_build_flags %make_build @@ -50,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