As far as I understand it, those files are not involved when compiling the rust binaries (rustc, cargo etc). Those files define targets used by rustc to cross compile rust code. You can cross compile with rustc for additional targets without needing to add a new target definition to the rust source by supplying the additional configuration via a json file.
The Rust compiler also needs access to the rust standard library compiled against the target in order to cross compile which is where I'm at.
Some super useful information here - https://github.com/japaric/ruststrap/blob/master/1-how-to-cross-compile.md shows how easy it can be to get a set of rust tools for arm. However, substituting the target triple for relevant x86 targets isn't working out for me
$ ./configure --target=i586-unknown-linux-gnu
configure: error: unsupported target triples "i586-unknown-linux-gnu" found
I tried a bunch of different triples along the i586/i386 pc/unknown lines and nothing worked but I realised that these targets referred to makefiles in mk/cfg (here) and copied the i686-unknown-linux-gnu make file to i585-unknown-linux-gnu and edited the contents to use i585 triples instead of i686. Then issuing the above command worked.
However when I build the source it happily does it for a while (at least a couple of hours) before eventually failing
error: Error loading target specification: Could not find specification for target "i586-unknown-linux-gnu"
make: *** [x86_64-unknown-linux-gnu/stage2/lib/rustlib/i586-unknown-linux-gnu/lib/stamp.core] Error 101
I'm missing something here, it should be as simple as supplying the right triple (as people have done for arm), unless i586 really isn't supported.