intermezzOS / kernel

A hobby operating system, in Rust
http://intermezzos.github.io/
Apache License 2.0
1.39k stars 90 forks source link

missing instructions for setting up a cross linker for macOS #65

Closed ashleygwilliams closed 7 years ago

ashleygwilliams commented 7 years ago

add these instructions to the README: http://intermezzos.github.io/book/appendix/osx-install.html

make cargo on macOS gives this error. this is because macOS has the wrong ld (BSD), we need the GNU ld.

error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Tlayout.ld" "-Wl,-n" "-nostartfiles" "-L" "/Users/ag_dubs/.xargo/lib/rustlib/x86_64-unknown-intermezzos-gnu/lib" "/Users/ag_dubs/intermezzOS/kernel/src/target/x86_64-unknown-intermezzos-gnu/release/intermezzos.0.o" "-o" "/Users/ag_dubs/intermezzOS/kernel/src/target/x86_64-unknown-intermezzos-gnu/release/intermezzos" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "/Users/ag_dubs/intermezzOS/kernel/src/target/x86_64-unknown-intermezzos-gnu/release/deps" "-L" "/Users/ag_dubs/intermezzOS/kernel/src/target/x86_64-unknown-intermezzos-gnu/release/build/intermezzos-491f39d1c9fb19a5/out" "-L" "/Users/ag_dubs/.xargo/lib/rustlib/x86_64-unknown-intermezzos-gnu/lib" "-Wl,-Bstatic" "-Wl,--whole-archive" "-l" "boot" "-Wl,--no-whole-archive" "-Wl,-Bdynamic" "/Users/ag_dubs/intermezzOS/kernel/src/target/x86_64-unknown-intermezzos-gnu/release/deps/libkernel_context.rlib" "/Users/ag_dubs/intermezzOS/kernel/src/target/x86_64-unknown-intermezzos-gnu/release/deps/libvga.rlib" "/Users/ag_dubs/intermezzOS/kernel/src/target/x86_64-unknown-intermezzos-gnu/release/deps/librlibc-975886925ea7e4d8.rlib" "/Users/ag_dubs/intermezzOS/kernel/src/target/x86_64-unknown-intermezzos-gnu/release/deps/libspin-d054d2d05cd86dc1.rlib" "/Users/ag_dubs/.xargo/lib/rustlib/x86_64-unknown-intermezzos-gnu/lib/libcore.rlib"
  = note: ld: unknown option: -n
clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error

error: Could not compile `intermezzos`.

To learn more, run the command again with --verbose.
error: `cargo` process didn't exit successfully
make: *** [cargo] Error 101
steveklabnik commented 7 years ago

(Also, those instructions don't help configure cargo to do the right thing, which we need to add)

WilsonGiese commented 7 years ago

Related: https://github.com/intermezzOS/kernel/issues/53