I've read those pages, but apparently I do not understand what that means and how toolchains fall together.
I am only beginning to experiment with android builds, but previously I used to rustup target add arm7-unknown-linux-gnueabihf (another Tier 2 target) while running on amd64 and was able to build for that target just like I do for native, cross-compiling handled transparently by cargo and rustc.
From your answer I gather that if I wanted to install arm7-unknown-linux-gnueabihf as the only toolchain, I would have failed, just like with android. But why? What would be missing?
Is it because a native toolchain is always needed to compile procedural macros?
The Platform Support page mentions this as the distinction of targets with host tools:
Tier X targets with host tools additionally support running tools like rustc and cargo natively on the target
but that's not what I am trying to do.
[EDIT] Sorry, I only now realized that I've omitted this piece of information from my question: I'm setting up a cross-compilation toolchain on an amd64 host, not running rustup-init on Android.
Yes. Proc macro must be compiled for host architecture which means you need toolchain which can do that.
Sometimes you may even have a choice: I can use aarch64-apple-darwin as my main toolchain or x86_64-apple-darwin but obviously Android toolchain couldn't be the main one (except if you are using Android for development).