From 78fc6627627b3271fc1ab81d51d43270c6d24c96 Mon Sep 17 00:00:00 2001 From: JarvisLiu <775167809@qq.com> Date: Fri, 11 Feb 2022 16:26:09 +0800 Subject: [PATCH] change compile --- Makefile | 4 ++++ build/mk/compiler_gcc.mk | 3 +++ build/mk/los_config.mk | 6 +++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e0949c701..5f95f6737 100644 --- a/Makefile +++ b/Makefile @@ -72,7 +72,11 @@ $(LITEOS_TARGET): ifeq ($(OS), Linux) $(call update_from_baselib_file) endif +ifeq ($(LD), $(CC)) + $(LD) $(LITEOS_LDFLAGS) $(LITEOS_TABLES_LDFLAGS) $(LITEOS_DYNLDFLAGS) -Wl,-Map=$(OUT)/$@.map -o $(OUT)/$@.elf -Wl,--start-group $(LITEOS_BASELIB) -Wl,--end-group +else $(LD) $(LITEOS_LDFLAGS) $(LITEOS_TABLES_LDFLAGS) $(LITEOS_DYNLDFLAGS) -Map=$(OUT)/$@.map -o $(OUT)/$@.elf --start-group $(LITEOS_BASELIB) --end-group +endif ifeq ($(LOSCFG_FAMILY_RASPBERRY), y) ifeq ($(LOSCFG_ARCH_ARM_AARCH64), y) $(OBJCOPY) -O binary $(OUT)/$@.elf $(OUT)/kernel8.img diff --git a/build/mk/compiler_gcc.mk b/build/mk/compiler_gcc.mk index bd2f1ee7f..f3fbd2411 100644 --- a/build/mk/compiler_gcc.mk +++ b/build/mk/compiler_gcc.mk @@ -72,6 +72,9 @@ ifeq ($(LOSCFG_COMPILER_ARM_NONE_EABI), y) ifeq ($(shell if [ $(shell echo $(VERSION_NUM) | tr -d ".") -lt 921 ]; then echo y; fi), y) $(error The compiler version is too early. You are advised to use a version later than gcc-arm-none-eabi-9-2019-q4-major) endif + ifeq ($(shell if [ $(shell echo $(VERSION_NUM) | tr -d ".") -gt 1021 ]; then echo y; fi), y) + LD = $(CC) + endif endif # Generally 32 bit and 64 bit compilers has different libgcc paths. diff --git a/build/mk/los_config.mk b/build/mk/los_config.mk index fd61e528f..221c78dc8 100644 --- a/build/mk/los_config.mk +++ b/build/mk/los_config.mk @@ -287,7 +287,11 @@ LITEOS_GCOV_OPTS := -fprofile-arcs -ftest-coverage -Wno-maybe-uninitialized LITEOS_BASELIB += -lgcov endif -LITEOS_LD_OPTS += -static --gc-sections +ifeq ($(LD), $(CC)) + LITEOS_LD_OPTS += -static -Wl,-gc-sections +else + LITEOS_LD_OPTS += -static --gc-sections +endif ifeq ($(LOSCFG_COMPILER_ARM_NONE_EABI)_$(shell if [ $(shell echo $(VERSION_NUM) | tr -d ".") -gt 1021 ]; then echo y; fi), y_y) LITEOS_LD_OPTS += else -- Gitee