Skip to content

Cannot build on MacOS: failed to run rustc #26

Open
@anta40

Description

@anta40

I'm on MacOS Monterey, and this is the output of rustup show

Default host: x86_64-apple-darwin
rustup home:  /Users/andre/.rustup

installed toolchains
--------------------

stable-x86_64-apple-darwin
nightly-x86_64-apple-darwin (default)

active toolchain
----------------

nightly-x86_64-apple-darwin (overridden by '/Users/andre/Desktop/xv6-rust/rust-toolchain')
rustc 1.67.0-nightly (e75aab045 2022-11-09)

I also already had i386-elf-gcc installed:

$ i386-elf-gcc -v
Using built-in specs.
COLLECT_GCC=i386-elf-gcc
COLLECT_LTO_WRAPPER=/usr/local/Cellar/i386-elf-gcc/11.2.0_1/libexec/gcc/i386-elf/11.2.0/lto-wrapper
Target: i386-elf
Configured with: ../configure --prefix=/usr/local/Cellar/i386-elf-gcc/11.2.0_1 --target=i386-elf --disable-multilib --disable-nls --disable-werror --without-headers --without-isl --enable-languages=c,c++
Thread model: single
Supported LTO compression algorithms: zlib zstd
gcc version 11.2.0 (GCC) 

Did a few modifications on Makefile

CC := i386-elf-gcc
LD := i386-elf-ld
OBJDUMP := i386-elf-objdump
OBJCOPY := i386-elf-objcopy
NM := i386-elf-nm
AR := i386-elf-ar

And also changed the content of rust-toolchain file:
nightly-x86_64-apple-darwin

OK, let's try make all. Got this:

i386-elf-nm -n obj/user/wc > obj/user/wc.sym
RUSTFLAGS="-Z print-link-args -C link-arg=-b -C link-arg=binary -C link-arg=obj/user/nop -C link-arg=obj/user/hello -C link-arg=obj/user/yield -C link-arg=obj/user/forktest -C link-arg=obj/user/spin -C link-arg=obj/user/init -C link-arg=obj/user/filetest -C link-arg=obj/user/sh -C link-arg=obj/user/argstest -C link-arg=obj/user/malloctest -C link-arg=obj/user/ls -C link-arg=obj/user/pwd -C link-arg=obj/user/mkdir -C link-arg=obj/user/echo -C link-arg=obj/user/whello -C link-arg=obj/user/cat -C link-arg=obj/user/pipetest -C link-arg=obj/user/wc -C link-arg=-b -C link-arg=default" CFLAGS="-Wa,--compress-debug-sections=none -Wl,--compress-debug-sections=none" cargo xbuild --target i686-xv6rust.json --verbose 
error: cargo metadata invocation failed: Error during execution of `cargo metadata`: error: failed to run `rustc` to learn about target-specific information

Caused by:
  process didn't exit successfully: `rustc - --crate-name ___ --print=file-names -Z print-link-args -C link-arg=-b -C link-arg=binary -C link-arg=obj/user/nop -C link-arg=obj/user/hello -C link-arg=obj/user/yield -C link-arg=obj/user/forktest -C link-arg=obj/user/spin -C link-arg=obj/user/init -C link-arg=obj/user/filetest -C link-arg=obj/user/sh -C link-arg=obj/user/argstest -C link-arg=obj/user/malloctest -C link-arg=obj/user/ls -C link-arg=obj/user/pwd -C link-arg=obj/user/mkdir -C link-arg=obj/user/echo -C link-arg=obj/user/whello -C link-arg=obj/user/cat -C link-arg=obj/user/pipetest -C link-arg=obj/user/wc -C link-arg=-b -C link-arg=default --crate-type bin --crate-type rlib --crate-type dylib --crate-type cdylib --crate-type staticlib --crate-type proc-macro --print=sysroot --print=cfg` (exit status: 1)
  --- stderr
  error: unknown unstable option: `print-link-args`


make: *** [kernel] Error 1
rm obj/user/filetest.o obj/user/nop.o obj/user/sh.o obj/user/init.o obj/user/forktest.o obj/user/whello.o obj/user/pipetest.o obj/user/spin.o obj/user/argstest.o obj/user/hello.o obj/user/wc.o obj/user/malloctest.o obj/user/ls.o obj/user/echo.o obj/user/pwd.o obj/user/yield.o obj/user/cat.o obj/user/mkdir.o

Any idea how to fix this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions