From 21e36a5c3181b5f27d62b2c6da4eca465588e543 Mon Sep 17 00:00:00 2001 From: renoseven Date: Fri, 11 Jul 2025 17:39:15 +0800 Subject: [PATCH 1/2] project: fix version does not affect on rust executable Signed-off-by: renoseven --- CMakeLists.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 843abc6..1fdbe0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -143,12 +143,14 @@ foreach(CURR_FLAG IN LISTS BUILD_FLAGS_RUST) endforeach() add_custom_target(syscare ALL - COMMAND cargo build --release --target-dir ${RUST_TARGET_DIR} + COMMAND ${CMAKE_COMMAND} -E env + "BUILD_VERSION=${BUILD_VERSION}" + "RUSTFLAGS=${RUST_FLAGS}" + cargo build --release --target-dir "${RUST_TARGET_DIR}" WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} ) set_target_properties(syscare PROPERTIES - ENVIRONMENT "RUSTFLAGS=${RUST_FLAGS};BUILD_VERSION=${BUILD_VERSION}" ADDITIONAL_CLEAN_FILES "${RUST_TARGET_DIR}" ) -- Gitee From 9923faea385cd6a46e52650cb442580892abed2c Mon Sep 17 00:00:00 2001 From: renoseven Date: Fri, 11 Jul 2025 17:52:03 +0800 Subject: [PATCH 2/2] project: fix ENABLE_GCOV does not affect on upatch_manage Signed-off-by: renoseven --- upatch-manage/CMakeLists.txt | 22 ++++++++---------- upatch-manage/Makefile | 44 +++++++++++++++++++----------------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/upatch-manage/CMakeLists.txt b/upatch-manage/CMakeLists.txt index 996b497..516cfe6 100644 --- a/upatch-manage/CMakeLists.txt +++ b/upatch-manage/CMakeLists.txt @@ -2,23 +2,21 @@ set(UPATCH_MANAGE_KMOD "upatch_manage.ko") -if (DEFINED ENABLE_GCOV) - set(ENABLE_GCOV "ENABLE_GCOV=1") +if (DEFINED KERNEL_VERSION) + set(KERNEL_SRC /lib/modules/${KERNEL_VERSION}/build) + set(KMOD_KERNEL "KERNEL_SRC=${KERNEL_SRC}") endif() -if (DEFINED KERNEL_VERSION) - set(KERNEL_BUILD_DIR /lib/modules/${KERNEL_VERSION}/build) - set(KMOD_CLEAN_CMD ${CMAKE_MAKE_PROGRAM} clean KERNEL_SRC=${KERNEL_BUILD_DIR} V=1) - set(KMOD_BUILD_CMD ${CMAKE_MAKE_PROGRAM} KERNEL_SRC=${KERNEL_BUILD_DIR} MODULE_VERSION=${BUILD_VERSION} ENABLE_GCOV=${ENABLE_GCOV} V=1) -else() - set(KMOD_CLEAN_CMD ${CMAKE_MAKE_PROGRAM} clean V=1) - set(KMOD_BUILD_CMD ${CMAKE_MAKE_PROGRAM} MODULE_VERSION=${BUILD_VERSION} ENABLE_GCOV=${ENABLE_GCOV} V=1) +if (DEFINED BUILD_VERSION) + set(KMOD_VERSION "MODULE_VERSION=${BUILD_VERSION}") +endif() + +if (DEFINED ENABLE_GCOV) + set(KMOD_GCOV "GCOV=1") endif() add_custom_target(upatch-manage ALL - COMMAND ${KMOD_CLEAN_CMD} - COMMAND ${KMOD_BUILD_CMD} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR} ${KMOD_KERNEL} ${KMOD_VERSION} ${KMOD_GCOV} ) install( diff --git a/upatch-manage/Makefile b/upatch-manage/Makefile index b3c3cca..df2bc09 100644 --- a/upatch-manage/Makefile +++ b/upatch-manage/Makefile @@ -1,35 +1,37 @@ # SPDX-License-Identifier: GPL-2.0 -MODULE_NAME = upatch_manage -ifndef MODULE_VERSION - MODULE_VERSION := dev -endif - -ifeq ($(ENABLE_GCOV), 1) - GCOV_PROFILE := y -endif +MODULE_NAME ?= upatch_manage +MODULE_VERSION ?= 1.0.0-dev -ifndef KERNEL_SRC - KERNEL_SRC := /lib/modules/$(shell uname -r)/build -endif -MODULE_SRC := $(shell pwd) +KERNEL_SRC ?= /lib/modules/$(shell uname -r)/build +MODULE_SRC ?= $(shell pwd) -ccflags-y += -D__KERNEL__ -DMODULE -DMODNAME=\"${MODULE_NAME}\" -DMODVER=\"${MODULE_VERSION}\" +ccflags-y += -D__KERNEL__ -DMODULE -DMODNAME=\"$(MODULE_NAME)\" -DMODVER=\"$(MODULE_VERSION)\" ccflags-y += -D_FORTIFY_SOURCE=2 -DSECUREC_SUPPORT_FORMAT_WARNING=1 ccflags-y += -O2 -Wall -pipe -obj-m += ${MODULE_NAME}.o -${MODULE_NAME}-objs := main.o ioctl_dev.o -${MODULE_NAME}-objs += patch_entity.o target_entity.o process_entity.o -${MODULE_NAME}-objs += patch_load.o arch/$(ARCH)/patch_load.o symbol_resolve.o -${MODULE_NAME}-objs += patch_manage.o kernel_compat.o +ifdef DEBUG + ccflags-y += -g -DDEBUG +endif + +ifdef GCOV + GCOV_PROFILE := y +endif + +obj-m += $(MODULE_NAME).o +$(MODULE_NAME)-objs := main.o ioctl_dev.o +$(MODULE_NAME)-objs += patch_entity.o target_entity.o process_entity.o +$(MODULE_NAME)-objs += patch_load.o arch/$(ARCH)/patch_load.o symbol_resolve.o +$(MODULE_NAME)-objs += patch_manage.o kernel_compat.o ifeq ($(ARCH), arm64) - ${MODULE_NAME}-objs += arch/$(ARCH)/insn.o + $(MODULE_NAME)-objs += arch/$(ARCH)/insn.o endif -all: - make -C $(KERNEL_SRC) M=$(MODULE_SRC) modules -j +.PHONY: module + +module: + make -C $(KERNEL_SRC) M=$(MODULE_SRC) modules clean: make -C $(KERNEL_SRC) M=$(MODULE_SRC) clean -- Gitee