rust/src
Manish Goregaokar 90164587dc
Rollup merge of #74419 - Lokathor:gba-target, r=jonas-schievink
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.
2020-07-19 07:02:26 -07:00
..
backtrace@8f89434446 std: Switch from libbacktrace to gimli 2020-07-17 14:32:18 -07:00
bootstrap Auto merge of #74091 - richkadel:llvm-coverage-map-gen-4, r=tmandry 2020-07-19 07:25:18 +00:00
build_helper
ci Rollup merge of #74418 - rye:gha-dedup-shell-setting, r=pietroalbini 2020-07-17 18:13:42 -07:00
doc Revert "Remove "important traits" feature" 2020-07-16 09:58:17 -07:00
etc Rollup merge of #73715 - MaulingMonkey:pr-natvis-tuples, r=Amanieu 2020-07-11 08:53:13 -07:00
liballoc Rollup merge of #74453 - Manishearth:intra-doc-std, r=jyn514 2020-07-17 18:13:52 -07:00
libcore Auto merge of #74091 - richkadel:llvm-coverage-map-gen-4, r=tmandry 2020-07-19 07:25:18 +00:00
libpanic_abort Auto merge of #74395 - Mark-Simulacrum:stage0-next, r=pietroalbini 2020-07-17 03:51:35 +00:00
libpanic_unwind Auto merge of #74395 - Mark-Simulacrum:stage0-next, r=pietroalbini 2020-07-17 03:51:35 +00:00
libproc_macro Introduce restricted-std feature. 2020-07-15 09:57:05 -07:00
libprofiler_builtins Prepare for LLVM 11 2020-06-25 18:52:41 -07:00
librustc_apfloat Migrate to numeric associated consts 2020-06-10 01:35:47 +00:00
librustc_arena Rollup merge of #73378 - matthewjasper:arena-not-special, r=oli-obk 2020-06-20 14:45:00 -07:00
librustc_ast apply bootstrap cfgs 2020-07-16 19:36:49 -04:00
librustc_ast_lowering Suggest borrowing in more unsized fn param cases 2020-07-14 10:50:24 -07:00
librustc_ast_passes Revert "Remove spotlight usage" 2020-07-16 09:58:34 -07:00
librustc_ast_pretty Auto merge of #74175 - nnethercote:more-static-symbols, r=oli-obk 2020-07-15 00:16:25 +00:00
librustc_attr Add and use more static symbols. 2020-07-15 08:42:59 +10:00
librustc_builtin_macros Remove ExtCtxt::ident_of. 2020-07-17 08:28:19 +10:00
librustc_codegen_llvm Generating the coverage map 2020-07-17 11:49:35 -07:00
librustc_codegen_ssa Auto merge of #74091 - richkadel:llvm-coverage-map-gen-4, r=tmandry 2020-07-19 07:25:18 +00:00
librustc_data_structures Rollup merge of #73984 - pierwill:pierwill-tarjan, r=jonas-schievink 2020-07-03 17:17:05 -07:00
librustc_driver Auto merge of #72983 - Lezzz:rename-typeck, r=nikomatsakis 2020-07-17 17:25:09 +00:00
librustc_error_codes rustc_metadata: Remove some extra diagnostics for legacy plugins 2020-07-18 14:04:41 +04:00
librustc_errors apply bootstrap cfgs 2020-07-16 19:36:49 -04:00
librustc_expand Remove ExtCtxt::ident_of. 2020-07-17 08:28:19 +10:00
librustc_feature Revert "Remove "important traits" feature" 2020-07-16 09:58:17 -07:00
librustc_fs_util
librustc_graphviz
librustc_hir Auto merge of #74091 - richkadel:llvm-coverage-map-gen-4, r=tmandry 2020-07-19 07:25:18 +00:00
librustc_hir_pretty Remove lots of Symbol::as_str() calls. 2020-07-15 09:01:35 +10:00
librustc_incremental Rename TypeckTables to TypeckResults. 2020-07-17 08:47:04 +00:00
librustc_index apply bootstrap cfgs 2020-07-16 19:36:49 -04:00
librustc_infer Auto merge of #72983 - Lezzz:rename-typeck, r=nikomatsakis 2020-07-17 17:25:09 +00:00
librustc_interface Auto merge of #74091 - richkadel:llvm-coverage-map-gen-4, r=tmandry 2020-07-19 07:25:18 +00:00
librustc_lexer Rollup merge of #73856 - pierwill:pierwill-lexer-doc, r=jonas-schievink 2020-07-06 17:45:17 -07:00
librustc_lint Rollup merge of #74448 - davidtwco:improper-ctypes-definitions-boxes, r=davidtwco 2020-07-17 18:13:47 -07:00
librustc_llvm Generating the coverage map 2020-07-17 11:49:35 -07:00
librustc_macros Enforce the static symbol order. 2020-07-16 16:53:24 +10:00
librustc_metadata rustc_metadata: Make crate loading fully speculative 2020-07-18 14:06:04 +04:00
librustc_middle Auto merge of #74091 - richkadel:llvm-coverage-map-gen-4, r=tmandry 2020-07-19 07:25:18 +00:00
librustc_mir Auto merge of #74091 - richkadel:llvm-coverage-map-gen-4, r=tmandry 2020-07-19 07:25:18 +00:00
librustc_mir_build Rollup merge of #74411 - jonas-schievink:unbreak-mir, r=matthewjasper 2020-07-17 14:09:22 -07:00
librustc_parse Rollup merge of #74337 - estebank:ty-parse-recovery, r=varkor 2020-07-15 11:01:26 -07:00
librustc_parse_format Eliminate confusing "globals" terminology. 2020-07-09 14:11:44 +10:00
librustc_passes Auto merge of #74091 - richkadel:llvm-coverage-map-gen-4, r=tmandry 2020-07-19 07:25:18 +00:00
librustc_plugin_impl rustc_metadata: Make crate loading fully speculative 2020-07-18 14:06:04 +04:00
librustc_privacy Auto merge of #72983 - Lezzz:rename-typeck, r=nikomatsakis 2020-07-17 17:25:09 +00:00
librustc_query_system apply bootstrap cfgs 2020-07-16 19:36:49 -04:00
librustc_resolve rustc_metadata: Make crate loading fully speculative 2020-07-18 14:06:04 +04:00
librustc_save_analysis Auto merge of #72983 - Lezzz:rename-typeck, r=nikomatsakis 2020-07-17 17:25:09 +00:00
librustc_serialize Use min_specialization in the remaining rustc crates 2020-06-10 09:05:52 +01:00
librustc_session Generating the coverage map 2020-07-17 11:49:35 -07:00
librustc_span Auto merge of #74395 - Mark-Simulacrum:stage0-next, r=pietroalbini 2020-07-17 03:51:35 +00:00
librustc_symbol_mangling Change SymbolName::name to a &str. 2020-07-15 14:37:55 +10:00
librustc_target Rollup merge of #74419 - Lokathor:gba-target, r=jonas-schievink 2020-07-19 07:02:26 -07:00
librustc_trait_selection Rename TypeckTables to TypeckResults. 2020-07-17 08:47:04 +00:00
librustc_traits Use for<'tcx> fn pointers in Providers, instead of having Providers<'tcx>. 2020-07-05 23:00:14 +03:00
librustc_ty WithOptConstParam::dummy -> WithOptConstParam::unknown 2020-07-15 13:06:47 +02:00
librustc_typeck Auto merge of #74091 - richkadel:llvm-coverage-map-gen-4, r=tmandry 2020-07-19 07:25:18 +00:00
librustdoc Rollup merge of #74452 - Manishearth:module-type-ns, r=jyn514 2020-07-17 14:09:33 -07:00
libstd Rollup merge of #74356 - lzutao:rm_combine, r=LukasKalbertodt 2020-07-19 07:02:24 -07:00
libterm
libtest Rollup merge of #74033 - ehuss:std-compile-all-platforms, r=Mark-Simulacrum 2020-07-16 17:08:57 -07:00
libunwind Use an allow-list of platforms that support std. 2020-07-15 09:57:10 -07:00
llvm-project@86b120e6f3 Update llvm-project to latest origin/rustc/10.0-2020-05-05 commit which includes LVI segfault fix 2020-07-12 18:49:14 +00:00
rtstartup
rustc
rustllvm Generating the coverage map 2020-07-17 11:49:35 -07:00
stdarch@45340c0e2f
test Auto merge of #74091 - richkadel:llvm-coverage-map-gen-4, r=tmandry 2020-07-19 07:25:18 +00:00
tools Auto merge of #74091 - richkadel:llvm-coverage-map-gen-4, r=tmandry 2020-07-19 07:25:18 +00:00
README.md
stage0.txt Bump to 1.47 2020-07-16 19:36:49 -04:00

This directory contains the source code of the rust project, including:

  • rustc and its tests
  • libstd
  • Various submodules for tools, like rustdoc, rls, etc.

For more information on how various parts of the compiler work, see the rustc dev guide.