Is cross-compiling with Rust even possible on OpenBSD? I don't see
rustup available, and ran into the below issues when trying a couple of
different triples, with an attempted no_std "hello world".
Thank you.
On 2025-01-21 17:13:11-0700, Luke A. Call <luke350@onemodel.org> wrote:
> I'm attempting to follow these instructions
> https://zenn.dev/zulinx86/articles/rust-nostd-101
> ...to create a no_std "hello world" in Rust, just to
> see it work, and its size and speed.
>
> I get these two errors:
>
>
> $cargo build --target x86_64-unknown-openbsd
> Compiling baremetal_rust v0.1.0 (/home/lacall/proj/learnrust/no_std)
> error: linking with `cc` failed: exit status: 1
> |
> = note: LC_ALL="C" PATH="/usr/local/lib/rustlib/
> x86_64-unknown-openbsd/bin:/usr/local/lib/rustlib/
> x86_64-unknown-openbsd/bin:/usr/local/lib/rustlib/x86_64-unknown-openbsd
> /bin:[...] " VSLANG="1033" "cc" "-m64" "/tmp/rustcxWUaqp/symbols.o"
> "/home/lacall/proj/learnrust/no_std/target/x86_64-unknown-openbsd/
> debug/deps/baremetal_rust-a29cf966f63a7968.27oi4sy4zl19d02xz9nha6rkv.
> rcgu.o" "-Wl,--as-needed" "-L" "/home/lacall/proj/learnrust/no_std/
> target/x86_64-unknown-openbsd/debug/deps" "-L" "/home/lacall/proj/
> learnrust/no_std/target/debug/deps" "-L" "/usr/local/lib/rustlib/
> x86_64-unknown-openbsd/lib" "-Wl,-Bstatic" "/usr/local/lib/rustlib/
> x86_64-unknown-openbsd/lib/librustc_std_workspace_core-02e247769dc17413.
> rlib" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/libcore-02e24
> 7769dc17405.rlib" "/usr/local/lib/rustlib/x86_64-unknown-openbsd/lib/
> libcompiler_builtins-02e247769dc17404.rlib" "-Wl,-Bdynamic"
> "-lcompiler_rt" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/usr/
> local/lib/rustlib/x86_64-unknown-openbsd/lib" "-o" "/home/lacall/proj/
> learnrust/no_std/target/x86_64-unknown-openbsd/debug/deps/
> baremetal_rust-a29cf966f63a7968" "-Wl,--gc-sections" "-pie" "-Wl,-z,
> relro,-z,now" "-Wl,--strip-debug" "-nodefaultlibs"
> = note: ld: error: duplicate symbol: _start
> >>> defined at /usr/lib/crt0.o:(.text+0x0)
> >>> defined at 27oi4sy4zl19d02xz9nha6rkv
> >>> /home/lacall/proj/learnrust/no_std/target/
> x86_64-unknown-openbsd/debug/deps/baremetal_rust-
> a29cf966f63a7968.27oi4sy4zl19d02xz9nha6rkv.rcgu.o:(
> .text._start+0x0)
>
> cc: error: linker command failed with exit code 1 (use -v
> to see invocation)
> error: could not compile `baremetal_rust` (bin "baremetal_rust") due to 1 previous error
>
>
> ...or...
>
>
> $cargo build --target x86_64-unknown-none Compiling baremetal_rust v0.1.0 (/home/lacall/proj/learnrust/no_std)
> error[E0463]: can't find crate for `core`
> |
> = note: the `x86_64-unknown-none` target may not be installed
> = help: consider downloading the target with `rustup target add x86_64-unknown-none`
> For more information about this error, try `rustc --explain E0463`.
> error: could not compile `baremetal_rust` (bin "baremetal_rust") due to 1 previous error
>
>
> But I'm also interested in cross-compiling later, to other platforms,
> which I will have to learn, and this makes me wonder if that will be
> possible, since rustup does not seem to be available.
>
> Any suggestions or corrections? Thanks very much.
>
> Luke Call
No comments:
Post a Comment