The target triple should be of the form: <architecture>[sub]-<vendor>-<system>-<abi>
So what you indicate looks like this:
arch
= thumb
(note that you mentioned previously that you try to cross-compile for ARM. I am not sure that thumb is an architecture)
sub
= v7m
vendor
= [not indicated](which already will throw the error about unknown triple)
system
= none
(which is ok since you want to compile for bare metal)
abi
= eabi
(which is also ok)
If I am not wrong, it will compile, just that you can't use it on bare metal. std
is a separate part from the compiler.
The compiler just needs to know how to generate the code for the architecture you need, it doesn't need std
for that.
Based on what you said previously, try these flags:
--target=armv7m-unknown-none-eabi
or --target=arm-unknown-none-eabi
.
Note that Rust's configure
script doesn't seem to support armv7m
so I doubt that the first one will work.
It does however support armv7l
.
And, of course, if you try to cross-compile, have the cross-compilation environment set-up first...(the cross-compiler in the PATH environment variable).
Update:
Most probably would fail because configure
script doesn't yet define this target triple.
You could try to make a workaround with links.