diff --git a/Makefile b/Makefile index 69e322b34..2c6fe5894 100644 --- a/Makefile +++ b/Makefile @@ -10,9 +10,18 @@ T := $(CURDIR) include VERSION SCM_VERSION := $(shell [ -d .git ] && git describe --exact-match 1>/dev/null 2>&1 || git describe --dirty) ifneq ($(SCM_VERSION),) - SCM_VERSION := "-"$(SCM_VERSION) + SCM_VERSION := "-"$(SCM_VERSION) endif export FULL_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)$(EXTRA_VERSION)$(SCM_VERSION) +STABLE_STR := -stable +ifeq ($(EXTRA_VERSION), -unstable) + STABLE_STR := -unstable +endif +REMOTE_BRANCH := $(shell [ -d .git ] && git rev-parse --abbrev-ref HEAD) +ifneq ($(REMOTE_BRANCH),) + REMOTE_BRANCH := "-"$(REMOTE_BRANCH) +endif +export BRANCH_VERSION=$(MAJOR_VERSION).$(MINOR_VERSION)$(STABLE_STR)$(REMOTE_BRANCH) ifdef TARGET_DIR $(warning TARGET_DIR is obsoleted because generated configuration files are now stored in the build directory) diff --git a/hypervisor/Makefile b/hypervisor/Makefile index cd49ae28c..029b4cfb4 100644 --- a/hypervisor/Makefile +++ b/hypervisor/Makefile @@ -517,15 +517,16 @@ distclean: PHONY: (VERSION) $(VERSION): $(HV_CONFIG_H) touch $(VERSION) - @if [ "$(BUILD_VERSION)"x = x -o "$(BUILD_TAG)"x = x ];then \ + @if [ "$(BUILD_VERSION)"x = x ];then \ COMMIT=`git rev-parse --verify --short HEAD 2>/dev/null`;\ DIRTY=`git diff-index --name-only HEAD`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\ - DAILY_TAG=`git tag --merged HEAD|grep "acrn"|tail -n 1`;\ else \ PATCH="$(BUILD_VERSION)"; \ - DAILY_TAG="$(BUILD_TAG)"; \ fi; \ + COMMIT_TAGS=$$(git tag --points-at HEAD|tr -s "\n" " "); \ + COMMIT_TAGS=$$(eval echo $$COMMIT_TAGS);\ + COMMIT_TIME=$$(git log -1 --date=format:"%Y-%m-%d-%T" --format=%cd); \ TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%F %T"); \ USER="$${USER:-$$(id -u -n)}"; \ if [ x$(CONFIG_RELEASE) = "xy" ];then BUILD_TYPE="REL";else BUILD_TYPE="DBG";fi;\ @@ -535,21 +536,17 @@ $(VERSION): $(HV_CONFIG_H) echo "" >> $(VERSION); \ echo "#ifndef VERSION_H" >> $(VERSION); \ echo "#define VERSION_H" >> $(VERSION); \ - echo "#define HV_FULL_VERSION "\"$(FULL_VERSION)\""" >> $(VERSION);\ echo "#define HV_API_MAJOR_VERSION $(API_MAJOR_VERSION)U" >> $(VERSION);\ echo "#define HV_API_MINOR_VERSION $(API_MINOR_VERSION)U" >> $(VERSION);\ - echo "#define HV_DAILY_TAG "\""$$DAILY_TAG"\""" >> $(VERSION);\ - echo "#define HV_BUILD_VERSION "\""$$PATCH"\""" >> $(VERSION);\ + echo "#define HV_BRANCH_VERSION "\"$(BRANCH_VERSION)\""" >> $(VERSION);\ + echo "#define HV_COMMIT_DIRTY "\""$$PATCH"\""" >> $(VERSION);\ + echo "#define HV_COMMIT_TAGS "\"$$COMMIT_TAGS\""" >> $(VERSION);\ + echo "#define HV_COMMIT_TIME "\"$$COMMIT_TIME\""" >> $(VERSION);\ echo "#define HV_BUILD_TYPE "\""$$BUILD_TYPE"\""" >> $(VERSION);\ echo "#define HV_BUILD_TIME "\""$$TIME"\""" >> $(VERSION);\ echo "#define HV_BUILD_USER "\""$$USER"\""" >> $(VERSION);\ echo "#define HV_BUILD_SCENARIO "\"$(SCENARIO)\""" >> $(VERSION);\ echo "#define HV_BUILD_BOARD "\"$(BOARD)\""" >> $(VERSION);\ - if [ "$(CONFIG_XML_ENABLED)" = "true" ]; then \ - echo "#define HV_CONFIG_TOOL \" with acrn-config\"" >> $(VERSION);\ - else \ - echo "#define HV_CONFIG_TOOL \"\"" >> $(VERSION);\ - fi;\ echo "#endif" >> $(VERSION) -include $(C_OBJS:.o=.d) diff --git a/hypervisor/arch/x86/cpu.c b/hypervisor/arch/x86/cpu.c index 84782d045..ce403b7ec 100644 --- a/hypervisor/arch/x86/cpu.c +++ b/hypervisor/arch/x86/cpu.c @@ -248,13 +248,11 @@ void init_pcpu_post(uint16_t pcpu_id) /* Calibrate TSC Frequency */ calibrate_tsc(); - pr_acrnlog("HV version %s-%s-%s %s (daily tag:%s) %s@%s build by %s%s, start time %luus", - HV_FULL_VERSION, - HV_BUILD_TIME, HV_BUILD_VERSION, HV_BUILD_TYPE, - HV_DAILY_TAG, HV_BUILD_SCENARIO, HV_BUILD_BOARD, - HV_BUILD_USER, HV_CONFIG_TOOL, ticks_to_us(start_tick)); - - pr_acrnlog("API version %u.%u", HV_API_MAJOR_VERSION, HV_API_MINOR_VERSION); + pr_acrnlog("HV: %s-%s-%s %s%s%s%s %s@%s build by %s, start time %luus", + HV_BRANCH_VERSION, HV_COMMIT_TIME, HV_COMMIT_DIRTY, HV_BUILD_TYPE, + (sizeof(HV_COMMIT_TAGS) > 1) ? "(tag: " : "", HV_COMMIT_TAGS, + (sizeof(HV_COMMIT_TAGS) > 1) ? ")" : "", HV_BUILD_SCENARIO, + HV_BUILD_BOARD, HV_BUILD_USER, ticks_to_us(start_tick)); pr_acrnlog("Detect processor: %s", (get_pcpu_info())->model_name); diff --git a/hypervisor/debug/shell.c b/hypervisor/debug/shell.c index 4a0451fd5..fb850755e 100644 --- a/hypervisor/debug/shell.c +++ b/hypervisor/debug/shell.c @@ -738,9 +738,11 @@ static int32_t shell_version(__unused int32_t argc, __unused char **argv) { char temp_str[MAX_STR_SIZE]; - snprintf(temp_str, MAX_STR_SIZE, "HV %s-%s-%s %s (daily tag: %s) %s@%s build by %s%s\nAPI %u.%u\r\n", - HV_FULL_VERSION, HV_BUILD_TIME, HV_BUILD_VERSION, HV_BUILD_TYPE, HV_DAILY_TAG, HV_BUILD_SCENARIO, - HV_BUILD_BOARD, HV_BUILD_USER, HV_CONFIG_TOOL, HV_API_MAJOR_VERSION, HV_API_MINOR_VERSION); + snprintf(temp_str, MAX_STR_SIZE, "HV: %s-%s-%s %s%s%s%s %s@%s build by %s %s\r\n", + HV_BRANCH_VERSION, HV_COMMIT_TIME, HV_COMMIT_DIRTY, HV_BUILD_TYPE, + (sizeof(HV_COMMIT_TAGS) > 1) ? "(tag: " : "", HV_COMMIT_TAGS, + (sizeof(HV_COMMIT_TAGS) > 1) ? ")" : "", + HV_BUILD_SCENARIO, HV_BUILD_BOARD, HV_BUILD_USER, HV_BUILD_TIME); shell_puts(temp_str); return 0;