Mark _start as extern; fix wrong entry point name

This commit is contained in:
Philipp Oppermann
2018-04-02 17:23:47 +02:00
parent 0bd0c70c8f
commit 549dfd362b
3 changed files with 5 additions and 5 deletions

View File

@@ -210,7 +210,7 @@ pub extern fn rust_begin_panic(_msg: core::fmt::Arguments,
}
#[no_mangle] // don't mangle the name of this function
pub fn _start() -> ! {
pub extern fn _start() -> ! {
// this function is the entry point, since the linker looks for a function
// named `_start` by default
loop {}
@@ -277,7 +277,7 @@ The implementation looks like this:
static HELLO: &[u8] = b"Hello World!";
#[no_mangle]
pub fn _start() -> ! {
pub extern fn _start() -> ! {
let vga_buffer = 0xb8000 as *const u8 as *mut u8;
for (i, &byte) in HELLO.iter().enumerate() {

View File

@@ -507,7 +507,7 @@ Now we can delete the `print_something` function and print directly from our `_s
```rust
// in src/main.rs
#[no_mangle]
pub fn _start() -> ! {
pub extern fn _start() -> ! {
use core::fmt::Write;
vga_buffer::WRITER.lock().write_str("Hello again").unwrap();
write!(vga_buffer::WRITER.lock(), ", some numbers: {} {}", 42, 1.337).unwrap();
@@ -586,7 +586,7 @@ To use `println` in `main.rs`, we need to import the macros of the VGA buffer mo
mod vga_buffer;
#[no_mangle]
pub extern fn rust_main() {
pub extern fn _start() {
println!("Hello World{}", "!");
loop {}

View File

@@ -15,7 +15,7 @@ mod vga_buffer;
/// This function is the entry point, since the linker looks for a function
/// named `_start_` by default.
#[no_mangle] // don't mangle the name of this function
pub fn _start() -> ! {
pub extern fn _start() -> ! {
println!("Hello World{}", "!");
loop {}