rust/compiler
Stuart Cook c539f3ffe1
Rollup merge of #149241 - thejpster:fix-armv4t-armv5te-bare-metal, r=davidtwco
Fix armv4t- and armv5te- bare metal targets

These two targets currently force on the LLVM feature `+atomics-32`. LLVM doesn't appear to actually be able to emit 32-bit load/store atomics for these targets despite this feature, and emits calls to a shim function called `__sync_lock_test_and_set_4`, which nothing in the Rust standard library supplies.

See [#t-compiler/arm > __sync_lock_test_and_set_4 on Armv5TE](https://rust-lang.zulipchat.com/#narrow/channel/242906-t-compiler.2Farm/topic/__sync_lock_test_and_set_4.20on.20Armv5TE/with/553724827) for more details.

Experimenting with clang and gcc (as logged in that zulip thread) shows that C code cannot do atomic load/stores on that architecture either (at least, not without a library call inserted).

So, the safest thing to do is probably turn off `+atomics-32` for these two Tier 3 targets.

I asked `@Lokathor` and he said he didn't even use atomics on the `armv4t-none-eabi`/`thumbv4t-none-eabi` target he maintains.

I was unable to reach `@QuinnPainter` for comment for `armv5te-none-eabi`/`thumbv5te-none-eabi`.

The second commit renames the base target spec `spec::base::thumb` to `spec::base::arm_none` and changes `armv4t-none-eabi`/`thumbv4t-none-eabi` and `armv5te-none-eabi`/`thumbv5te-none-eabi` to use it. This harmonises the frame-pointer and linker options across the bare-metal Arm EABI and EABIHF targets.

You could make an argument for harmonising `armv7a-none-*`, `armv7r-none*` and `armv8r-none-*` as well, but that can be another PR.
2025-12-02 13:56:30 +11:00
..
rustc Auto merge of #148925 - madsmtm:jemalloc-perf, r=Kobzol 2025-11-23 20:34:07 +00:00
rustc_abi Rollup merge of #145954 - RalfJung:syscall-c-variadics, r=jackh726 2025-11-16 20:30:53 +11:00
rustc_arena fix 2025-11-27 17:55:34 +07:00
rustc_ast Rollup merge of #148256 - lcnr:orphan-check, r=spastorino,WaffleLapkin 2025-11-27 15:59:11 +01:00
rustc_ast_ir Implement &pin patterns and ref pin bindings 2025-11-10 09:57:08 +08:00
rustc_ast_lowering remove support for type-of 2025-11-25 10:19:44 +01:00
rustc_ast_passes Deny const auto traits 2025-11-25 21:00:46 +09:00
rustc_ast_pretty remove support for type-of 2025-11-25 10:19:44 +01:00
rustc_attr_parsing Port the #![windows_subsystem] attribute to the new attribute system 2025-11-27 00:17:48 +01:00
rustc_baked_icu_data Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_borrowck Rollup merge of #149107 - Enselic:option-inspect-mutation, r=jieyouxu 2025-11-28 15:30:43 +11:00
rustc_builtin_macros Run eval_config_entry on all branches so we always emit lints 2025-11-27 13:36:03 +01:00
rustc_codegen_cranelift Replace OffsetOf by an actual sum. 2025-11-18 00:10:03 +00:00
rustc_codegen_gcc Remove an unnecessary unwrap in rustc_codegen_gcc 2025-11-29 10:34:07 +01:00
rustc_codegen_llvm Auto merge of #147404 - JamieCunliffe:inline-always, r=jackh726 2025-11-28 22:58:22 +00:00
rustc_codegen_ssa Rollup merge of #149363 - scrabsha:rust/sasha/vkknqylzvzlu, r=jdonszelmann 2025-11-27 20:07:13 +01:00
rustc_const_eval Rollup merge of #149444 - fee1-dead-contrib:push-lurmmylquwsq, r=oli-obk 2025-11-30 12:03:23 +01:00
rustc_data_structures Auto merge of #148818 - Zalathar:rollup-4vujcg0, r=Zalathar 2025-11-11 13:30:50 +00:00
rustc_driver Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_driver_impl Only try to link against offload functions if llvm.enzyme is enabled 2025-11-23 00:19:53 -08:00
rustc_error_codes Fix indent in E0591.md 2025-11-30 21:24:33 +09:00
rustc_error_messages Remove unused pop_span_label method 2025-11-21 14:16:12 +00:00
rustc_errors Rollup merge of #149433 - scottmcm:delay-layout-ICEs, r=jdonszelmann 2025-12-01 18:35:11 +01:00
rustc_expand Give all impls a constness 2025-11-18 09:20:21 +00:00
rustc_feature remove feature(never_type_fallback) 2025-11-27 22:48:00 +01:00
rustc_fluent_macro Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_fs_util Revert introduction of [workspace.dependencies]. 2025-09-02 19:12:54 +10:00
rustc_graphviz Allow internal_features lint in doc tests 2025-11-05 11:25:29 +00:00
rustc_hashes some cleanups in compiler 2025-10-12 08:08:30 +00:00
rustc_hir Auto merge of #149397 - matthiaskrgr:rollup-go79y6a, r=matthiaskrgr 2025-11-27 19:24:40 +00:00
rustc_hir_analysis Rollup merge of #149269 - folkertdev:cmse-infer, r=davidtwco 2025-12-01 17:55:07 +01:00
rustc_hir_id rustc_hir_id: Add a comment explaining why the crate exists 2025-08-20 15:04:00 -07:00
rustc_hir_pretty remove support for type-of 2025-11-25 10:19:44 +01:00
rustc_hir_typeck Rollup merge of #149344 - lapla-cogito:const_unwrap_sugg, r=Kivooeo 2025-12-01 17:55:08 +01:00
rustc_incremental Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_index Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_index_macros Revert introduction of [workspace.dependencies]. 2025-09-02 19:12:54 +10:00
rustc_infer fudge infer vars in cause code intentionally 2025-12-01 12:40:49 +08:00
rustc_interface Use cg_llvm's target_config in miri 2025-11-27 19:12:18 +00:00
rustc_lexer Update memchr to 2.7.6 2025-09-26 17:53:49 +02:00
rustc_lint Rollup merge of #148256 - lcnr:orphan-check, r=spastorino,WaffleLapkin 2025-11-27 15:59:11 +01:00
rustc_lint_defs c_variadic: Add future-incompatibility warning for ... arguments without a pattern outside of extern blocks 2025-11-10 14:33:56 +01:00
rustc_llvm Rollup merge of #147936 - Sa4dUs:offload-intrinsic, r=ZuseZ4 2025-11-26 23:32:03 +11:00
rustc_log Restrict sysroot crate imports to those defined in this repo. 2025-10-15 13:17:25 +01:00
rustc_macros use declarative macro for #[derive(TryFromU32)] 2025-10-06 14:54:38 +00:00
rustc_metadata Rollup merge of #149388 - jdonszelmann:rm-sess-blob, r=jieyouxu 2025-11-27 20:07:15 +01:00
rustc_middle Rollup merge of #148746 - RalfJung:mutable-ref-in-const, r=davidtwco 2025-11-29 20:54:05 +01:00
rustc_mir_build Use let...else consistently in user-facing diagnostics 2025-11-24 11:41:52 +09:00
rustc_mir_dataflow Auto merge of #142821 - cjgillot:jump-threading-single, r=saethlin 2025-12-01 23:44:49 +00:00
rustc_mir_transform Auto merge of #142821 - cjgillot:jump-threading-single, r=saethlin 2025-12-01 23:44:49 +00:00
rustc_monomorphize rlib handling 2025-11-19 00:17:37 -05:00
rustc_next_trait_solver Rollup merge of #148256 - lcnr:orphan-check, r=spastorino,WaffleLapkin 2025-11-27 15:59:11 +01:00
rustc_parse Auto merge of #149515 - matthiaskrgr:rollup-djmciuc, r=matthiaskrgr 2025-12-01 20:29:33 +00:00
rustc_parse_format Allow internal_features lint in doc tests 2025-11-05 11:25:29 +00:00
rustc_passes make assoc fn inherit const stability from inherent const impl blocks 2025-11-28 23:31:48 -05:00
rustc_pattern_analysis fix: Do not ICE when missing match arm with ill-formed subty is met 2025-11-13 01:36:35 +09:00
rustc_privacy Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_proc_macro Revert introduction of [workspace.dependencies]. 2025-09-02 19:12:54 +10:00
rustc_public Rollup merge of #144000 - jacob-greenfield:stable-defid-parent, r=celinval 2025-11-29 21:12:25 +11:00
rustc_public_bridge Add DefId::parent() accessor in rustc_public 2025-11-14 17:12:50 -05:00
rustc_query_impl Lock shards while collecting active jobs. 2025-11-14 09:01:22 +08:00
rustc_query_system fix(span): track unnormalized source len for dep-info 2025-11-15 09:05:08 -05:00
rustc_resolve Auto merge of #149515 - matthiaskrgr:rollup-djmciuc, r=matthiaskrgr 2025-12-01 20:29:33 +00:00
rustc_sanitizers Rollup merge of #144936 - rcvalle:rust-cfi-fix-144641, r=lcnr 2025-10-28 20:39:32 +11:00
rustc_serialize Allow internal_features lint in doc tests 2025-11-05 11:25:29 +00:00
rustc_session Emit error when using path-segment keyword as cfg pred 2025-11-21 18:48:04 +08:00
rustc_span Rollup merge of #148641 - oli-obk:push-olzwqxsmnxmz, r=jackh726 2025-11-27 12:36:48 +11:00
rustc_symbol_mangling Rollup merge of #148452 - Fulgen301:pdb-large-symbols-v0, r=jackh726 2025-11-26 23:32:05 +11:00
rustc_target Rollup merge of #149241 - thejpster:fix-armv4t-armv5te-bare-metal, r=davidtwco 2025-12-02 13:56:30 +11:00
rustc_thread_pool some cleanups in compiler 2025-10-12 08:08:30 +00:00
rustc_trait_selection Rollup merge of #149299 - adwinwhite:next-245-ice, r=lcnr 2025-12-01 17:55:07 +01:00
rustc_traits add const_of_item query and use it in normalization 2025-11-08 13:50:47 -05:00
rustc_transmute prefer to use repeat_n over repeat and take 2025-10-09 01:24:55 +08:00
rustc_ty_utils Rollup merge of #149433 - scottmcm:delay-layout-ICEs, r=jdonszelmann 2025-12-01 18:35:11 +01:00
rustc_type_ir Auto merge of #135634 - joboet:trivial-clone, r=Mark-Simulacrum 2025-11-10 15:41:43 +00:00
rustc_type_ir_macros compiler: Fix a couple issues around cargo feature unification 2025-10-31 14:14:05 -04:00
rustc_windows_rc [win] Use find-msvc-tools instead of cc to find the linker and rc on Windows 2025-09-19 12:00:30 -07:00