Add a thumbv4t-none-eabi target (cc @ketsuban, one of the few other Rust users who programs for GBA.) --- **EDIT:** This is now a more general `thumbv4t-none-eabi` PR! See [this comment](https://github.com/rust-lang/rust/pull/74419#issuecomment-660391579) --- Now that the PSP officially has an official target within Rust, well as the lead of the `gba` crate I can't _not_ add a GBA target as well. I know that the [target tier policy](https://github.com/rust-lang/rfcs/pull/2803) isn't ratified and official, but I'll use it as an outline (cc @joshtriplett): * Designated Developer: Lokathor * Naming consistent with any existing targets * Doesn't create Rust project legal issues. * No license issues * Uses the standard Apache/mit license. * Rust tooling users don't have to accept any new licensing requirements * Does not support hosting rust tooling. * Doesn't require linking in proprietary code to obtain a functional binary. However, you will need to do some post-build steps to turn the ELF file into a usable GBA ROM (either for an emulator or for the actual hardware). * This is a `no_std` environment, without even a standard global allocator, so this adds no new code to `alloc` or `std`. * The process of building for this target is documented in the `gba` crate ([link](https://rust-console.github.io/gba/development-setup.html)). Well, the docs there are currently a little out of date, they're back on using `cargo-xbuild`, but the crate docs there will get updated once this target is available. * This places no new burden on any other targets * Does not break any existing targets. I'm not fully confident in specifying the same linker script for all possible projects, so I'm currently just not giving a linker script at all, and users can continue to select their own linker script by using `-C` to provide a linker arg. I added the file, and added it to the `supported_targets!` macro usage, and I think that's all there is to do. |
||
|---|---|---|
| .. | ||
| backtrace@8f89434446 | ||
| bootstrap | ||
| build_helper | ||
| ci | ||
| doc | ||
| etc | ||
| liballoc | ||
| libcore | ||
| libpanic_abort | ||
| libpanic_unwind | ||
| libproc_macro | ||
| libprofiler_builtins | ||
| librustc_apfloat | ||
| librustc_arena | ||
| librustc_ast | ||
| librustc_ast_lowering | ||
| librustc_ast_passes | ||
| librustc_ast_pretty | ||
| librustc_attr | ||
| librustc_builtin_macros | ||
| librustc_codegen_llvm | ||
| librustc_codegen_ssa | ||
| librustc_data_structures | ||
| librustc_driver | ||
| librustc_error_codes | ||
| librustc_errors | ||
| librustc_expand | ||
| librustc_feature | ||
| librustc_fs_util | ||
| librustc_graphviz | ||
| librustc_hir | ||
| librustc_hir_pretty | ||
| librustc_incremental | ||
| librustc_index | ||
| librustc_infer | ||
| librustc_interface | ||
| librustc_lexer | ||
| librustc_lint | ||
| librustc_llvm | ||
| librustc_macros | ||
| librustc_metadata | ||
| librustc_middle | ||
| librustc_mir | ||
| librustc_mir_build | ||
| librustc_parse | ||
| librustc_parse_format | ||
| librustc_passes | ||
| librustc_plugin_impl | ||
| librustc_privacy | ||
| librustc_query_system | ||
| librustc_resolve | ||
| librustc_save_analysis | ||
| librustc_serialize | ||
| librustc_session | ||
| librustc_span | ||
| librustc_symbol_mangling | ||
| librustc_target | ||
| librustc_trait_selection | ||
| librustc_traits | ||
| librustc_ty | ||
| librustc_typeck | ||
| librustdoc | ||
| libstd | ||
| libterm | ||
| libtest | ||
| libunwind | ||
| llvm-project@86b120e6f3 | ||
| rtstartup | ||
| rustc | ||
| rustllvm | ||
| stdarch@45340c0e2f | ||
| test | ||
| tools | ||
| README.md | ||
| stage0.txt | ||
This directory contains the source code of the rust project, including:
rustcand its testslibstd- Various submodules for tools, like rustdoc, rls, etc.
For more information on how various parts of the compiler work, see the rustc dev guide.