mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-22 15:23:23 +00:00
使得DragonOS kernel 能为riscv64编译通过(尚未能启动) (#457)
* 使得DragonOS kernel 能为riscv64编译通过(尚未能启动) * 修正了系统调用号声明不正确的问题,同时添加了编译配置文档
This commit is contained in:
48
env.mk
Normal file
48
env.mk
Normal file
@ -0,0 +1,48 @@
|
||||
|
||||
ifeq ($(ARCH), )
|
||||
# !!!!在这里设置ARCH,可选x86_64和riscv64
|
||||
# !!!!!!!如果不同时调整这里以及vscode的settings.json,那么自动补全和检查将会失效
|
||||
export ARCH=x86_64
|
||||
endif
|
||||
|
||||
ifeq ($(EMULATOR), )
|
||||
export EMULATOR=__NO_EMULATION__
|
||||
endif
|
||||
|
||||
# 设置编译器
|
||||
ifeq ($(ARCH), x86_64)
|
||||
|
||||
export CC=$(DragonOS_GCC)/x86_64-elf-gcc
|
||||
export LD=ld
|
||||
export AS=$(DragonOS_GCC)/x86_64-elf-as
|
||||
export NM=$(DragonOS_GCC)/x86_64-elf-nm
|
||||
export AR=$(DragonOS_GCC)/x86_64-elf-ar
|
||||
export OBJCOPY=$(DragonOS_GCC)/x86_64-elf-objcopy
|
||||
|
||||
else ifeq ($(ARCH), riscv64)
|
||||
|
||||
export CC=riscv64-unknown-elf-gcc
|
||||
export LD=riscv64-unknown-elf-ld
|
||||
export AS=riscv64-unknown-elf-as
|
||||
export NM=riscv64-unknown-elf-nm
|
||||
export AR=riscv64-unknown-elf-ar
|
||||
export OBJCOPY=riscv64-unknown-elf-objcopy
|
||||
|
||||
endif
|
||||
|
||||
|
||||
export DEBUG=DEBUG
|
||||
|
||||
export CFLAGS_DEFINE_ARCH="__$(ARCH)__"
|
||||
|
||||
export GLOBAL_CFLAGS := -fno-builtin -fno-stack-protector -D $(CFLAGS_DEFINE_ARCH) -D $(EMULATOR) -O1
|
||||
|
||||
ifeq ($(ARCH), x86_64)
|
||||
GLOBAL_CFLAGS += -mcmodel=large -m64
|
||||
else ifeq ($(ARCH), riscv64)
|
||||
GLOBAL_CFLAGS += -mcmodel=medany -march=rv64imac -mabi=lp64
|
||||
endif
|
||||
|
||||
ifeq ($(DEBUG), DEBUG)
|
||||
GLOBAL_CFLAGS += -g
|
||||
endif
|
Reference in New Issue
Block a user