rust/compiler
bors cba4a389b3 Auto merge of #101329 - QuinnPainter:armv5te-targets, r=nagisa
Add armv5te-none-eabi and thumbv5te-none-eabi targets

Creates two new Tier 3 targets, `armv5te-none-eabi` and `thumbv5te-none-eabi`. They are for the same target architecture (armv5te), but one defaults to the A32 instruction set and the other defaults to T32. Based on the existing `armv4t-none-eabi` and `thumbv4t-none-eabi` targets.

My particular use case for these targets is Nintendo DS homebrew, but they should be usable for any armv5te system.

Going through the Tier 3 target policy:

> A tier 3 target must have a designated developer or developers (the "target maintainers") on record to be CCed when issues arise regarding the target. (The mechanism to track and CC such developers may evolve over time.)

That will be me.

> Targets must use naming consistent with any existing targets.

Naming is consistent with previous targets.

>> Target names should not introduce undue confusion or ambiguity unless absolutely necessary to maintain ecosystem compatibility.

No ambiguity here.

> Tier 3 targets may have unusual requirements to build or use, but must not create legal issues or impose onerous legal terms for the Rust project or for Rust developers or users.

Doesn't create any legal issues.

>> The target must not introduce license incompatibilities.

This doesn't introduce any new licenses.

>> Anything added to the Rust repository must be under the standard Rust license (MIT OR Apache-2.0).

Yep.

>> The target must not cause the Rust tools or libraries built for any other host (even when supporting cross-compilation to the target) to depend on any new dependency less permissive than the Rust licensing policy. This applies whether the dependency is a Rust crate that would require adding new license exceptions (as specified by the tidy tool in the rust-lang/rust repository), or whether the dependency is a native library or binary. In other words, the introduction of the target must not cause a user installing or running a version of Rust or the Rust tools to be subject to any new license requirements.

No new license requirements.

>> Compiling, linking, and emitting functional binaries, libraries, or other code for the target (whether hosted on the target itself or cross-compiling from another target) must not depend on proprietary (non-FOSS) libraries.

Everything this uses is FOSS, no proprietary required.

> Neither this policy nor any decisions made regarding targets shall create any binding agreement or estoppel by any party. If any member of an approving Rust team serves as one of the maintainers of a target, or has any legal or employment requirement (explicit or implicit) that might affect their decisions regarding a target, they must recuse themselves from any approval decisions regarding the target's tier status, though they may otherwise participate in discussions.

OK.

>> This requirement does not prevent part or all of this policy from being cited in an explicit contract or work agreement (e.g. to implement or maintain support for a target). This requirement exists to ensure that a developer or team responsible for reviewing and approving a target does not face any legal threats or obligations that would prevent them from freely exercising their judgment in such approval, even if such judgment involves subjective matters or goes beyond the letter of these requirements.

OK.

> Tier 3 targets should attempt to implement as much of the standard libraries as possible and appropriate (core for most targets, alloc for targets that can support dynamic memory allocation, std for targets with an operating system or equivalent layer of system-provided functionality), but may leave some code unimplemented (either unavailable or stubbed out as appropriate), whether because the target makes it impossible to implement or challenging to implement. The authors of pull requests are not obligated to avoid calling any portions of the standard library on the basis of a tier 3 target not implementing those portions.

This is a bare-metal target with only support for `core` (and `alloc`, if the user provides an allocator).

> The target must provide documentation for the Rust community explaining how to build for the target, using cross-compilation if possible. If the target supports running binaries, or running tests (even if they do not pass), the documentation must explain how to run such binaries or tests for the target, using emulation if possible or dedicated hardware if necessary.

Documentation has been added.

> Tier 3 targets must not impose burden on the authors of pull requests, or other developers in the community, to maintain the target. In particular, do not post comments (automated or manual) on a PR that derail or suggest a block on the PR based on a tier 3 target. Do not send automated messages or notifications (via any medium, including via `@)` to a PR author or others involved with a PR regarding a tier 3 target, unless they have opted into such messages.

OK.

> Backlinks such as those generated by the issue/PR tracker when linking to an issue or PR are not considered a violation of this policy, within reason. However, such messages (even on a separate repository) must not generate notifications to anyone involved with a PR who has not requested such notifications.

OK.

> Patches adding or updating tier 3 targets must not break any existing tier 2 or tier 1 target, and must not knowingly break another tier 3 target without approval of either the compiler team or the maintainers of the other tier 3 target.

This doesn't break any other targets.

>> In particular, this may come up when working on closely related targets, such as variations of the same architecture with different features. Avoid introducing unconditional uses of features that another variation of the target may not have; use conditional compilation or runtime detection, as appropriate, to let each target run code supported by that target.

No unnecessary unconditional features here.
2022-09-21 09:36:21 +00:00
..
rustc Don't rerun the build script for the compiler each time on linux 2022-07-10 23:57:25 -05:00
rustc_apfloat Add diagnostic translation lints to crates that don't emit them 2022-08-18 19:29:02 +01:00
rustc_arena Make use of [wrapping_]byte_{add,sub} 2022-08-23 19:32:37 +04:00
rustc_ast Rollup merge of #93628 - est31:stabilize_let_else, r=joshtriplett 2022-09-17 15:31:06 +05:30
rustc_ast_lowering Simplify rpitit handling on lower_fn_decl 2022-09-19 09:30:39 -03:00
rustc_ast_passes Only enable the let_else feature on bootstrap 2022-09-15 21:06:45 +02:00
rustc_ast_pretty make mk_attr_id part of ParseSess 2022-09-14 08:49:10 +08:00
rustc_attr Only enable the let_else feature on bootstrap 2022-09-15 21:06:45 +02:00
rustc_borrowck Auto merge of #99806 - oli-obk:unconstrained_opaque_type, r=estebank 2022-09-20 12:09:52 +00:00
rustc_builtin_macros Rollup merge of #100250 - cjgillot:recover-token-stream, r=Aaron1011 2022-09-20 10:12:56 -07:00
rustc_codegen_cranelift Auto merge of #99806 - oli-obk:unconstrained_opaque_type, r=estebank 2022-09-20 12:09:52 +00:00
rustc_codegen_gcc Remove dead broken code from const zst handling in backends 2022-09-06 14:09:49 +00:00
rustc_codegen_llvm Use LLVM C-API to build atomic cmpxchg and fence 2022-09-18 16:01:57 -07:00
rustc_codegen_ssa Auto merge of #99806 - oli-obk:unconstrained_opaque_type, r=estebank 2022-09-20 12:09:52 +00:00
rustc_const_eval Rollup merge of #102021 - lcnr:tyConst-fun, r=b-naber,BoxyUwU 2022-09-20 10:13:01 -07:00
rustc_data_structures Only enable the let_else feature on bootstrap 2022-09-15 21:06:45 +02:00
rustc_driver Only enable the let_else feature on bootstrap 2022-09-15 21:06:45 +02:00
rustc_error_codes Stabilize #![feature(label_break_value)] 2022-08-23 21:14:12 -05:00
rustc_error_messages Auto merge of #101924 - jackh726:revert-static-hrtb-error, r=compiler-errors 2022-09-19 04:56:14 +00:00
rustc_errors Rollup merge of #101790 - TaKO8Ki:do-not-suggest-placeholder-to-const-and-static-without-type, r=compiler-errors 2022-09-17 15:31:08 +05:30
rustc_expand Only enable the let_else feature on bootstrap 2022-09-15 21:06:45 +02:00
rustc_feature Rollup merge of #101713 - Bryanskiy:AccessLevels, r=petrochenkov 2022-09-17 23:30:49 +02:00
rustc_fs_util Add diagnostic translation lints to crates that don't emit them 2022-08-18 19:29:02 +01:00
rustc_graphviz Add diagnostic translation lints to crates that don't emit them 2022-08-18 19:29:02 +01:00
rustc_hir Rollup merge of #93628 - est31:stabilize_let_else, r=joshtriplett 2022-09-17 15:31:06 +05:30
rustc_hir_pretty Handle generic parameters. 2022-09-09 01:31:46 +00:00
rustc_incremental Only enable the let_else feature on bootstrap 2022-09-15 21:06:45 +02:00
rustc_index Only enable the let_else feature on bootstrap 2022-09-15 21:06:45 +02:00
rustc_infer remove the Subst trait, always use EarlyBinder 2022-09-19 11:37:27 +02:00
rustc_interface Only enable the let_else feature on bootstrap 2022-09-15 21:06:45 +02:00
rustc_lexer remove unnecessary PartialOrd and Ord 2022-09-08 06:15:33 +09:00
rustc_lint Rollup merge of #101912 - crlf0710:compiler_update_unicode_15, r=Manishearth 2022-09-18 02:55:29 +02:00
rustc_lint_defs Compute lint_levels by definition 2022-09-14 19:02:44 +02:00
rustc_llvm Use LLVM C-API to build atomic cmpxchg and fence 2022-09-18 16:01:57 -07:00
rustc_log Add diagnostic translation lints to crates that don't emit them 2022-08-18 19:29:02 +01:00
rustc_macros Only enable the let_else feature on bootstrap 2022-09-15 21:06:45 +02:00
rustc_metadata Auto merge of #101806 - BelovDV:issue-fix-fn-find_library, r=petrochenkov 2022-09-20 07:10:18 +00:00
rustc_middle Auto merge of #102061 - notriddle:rollup-kwu9vp8, r=notriddle 2022-09-20 19:10:11 +00:00
rustc_mir_build Rollup merge of #102021 - lcnr:tyConst-fun, r=b-naber,BoxyUwU 2022-09-20 10:13:01 -07:00
rustc_mir_dataflow Auto merge of #99806 - oli-obk:unconstrained_opaque_type, r=estebank 2022-09-20 12:09:52 +00:00
rustc_mir_transform Rollup merge of #102021 - lcnr:tyConst-fun, r=b-naber,BoxyUwU 2022-09-20 10:13:01 -07:00
rustc_monomorphize Rollup merge of #93628 - est31:stabilize_let_else, r=joshtriplett 2022-09-17 15:31:06 +05:30
rustc_parse Rollup merge of #100250 - cjgillot:recover-token-stream, r=Aaron1011 2022-09-20 10:12:56 -07:00
rustc_parse_format Separate CountIsStar from CountIsParam in rustc_parse_format. 2022-08-25 14:49:09 +02:00
rustc_passes Rollup merge of #101713 - Bryanskiy:AccessLevels, r=petrochenkov 2022-09-17 23:30:49 +02:00
rustc_plugin_impl Migrate rustc_plugin_impl to SessionDiagnostic 2022-08-22 16:35:05 +01:00
rustc_privacy Rollup merge of #101713 - Bryanskiy:AccessLevels, r=petrochenkov 2022-09-17 23:30:49 +02:00
rustc_query_impl Rollup merge of #101801 - SparrowLii:query_depth_note, r=estebank 2022-09-17 19:27:06 +02:00
rustc_query_system Rollup merge of #101801 - SparrowLii:query_depth_note, r=estebank 2022-09-17 19:27:06 +02:00
rustc_resolve Rollup merge of #101713 - Bryanskiy:AccessLevels, r=petrochenkov 2022-09-17 23:30:49 +02:00
rustc_save_analysis Only enable the let_else feature on bootstrap 2022-09-15 21:06:45 +02:00
rustc_serialize Rollup merge of #101014 - isikkema:fix-zmeta-stats-file-encoder-no-read-perms, r=isikkema 2022-09-20 10:12:57 -07:00
rustc_session Only enable the let_else feature on bootstrap 2022-09-15 21:06:45 +02:00
rustc_smir Only keep one version of ImplicitSelfKind. 2022-09-13 19:18:23 +02:00
rustc_span Rollup merge of #101713 - Bryanskiy:AccessLevels, r=petrochenkov 2022-09-17 23:30:49 +02:00
rustc_symbol_mangling remove the Subst trait, always use EarlyBinder 2022-09-19 11:37:27 +02:00
rustc_target Auto merge of #101329 - QuinnPainter:armv5te-targets, r=nagisa 2022-09-21 09:36:21 +00:00
rustc_trait_selection Auto merge of #100096 - compiler-errors:fn-return-must-be-sized, r=jackh726 2022-09-21 04:35:20 +00:00
rustc_traits remove the Subst trait, always use EarlyBinder 2022-09-19 11:37:27 +02:00
rustc_transmute Auto merge of #100726 - jswrenn:transmute, r=oli-obk 2022-09-04 07:55:44 +00:00
rustc_ty_utils remove the Subst trait, always use EarlyBinder 2022-09-19 11:37:27 +02:00
rustc_type_ir Address code review comments 2022-09-13 14:50:12 -07:00
rustc_typeck Rollup merge of #102021 - lcnr:tyConst-fun, r=b-naber,BoxyUwU 2022-09-20 10:13:01 -07:00