backport upstream patches
Signed-off-by: Zhipeng Xie <xiezhipeng1@huawei.com>
This commit is contained in:
parent
78169befd0
commit
98a26ae704
@ -0,0 +1,36 @@
|
||||
From fa5a95cafdb034b825242a93ef1b4ce57985a93d Mon Sep 17 00:00:00 2001
|
||||
From: Josh Poimboeuf <jpoimboe@redhat.com>
|
||||
Date: Tue, 13 Apr 2021 13:58:59 -0500
|
||||
Subject: [PATCH] create-diff-object: Fix out-of-range relocation error message
|
||||
|
||||
Showing sec+addend isn't valid, show sym+addend instead.
|
||||
|
||||
Before:
|
||||
|
||||
create-diff-object: ERROR: sys.o: kpatch_check_relocations: 2550: out-of-range relocation .rodata.__kpatch_do_sys_uname.str1.1+139 in .rela.text.__kpatch_do_sys_uname
|
||||
|
||||
After:
|
||||
|
||||
create-diff-object: ERROR: sys.o: kpatch_check_relocations: 2550: out-of-range relocation .LC7+139 in .rela.text.__kpatch_do_sys_uname
|
||||
|
||||
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
|
||||
---
|
||||
kpatch-build/create-diff-object.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/kpatch-build/create-diff-object.c b/kpatch-build/create-diff-object.c
|
||||
index 82e486f..d427beb 100644
|
||||
--- a/kpatch-build/create-diff-object.c
|
||||
+++ b/kpatch-build/create-diff-object.c
|
||||
@@ -2547,7 +2547,7 @@ static void kpatch_check_relocations(struct kpatch_elf *kelf)
|
||||
if (rela->sym->sec) {
|
||||
sdata = rela->sym->sec->data;
|
||||
if (rela->addend > (long)sdata->d_size) {
|
||||
- ERROR("out-of-range relocation %s+%lx in %s", rela->sym->sec->name,
|
||||
+ ERROR("out-of-range relocation %s+%lx in %s", rela->sym->name,
|
||||
rela->addend, sec->name);
|
||||
}
|
||||
}
|
||||
--
|
||||
2.23.0
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
From 81f9ca4833bf9c5867858d633c340cedca554ca6 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Poimboeuf <jpoimboe@redhat.com>
|
||||
Date: Tue, 13 Apr 2021 14:00:41 -0500
|
||||
Subject: [PATCH] create-diff-object: Fix out-of-range relocation check
|
||||
|
||||
Improve the relocation check for the case where the referenced symbol
|
||||
isn't at the beginning of the section.
|
||||
|
||||
Note that the check still isn't perfect, as many relocations have a
|
||||
negative addend. But it's still a lot better than nothing.
|
||||
|
||||
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
|
||||
---
|
||||
kpatch-build/create-diff-object.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/kpatch-build/create-diff-object.c b/kpatch-build/create-diff-object.c
|
||||
index d427beb..14eb1f5 100644
|
||||
--- a/kpatch-build/create-diff-object.c
|
||||
+++ b/kpatch-build/create-diff-object.c
|
||||
@@ -2546,7 +2546,7 @@ static void kpatch_check_relocations(struct kpatch_elf *kelf)
|
||||
list_for_each_entry(rela, &sec->relas, list) {
|
||||
if (rela->sym->sec) {
|
||||
sdata = rela->sym->sec->data;
|
||||
- if (rela->addend > (long)sdata->d_size) {
|
||||
+ if ((long)rela->sym->sym.st_value + rela->addend > (long)sdata->d_size) {
|
||||
ERROR("out-of-range relocation %s+%lx in %s", rela->sym->name,
|
||||
rela->addend, sec->name);
|
||||
}
|
||||
--
|
||||
2.23.0
|
||||
|
||||
25
0034-add-openEuler-build-support.patch
Normal file
25
0034-add-openEuler-build-support.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From eaaced1912c43103749366927daff5794ea4f404 Mon Sep 17 00:00:00 2001
|
||||
From: gouhao <gouhao@uniontech.com>
|
||||
Date: Wed, 8 Sep 2021 09:37:08 +0800
|
||||
Subject: [PATCH] add openEuler build support
|
||||
|
||||
---
|
||||
kpatch-build/kpatch-build | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/kpatch-build/kpatch-build b/kpatch-build/kpatch-build
|
||||
index 495ca3d..49c0045 100755
|
||||
--- a/kpatch-build/kpatch-build
|
||||
+++ b/kpatch-build/kpatch-build
|
||||
@@ -696,7 +696,7 @@ fi
|
||||
# shellcheck disable=SC1090
|
||||
[[ -f "$RELEASE_FILE" ]] && source "$RELEASE_FILE"
|
||||
DISTRO="$ID"
|
||||
-if [[ "$DISTRO" = fedora ]] || [[ "$DISTRO" = rhel ]] || [[ "$DISTRO" = ol ]] || [[ "$DISTRO" = centos ]]; then
|
||||
+if [[ "$DISTRO" = fedora ]] || [[ "$DISTRO" = rhel ]] || [[ "$DISTRO" = ol ]] || [[ "$DISTRO" = centos ]] || [[ "$DISTRO" = openEuler ]]; then
|
||||
[[ -z "$VMLINUX" ]] && VMLINUX="/usr/lib/debug/lib/modules/$ARCHVERSION/vmlinux"
|
||||
[[ -e "$VMLINUX" ]] || die "kernel-debuginfo-$ARCHVERSION not installed"
|
||||
|
||||
--
|
||||
2.23.0
|
||||
|
||||
11
kpatch.spec
11
kpatch.spec
@ -1,7 +1,7 @@
|
||||
Name: kpatch
|
||||
Epoch: 1
|
||||
Version: 0.9.1
|
||||
Release: 19
|
||||
Release: 20
|
||||
Summary: A Linux dynamic kernel patching infrastructure
|
||||
|
||||
License: GPLv2
|
||||
@ -43,6 +43,9 @@ Patch0028:0028-lookup-Add-__UNIQUE_ID_-to-maybe_discarded_sym-list.patch
|
||||
Patch0029:0029-create-diff-object-error-on-detect-new-changed-ALTIN.patch
|
||||
Patch0030:0030-kpatch-update-sympos-for-duplicate-symbols-in-vmlinu.patch
|
||||
Patch0031:0031-create-diff-object-fix-segment-fault-when-sec2-rela-.patch
|
||||
Patch0032:0032-create-diff-object-Fix-out-of-range-relocation-error.patch
|
||||
Patch0033:0033-create-diff-object-Fix-out-of-range-relocation-check.patch
|
||||
Patch0034:0034-add-openEuler-build-support.patch
|
||||
|
||||
BuildRequires: gcc elfutils-libelf-devel kernel-devel git
|
||||
Requires: bc make gcc patch bison flex openssl-devel
|
||||
@ -103,6 +106,12 @@ popd
|
||||
%{_mandir}/man1/*.1.gz
|
||||
|
||||
%changelog
|
||||
* Tue Oct 26 2021 Zhipeng Xie<xiezhipeng1@huawei.com> -1:0.9.1-20
|
||||
- Type:enhancement
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC:backport upstream patches
|
||||
|
||||
* Tue Oct 26 2021 Zhipeng Xie<xiezhipeng1@huawei.com> -1:0.9.1-19
|
||||
- Type:enhancement
|
||||
- ID:NA
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user