fix: 支持硬浮点编译
1. 通过本工程的gn编译时,需要在device目录下,单板的关于内核的config.gn中指定-mfloat-abi的等级,并在单板相关代码的编译选项中保持-mfloat-abi一致 2. 通过本工程的Makefile编译时,需要在kernel/liteos_m/targets/下添加单板相关的代码配置,在Makefile中设置-mfloat-abi即可 3. 通过IDE编译本工程时,需要在IDE的汇编文件相关编译选项中加入 -imacros $(LITEOSTOPDIR)/kernel/include/los_config.h,保证浮点等级在汇编文件中生效 close: #I48KJP Signed-off-by: arvinzzz <zhaotianyu9@huawei.com> Change-Id: Ibf9b750b922be2530de349981d55e40b5919933f
This commit is contained in:
parent
0715126021
commit
988fd85fae
8
BUILD.gn
8
BUILD.gn
|
@ -29,9 +29,17 @@
|
||||||
|
|
||||||
import("config.gni")
|
import("config.gni")
|
||||||
|
|
||||||
|
LITEOS_LOS_CONFIG_H = rebase_path("$LITEOSTOPDIR/kernel/include/los_config.h")
|
||||||
|
|
||||||
config("los_config") {
|
config("los_config") {
|
||||||
cflags = [ "-Werror" ]
|
cflags = [ "-Werror" ]
|
||||||
|
|
||||||
|
asmflags = [
|
||||||
|
"-DCLZ=CLZ",
|
||||||
|
"-imacros",
|
||||||
|
"$LITEOS_LOS_CONFIG_H",
|
||||||
|
]
|
||||||
|
|
||||||
include_dirs = [
|
include_dirs = [
|
||||||
"//kernel/liteos_m/kernel/include",
|
"//kernel/liteos_m/kernel/include",
|
||||||
"//kernel/liteos_m/kernel/arch/include",
|
"//kernel/liteos_m/kernel/arch/include",
|
||||||
|
|
|
@ -31,7 +31,6 @@
|
||||||
|
|
||||||
#include "los_cppsupport.h"
|
#include "los_cppsupport.h"
|
||||||
|
|
||||||
|
|
||||||
typedef VOID (*InitFunc)(VOID);
|
typedef VOID (*InitFunc)(VOID);
|
||||||
|
|
||||||
INT32 LOS_CppSystemInit(UINTPTR initArrayStart, UINTPTR initArrayEnd)
|
INT32 LOS_CppSystemInit(UINTPTR initArrayStart, UINTPTR initArrayEnd)
|
||||||
|
@ -46,5 +45,3 @@ INT32 LOS_CppSystemInit(UINTPTR initArrayStart, UINTPTR initArrayEnd)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -176,7 +176,7 @@ $(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)
|
||||||
$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@
|
$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR)
|
$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR)
|
||||||
$(AS) -c $(CFLAGS) $< -o $@
|
$(AS) -c $(CFLAGS) $(ASFLAGS) $< -o $@
|
||||||
|
|
||||||
$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile $(LDSCRIPT)
|
$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile $(LDSCRIPT)
|
||||||
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
|
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
|
||||||
|
|
|
@ -36,9 +36,11 @@ C_INCLUDES += -I. \
|
||||||
-I$(LITEOSTOPDIR)/kernel/arch/include \
|
-I$(LITEOSTOPDIR)/kernel/arch/include \
|
||||||
-I$(LITEOSTOPDIR)/kernel/arch/risc-v/nuclei/gcc
|
-I$(LITEOSTOPDIR)/kernel/arch/risc-v/nuclei/gcc
|
||||||
|
|
||||||
|
ASFLAGS += -imacros $(LITEOSTOPDIR)/kernel/include/los_config.h -DCLZ=CLZ
|
||||||
|
|
||||||
# list of ASM .S program objects
|
# list of ASM .S program objects
|
||||||
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASMS_SOURCES:.S=.o)))
|
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASMS_SOURCES:.S=.o)))
|
||||||
vpath %.S $(sort $(dir $(ASMS_SOURCES)))
|
vpath %.S $(sort $(dir $(ASMS_SOURCES)))
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: %.S Makefile | $(BUILD_DIR)
|
$(BUILD_DIR)/%.o: %.S Makefile | $(BUILD_DIR)
|
||||||
$(CC) -c $(CFLAGS) $< -o $@
|
$(CC) -c $(CFLAGS) $(ASFLAGS) $< -o $@
|
||||||
|
|
|
@ -178,7 +178,7 @@ $(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)
|
||||||
$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@
|
$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR)
|
$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR)
|
||||||
$(AS) -c $(CFLAGS) $< -o $@
|
$(AS) -c $(CFLAGS) $(ASFLAGS) $< -o $@
|
||||||
|
|
||||||
$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile $(LDSCRIPT)
|
$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile $(LDSCRIPT)
|
||||||
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
|
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
|
||||||
|
|
|
@ -36,9 +36,11 @@ C_INCLUDES += -I. \
|
||||||
-I$(LITEOSTOPDIR)/kernel/arch/include \
|
-I$(LITEOSTOPDIR)/kernel/arch/include \
|
||||||
-I$(LITEOSTOPDIR)/kernel/arch/risc-v/nuclei/gcc
|
-I$(LITEOSTOPDIR)/kernel/arch/risc-v/nuclei/gcc
|
||||||
|
|
||||||
|
ASFLAGS += -imacros $(LITEOSTOPDIR)/kernel/include/los_config.h -DCLZ=CLZ
|
||||||
|
|
||||||
# list of ASM .S program objects
|
# list of ASM .S program objects
|
||||||
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASMS_SOURCES:.S=.o)))
|
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASMS_SOURCES:.S=.o)))
|
||||||
vpath %.S $(sort $(dir $(ASMS_SOURCES)))
|
vpath %.S $(sort $(dir $(ASMS_SOURCES)))
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: %.S Makefile | $(BUILD_DIR)
|
$(BUILD_DIR)/%.o: %.S Makefile | $(BUILD_DIR)
|
||||||
$(CC) -c $(CFLAGS) $< -o $@
|
$(CC) -c $(CFLAGS) $(ASFLAGS) $< -o $@
|
||||||
|
|
Loading…
Reference in New Issue