From f94071cd9baa18c4e71e15b24c4547b01dfa785e Mon Sep 17 00:00:00 2001 From: yezengruan Date: Mon, 21 Mar 2022 10:07:28 +0800 Subject: [PATCH 1/2] libcare-patch-make: fix some bugs This patch fix following bugs: 1. origin build should not add '-Wl,-q' flags 2. recover config-host.mak after make kpatch for next building Signed-off-by: Bihong Yu Signed-off-by: yezengruan (cherry picked from commit 932be3ded6490136ae3a1e79a96f389498b41a42) --- libcare-patch-make-fix-some-bugs.patch | 130 +++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 libcare-patch-make-fix-some-bugs.patch diff --git a/libcare-patch-make-fix-some-bugs.patch b/libcare-patch-make-fix-some-bugs.patch new file mode 100644 index 0000000..86d9a62 --- /dev/null +++ b/libcare-patch-make-fix-some-bugs.patch @@ -0,0 +1,130 @@ +From 326fe36893de32fe8a8e95fcb5aee6df5c9a3fa7 Mon Sep 17 00:00:00 2001 +From: Bihong Yu +Date: Sat, 19 Mar 2022 15:20:27 +0800 +Subject: [PATCH] libcare-patch-make: fix some bugs + +This patch fix following bugs: +1. origin build should not add '-Wl,-q' flags +2. recover config-host.mak after make kpatch for next building + +Signed-off-by: Bihong Yu +Signed-off-by: yezengruan +--- + src/libcare-patch-make | 54 +++++++++++++++++++++++++----------------- + 1 file changed, 32 insertions(+), 22 deletions(-) + +diff --git a/src/libcare-patch-make b/src/libcare-patch-make +index 9a75e1f..03aa1d6 100755 +--- a/src/libcare-patch-make ++++ b/src/libcare-patch-make +@@ -53,9 +53,9 @@ prepare_env() { + LPMAKE_PATCHED_DIR="${LPMAKE_PATCHED_DIR-$PWD/.lpmaketmp/patched}" + LPMAKE_PATCHROOT="${LPMAKE_PATCHROOT-$PWD/patchroot}" + +- LIBCARE_CC=$CC +- SYMBOLINK_CC=$(which cc) +- REAL_CC=$(realpath $SYMBOLINK_CC) ++ LIBCARE_CC=$CC ++ SYMBOLINK_CC=$(which cc) ++ REAL_CC=$(realpath $SYMBOLINK_CC) + + export LPMAKE_ORIGINAL_DIR LPMAKE_PATCHED_DIR LPMAKE_PATCHROOT + mkdir -p "$LPMAKE_ORIGINAL_DIR" "$LPMAKE_PATCHED_DIR" "$LPMAKE_PATCHROOT" +@@ -83,24 +83,30 @@ restore_origs() { + + trap "restore_origs" 0 + +-change_qemu_ld_flags() { +- qemu_ld_flags=$(grep "^QEMU_LDFLAGS=" config-host.mak) +- ret=$(echo $qemu_ld_flags | grep "\-Wl,-q") +- if [[ "$ret" == "" ]];then +- qemu_ld_flags="${qemu_ld_flags} -Wl,-q" +- echo "change QEMU_LDFLAGS to '${qemu_ld_flags}'" +- sed -i "/^QEMU_LDFLAGS=/c\\${qemu_ld_flags}" config-host.mak +- fi ++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 ++ unlink $SYMBOLINK_CC ++ ln -s $LIBCARE_CC $SYMBOLINK_CC + } + + recover_cc_symbolink() { +- unlink $SYMBOLINK_CC +- ln -s $REAL_CC $SYMBOLINK_CC ++ unlink $SYMBOLINK_CC ++ ln -s $REAL_CC $SYMBOLINK_CC + } + + build_objects() { +@@ -117,9 +123,6 @@ build_objects() { + export KPATCH_STAGE=original + export KPCC_DBGFILTER_ARGS="" + +- #add '-Wl,-q' to LD_FLAGS +- change_qemu_ld_flags +- + echo "${green}BUILDING ORIGINAL CODE${reset}" + make $LPMAKEFILE $JOBS_MAKE >$MAKE_OUTPUT 2>&1 + +@@ -146,6 +149,10 @@ 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}" + make $LPMAKEFILE $JOBS_MAKE >$MAKE_OUTPUT 2>&1 + +@@ -153,6 +160,9 @@ build_objects() { + 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() { +@@ -264,16 +274,16 @@ main() { + + prepare_env + +- # replace cc +- replace_cc_symbolink ++ # replace cc ++ replace_cc_symbolink + + if test -z "$only_update"; then + build_objects "$@" + fi + build_kpatches + +- # recover cc +- recover_cc_symbolink ++ # recover cc ++ recover_cc_symbolink + } + + main "$@" +-- +2.27.0 + -- Gitee From 99c7ef48eac92cf232833ce7388a08f6ddfd4ec7 Mon Sep 17 00:00:00 2001 From: yezengruan Date: Mon, 21 Mar 2022 10:08:12 +0800 Subject: [PATCH 2/2] update spec with openeuler !27 Signed-off-by: yezengruan (cherry picked from commit f7f22bfc0876f11d67e5aff489ac1ccd4521a2c0) --- libcareplus.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libcareplus.spec b/libcareplus.spec index 6fb86ca..0b47db7 100644 --- a/libcareplus.spec +++ b/libcareplus.spec @@ -3,7 +3,7 @@ Version: 1.0.0 Name: libcareplus Summary: LibcarePlus tools -Release: 6 +Release: 7 Group: Applications/System License: GPLv2 Url: https://gitee.com/openeuler/libcareplus @@ -18,6 +18,7 @@ Patch0006: libcare-patch-make-adapt-libcare-patch-make-to-meson.patch Patch0007: kpatch_elf-compatible-with-older-versions-of-the-so-.patch Patch0008: kpatch_parse-fix-failed-to-recognize-.cold.patch Patch0009: help-modify-some-help-information.patch +Patch0010: libcare-patch-make-fix-some-bugs.patch BuildRequires: elfutils-libelf-devel libunwind-devel gcc systemd @@ -149,6 +150,9 @@ exit 0 %endif %changelog +* Mon Mar 21 2022 yezengruan 1.0.0.7 +- libcare-patch-make: fix some bugs + * Tue Mar 15 2022 yezengruan 1.0.0.6 - help: modify some help information -- Gitee