mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-08 18:26:48 +00:00
new: 在lib下引入一个rust的helloworld! (#68)
This commit is contained in:
parent
0385e0324e
commit
e002152383
2
Makefile
2
Makefile
@ -19,6 +19,8 @@ endif
|
||||
export ARCH=__x86_64__
|
||||
export ROOT_PATH=$(shell pwd)
|
||||
|
||||
export RUSTC=$(shell which rustc)
|
||||
|
||||
export DEBUG=DEBUG
|
||||
export GLOBAL_CFLAGS := -mcmodel=large -fno-builtin -m64 -fno-stack-protector -D $(ARCH) -D $(EMULATOR) -O1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
CFLAGS += -I .
|
||||
|
||||
kernel_lib_subdirs:= libUI sys libELF
|
||||
kernel_lib_subdirs:= libUI sys libELF rust_helloworld
|
||||
|
||||
kernel_lib_objs:= $(shell find ./*.c)
|
||||
|
||||
|
13
kernel/lib/rust_helloworld/Makefile
Normal file
13
kernel/lib/rust_helloworld/Makefile
Normal file
@ -0,0 +1,13 @@
|
||||
|
||||
rust_helloworld_objs:=
|
||||
|
||||
ifneq ("$(RUSTC)", "")
|
||||
rust_helloworld_objs += helloworld.o
|
||||
endif
|
||||
|
||||
all: $(rust_helloworld_objs)
|
||||
|
||||
helloworld.o: helloworld.rs
|
||||
@echo Compile helloworld.o
|
||||
@echo rustc=$(which rustc)
|
||||
$(shell $(RUSTC) --crate-type staticlib --target x86_64-unknown-none -o helloworld.o helloworld.rs)
|
17
kernel/lib/rust_helloworld/helloworld.rs
Normal file
17
kernel/lib/rust_helloworld/helloworld.rs
Normal file
@ -0,0 +1,17 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
|
||||
use core::panic::PanicInfo;
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn rust_helloworld_a_plus_b(a: i32, b: i32) -> i32 {
|
||||
return a+b;
|
||||
}
|
||||
|
||||
/// 这个函数将在panic时被调用
|
||||
#[panic_handler]
|
||||
fn panic(_info: &PanicInfo) -> ! {
|
||||
loop {}
|
||||
}
|
||||
|
||||
// rustc --crate-type staticlib --target x86_64-unknown-none -o helloworld.o helloworld.rs
|
Loading…
x
Reference in New Issue
Block a user