Hi,
I'm trying to get cross compilation to Sitara AM1808 (Lego Mindstorms
EV3) working, but haven't been able to get working binaries.
First I simply tried compiling with `rustc
--target=arm-unknown-linux-gnueabi`, but got errors with missing std.
So next I compiled rust from source with `configure
--target=arm-unknown-linux-gnueabi --host=i686-unknown-linux-gnu`.
Then I could create a binary without errors with `env
LD_LIBRARY_PATH=$HOME/local/rust-cross/lib
PATH=$HOME/local/rust-cross/bin:$PATH local/rust-cross/bin/rustc -C
linker=/usr/bin/arm-linux-gnueabi-gcc
--target=arm-unknown-linux-gnueabi hello.rs`, but trying to run the
binary on the device just gives me "Illegal instruction".
For the record, checking the type of the helloworld with file gives
hello: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV),
dynamically linked (uses shared libs), for GNU/Linux 2.6.32,
BuildID[sha1]=f48dc778edb4e4818915f45e4e6e985cf4e7eb59, not stripped
while working bash from the device is
bash: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV),
dynamically linked (uses shared libs), for GNU/Linux 2.6.32,
BuildID[sha1]=8ab870f6f5cbbb621b85763f557b41832a3f3181, stripped
I also tried setting target-cpu=arm9 and target-feature=+v5te, but
that didn't affect anything.
Next I tried using an external assembler by telling rustc -C
no-integrated-as. That gave a bunch of errors::
error: linking with `/usr/bin/arm-linux-gnueabi-gcc` failed: exit code: 1
note: /usr/bin/arm-linux-gnueabi-gcc '-c' '-o' 'hello.o' 'hello.s'
note: hello.s: Assembler messages:
hello.s:576: Error: selected processor does not support ARM mode `blx r2'
hello.s:692: Error: selected processor does not support ARM mode `blx r2'
hello.s:785: Error: selected processor does not support ARM mode `blx r2'
hello.s:855: Error: selected processor does not support ARM mode `blx r2'
hello.s:1280: Rd and Rm should be different in mul
hello.s:2505: Rd and Rm should be different in mul
hello.s:2663: Error: selected processor does not support ARM mode `clz
r0,r0'
hello.s:2730: Rd and Rm should be different in mul
hello.s:2958: Error: selected processor does not support ARM mode `blx r2'
hello.s:3074: Error: selected processor does not support ARM mode `blx r2'
hello.s:3167: Error: selected processor does not support ARM mode `blx r2'
hello.s:3237: Error: selected processor does not support ARM mode `blx r2'
hello.s:3662: Rd and Rm should be different in mul
hello.s:3979: Error: selected processor does not support ARM mode `blx r2'
hello.s:4058: Error: selected processor does not support ARM mode `blx r2'
hello.s:4146: Error: selected processor does not support ARM mode `blx r2'
hello.s:4220: Error: selected processor does not support ARM mode `blx r2'
hello.s:4306: Error: selected processor does not support ARM mode `blx r2'
hello.s:4380: Error: selected processor does not support ARM mode `blx r2'
hello.s:4450: Error: selected processor does not support ARM mode `blx r2'
hello.s:5135: Rd and Rm should be different in mul
error: aborting due to previous error
As my last idea I tried emitting bc, ir and asm from rustc and using
llc and arm-linux-gnueabi-as to make binaries, but llc from ir gave
llc: hello.ll:88:140: error: expected value token
call void
@_ZN2os4args20h5a44d7ab05eef5ebjtjE(%"struct.collections::vec::Vec<[collections::string::String]>[#6]"*
noalias nocapture sret dereferenceable(12) %1)
, bc
llc: hello.bc: error: Invalid value
and the assembler
hello.s: Assembler messages:
hello.s:1279: Rd and Rm should be different in mul
hello.s:2504: Rd and Rm should be different in mul
hello.s:2729: Rd and Rm should be different in mul
hello.s:3661: Rd and Rm should be different in mul
hello.s:5134: Rd and Rm should be different in mul
similar to using the no-integrated-as earlier.
I'm now fully out of ideas what could be going wrong and how to fix it.
Any suggestions would be very much appreciated.
--
Tomi Pieviläinen, +358 400 487 504
A: Because it disrupts the natural way of thinking.
Q: Why is top posting frowned upon?
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev