libcareplus/0019-Revert-fix-probably-restore-cc-symbol-link-fail-when.patch
yezengruan eda47481b9 update libcareplus to version 1.0.0-12
kpatch_process: fix possible double free.
ptrace: fix NULL pointer access problem
fix patched process crashing when acccess the global var
fix probably restore cc symbol link fail when kill patch building uncourteous
optimize: Remove unnecessary comparison code

Signed-off-by: yezengruan <yezengruan@huawei.com>
(cherry picked from commit f3d59711105eb667fa2f920958fcbdbb7068afd2)
2022-07-21 15:47:45 +08:00

102 lines
2.7 KiB
Diff

From d86044aa709617186fa4eeb2dff9540395f77c8e Mon Sep 17 00:00:00 2001
From: ctyunsystem <ctyuncommiter05@chinatelecom.cn>
Date: Tue, 5 Jul 2022 10:13:15 +0800
Subject: [PATCH 1/2] Revert "fix probably restore cc symbol link fail when
kill patch building uncourteous" ==> Revert "libcare-patch-make: fix some
bugs"
---
src/libcare-patch-make | 45 ++++++++++++++++++++++++++++++++++++++----
1 file changed, 41 insertions(+), 4 deletions(-)
diff --git a/src/libcare-patch-make b/src/libcare-patch-make
index 41e5926..03aa1d6 100755
--- a/src/libcare-patch-make
+++ b/src/libcare-patch-make
@@ -83,6 +83,32 @@ restore_origs() {
trap "restore_origs" 0
+replace_qemu_ld_flags() {
+ local qemu_ld_flags_old=$1
+ ret=$(echo $qemu_ld_flags_old | grep "\-Wl,-q")
+ if [[ "$ret" == "" ]]; then
+ local qemu_ld_flags="${qemu_ld_flags_old} -Wl,-q"
+ echo "replace QEMU_LDFLAGS to '${qemu_ld_flags}'"
+ sed -i "/^QEMU_LDFLAGS=/c\\${qemu_ld_flags}" config-host.mak
+ fi
+}
+
+recover_qemu_ld_flags() {
+ local qemu_ld_flags=$1
+ echo "recover QEMU_LDFLAGS to '${qemu_ld_flags}'"
+ sed -i "/^QEMU_LDFLAGS=/c\\${qemu_ld_flags}" config-host.mak
+}
+
+replace_cc_symbolink() {
+ unlink $SYMBOLINK_CC
+ ln -s $LIBCARE_CC $SYMBOLINK_CC
+}
+
+recover_cc_symbolink() {
+ unlink $SYMBOLINK_CC
+ ln -s $REAL_CC $SYMBOLINK_CC
+}
+
build_objects() {
restore_origs
@@ -98,8 +124,7 @@ build_objects() {
export KPCC_DBGFILTER_ARGS=""
echo "${green}BUILDING ORIGINAL CODE${reset}"
- local lp_make_env_original="CC=${CC}"
- make $LPMAKEFILE $JOBS_MAKE ${lp_make_env_original} >$MAKE_OUTPUT 2>&1
+ make $LPMAKEFILE $JOBS_MAKE >$MAKE_OUTPUT 2>&1
echo "${green}INSTALLING ORIGINAL OBJECTS INTO $LPMAKE_ORIGINAL_DIR${reset}"
make $LPMAKEFILE $JOBS_MAKE install \
@@ -124,14 +149,20 @@ build_objects() {
export KPATCH_STAGE=patched
export KPCC_APPEND_ARGS="-Wl,-q"
+ qemu_ld_flags_bak=$(grep "^QEMU_LDFLAGS=" config-host.mak)
+ #add '-Wl,-q' to LD_FLAGS
+ replace_qemu_ld_flags "$qemu_ld_flags_bak"
+
echo "${green}BUILDING PATCHED CODE${reset}"
- local lp_make_env_patched="CC=${CC}"
- make $LPMAKEFILE $JOBS_MAKE ${lp_make_env_patched} >$MAKE_OUTPUT 2>&1
+ make $LPMAKEFILE $JOBS_MAKE >$MAKE_OUTPUT 2>&1
echo "${green}INSTALLING PATCHED OBJECTS INTO $LPMAKE_PATCHED_DIR${reset}"
make $LPMAKEFILE $JOBS_MAKE install \
"$destdir=$LPMAKE_PATCHED_DIR" \
>$MAKE_OUTPUT 2>&1
+
+ # recover LD_FLAGS
+ recover_qemu_ld_flags "$qemu_ld_flags_bak"
}
build_kpatches() {
@@ -243,10 +274,16 @@ main() {
prepare_env
+ # replace cc
+ replace_cc_symbolink
+
if test -z "$only_update"; then
build_objects "$@"
fi
build_kpatches
+
+ # recover cc
+ recover_cc_symbolink
}
main "$@"
--
2.27.0