Closed
Description
openedon Oct 11, 2022
Problem
I'm trying to cross compile a simple "Hello, world!" for armv7-unknown-linux-gnueabi target using cargo build and I'm getting the error:
error: linking with `cc` failed: exit status: 1
|
= note: "cc" "/tmp/rustcDT2UcQ/symbols.o" "/home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.1hqfu1rqb7214r2n.rcgu.o" "/home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.1n33k7fs2h9rqjw0.rcgu.o" "/home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.2o1jpvfxq51tk79i.rcgu.o" "/home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.3yifop7sump7gsvm.rcgu.o" "/home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.4ofn0c100ynvbgn8.rcgu.o" "/home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.4zalns707tr0735h.rcgu.o" "/home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.560xh812x6ijp6v0.rcgu.o" "/home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.57tuiwnnxc42sxcu.rcgu.o" "/home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.xoe527sumr6uj1o.rcgu.o" "-Wl,--as-needed" "-L" "/home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps" "-L" "/home/lincoln/rust/cross-arm/target/debug/deps" "-L" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib" "-Wl,--start-group" "-Wl,-Bstatic" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libstd-5c381144ace60c1f.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libpanic_unwind-6b9826a102c43d51.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libobject-997341e9a86cba4f.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libmemchr-1624f1a2574f16d1.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libaddr2line-148e4974c76d0b63.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libgimli-7f7c42ab06b50f9e.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/librustc_demangle-10fecfa83051d48f.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libstd_detect-62e2a4af63826f2b.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libhashbrown-ce270e2b8f0e70c6.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libminiz_oxide-ca4f1ffce56e8586.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libadler-3c1808a2be278449.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/librustc_std_workspace_alloc-d3b68269ff5baf4c.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libunwind-b31dcb3c3a5ee4e7.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libcfg_if-d41873269dc99133.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/liblibc-f20414d1e5f027d6.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/liballoc-89ab9915b87b8bc2.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/librustc_std_workspace_core-c0f4e020fa0ff7c4.rlib" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libcore-1ef3842b0096ead9.rlib" "-Wl,--end-group" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib/libcompiler_builtins-4338d1844db1cb4c.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/home/lincoln/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/armv7-unknown-linux-gnueabi/lib" "-o" "/home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro,-znow" "-nodefaultlibs"
= note: /usr/bin/ld: /home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.1hqfu1rqb7214r2n.rcgu.o: relocations in generic ELF (EM: 40)
/usr/bin/ld: /home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.1hqfu1rqb7214r2n.rcgu.o: relocations in generic ELF (EM: 40)
/usr/bin/ld: /home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.1hqfu1rqb7214r2n.rcgu.o: relocations in generic ELF (EM: 40)
/usr/bin/ld: /home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.1hqfu1rqb7214r2n.rcgu.o: relocations in generic ELF (EM: 40)
/usr/bin/ld: /home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.1hqfu1rqb7214r2n.rcgu.o: relocations in generic ELF (EM: 40)
/usr/bin/ld: /home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.1hqfu1rqb7214r2n.rcgu.o: relocations in generic ELF (EM: 40)
/usr/bin/ld: /home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.1hqfu1rqb7214r2n.rcgu.o: relocations in generic ELF (EM: 40)
/usr/bin/ld: /home/lincoln/rust/cross-arm/target/armv7-unknown-linux-gnueabi/debug/deps/cross_arm-c230b71c022febbf.1hqfu1rqb7214r2n.rcgu.o: error adding symbols: file in wrong format
collect2: error: ld returned 1 exit status
error: could not compile `cross-arm` due to previous error
Steps
First I ran:
cargo new cross-arm
cd cross-arm
mkdir .cargo
cd .cargo
touch config
And inside config file I insert:
[build]
target = "armv7-unknown-linux-gnueabi"
Then I ran:
rustup target add armv7-unknown-linux-gnueabi
In the root of project:
cargo build
EDIT:
I already try to modify my .cargo/config to:
[target.armv7-unknown-linux-gnueabi]#linker = "arm-linux-gnueabi-gcc-9"
rustflags = [
"-C", "link-arg=-undefined",
"-C", "link-arg=dynamic_lookup",
]
[build]
target = "armv7-unknown-linux-gnueabi"
But still not working.
Possible Solution(s)
No response
Notes
My host platform is the WSL 2 Ubuntu:
Linux 5.10.102.1-microsoft-standard-WSL2 # 1 SMP Wed Mar 2 00:30:59 UTC 2022 x86_64 x86_64
My arm-linux-gnueabi-gcc version:
arm-linux-gnueabi-gcc-9 (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Version
cargo 1.64.0 (387270bc7 2022-09-16)
release: 1.64.0
commit-hash: 387270bc7f446d17869c7f208207c73231d6a252
commit-date: 2022-09-16
host: x86_64-unknown-linux-gnu
libgit2: 1.4.2 (sys:0.14.2 vendored)
libcurl: 7.83.1-DEV (sys:0.4.55+curl-7.83.1 vendored ssl:OpenSSL/1.1.1q)
os: Ubuntu 20.04 (focal) [64-bit]
Activity