2024-03-02 00:18:20 +08:00
|
|
|
From 2573039f44d58727421c235dca385589f9246d83 Mon Sep 17 00:00:00 2001
|
2020-03-22 06:56:43 -04:00
|
|
|
From: Zhipeng Xie <xiezhipeng1@huawei.com>
|
|
|
|
|
Date: Thu, 12 Mar 2020 06:56:21 -0400
|
2024-03-02 00:18:20 +08:00
|
|
|
Subject: [PATCH 17/38] kpatch-build: add compile flag -fno-reorder-functions
|
2020-03-22 06:56:43 -04:00
|
|
|
|
|
|
|
|
Sometimes function foo with static variables can be put in
|
|
|
|
|
.text.foo section in original binary and be put in
|
|
|
|
|
.text.unlikely.foo section in patched binary. This will result
|
|
|
|
|
in "reference to static local variable xxx in foo was removed"
|
|
|
|
|
problem because the .text.foo section can not be correlated
|
|
|
|
|
to .text.unlikely.foo section by create-diff-object.
|
|
|
|
|
|
|
|
|
|
gcc just put the function in .text.unlikely.xxx section,the
|
|
|
|
|
symbol name doesn't change which is different with other
|
|
|
|
|
optimization such as ".constprop/.isra/.part". So disable the
|
|
|
|
|
optimization with -fno-reorder-functions just make sure the
|
|
|
|
|
function is placed in .text.xxx section, kernel can still find
|
|
|
|
|
the symbol name to patch or relocate.
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Zhipeng Xie <xiezhipeng1@huawei.com>
|
|
|
|
|
---
|
|
|
|
|
kpatch-build/kpatch-build | 2 +-
|
|
|
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
|
|
|
|
|
|
diff --git a/kpatch-build/kpatch-build b/kpatch-build/kpatch-build
|
2024-03-02 00:18:20 +08:00
|
|
|
index 67e56e1..0431e0b 100755
|
2020-03-22 06:56:43 -04:00
|
|
|
--- a/kpatch-build/kpatch-build
|
|
|
|
|
+++ b/kpatch-build/kpatch-build
|
2024-03-02 00:18:20 +08:00
|
|
|
@@ -1194,7 +1194,7 @@ if [[ "$ARCH" = "s390x" ]]; then
|
2023-01-30 16:10:43 +08:00
|
|
|
ARCH_KCFLAGS="-mno-pic-data-is-text-relative -fno-section-anchors"
|
2020-03-22 06:56:43 -04:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
-export KCFLAGS="-I$DATADIR/patch -ffunction-sections -fdata-sections \
|
2021-11-16 12:10:06 +08:00
|
|
|
+export KCFLAGS="-I$DATADIR/patch -ffunction-sections -fdata-sections -fno-reorder-functions \
|
|
|
|
|
$ARCH_KCFLAGS $DEBUG_KCFLAGS"
|
2020-03-22 06:56:43 -04:00
|
|
|
|
|
|
|
|
echo "Reading special section data"
|
|
|
|
|
--
|
2023-01-30 16:10:43 +08:00
|
|
|
2.33.0
|
2020-09-12 05:45:06 -04:00
|
|
|
|