rust/compiler/rustc_codegen_llvm/src
bors a2b1646c59 Auto merge of #86844 - bjorn3:global_alloc_improvements, r=pnkfelix
Support #[global_allocator] without the allocator shim

This makes it possible to use liballoc/libstd in combination with `--emit obj` if you use `#[global_allocator]`. This is what rust-for-linux uses right now and systemd may use in the future. Currently they have to depend on the exact implementation of the allocator shim to create one themself as `--emit obj` doesn't create an allocator shim.

Note that currently the allocator shim also defines the oom error handler, which is normally required too. Once `#![feature(default_alloc_error_handler)]` becomes the only option, this can be avoided. In addition when using only fallible allocator methods and either `--cfg no_global_oom_handling` for liballoc (like rust-for-linux) or `--gc-sections` no references to the oom error handler will exist.

To avoid this feature being insta-stable, you will have to define `__rust_no_alloc_shim_is_unstable` to avoid linker errors.

(Labeling this with both T-compiler and T-lang as it originally involved both an implementation detail and had an insta-stable user facing change. As noted above, the `__rust_no_alloc_shim_is_unstable` symbol requirement should prevent unintended dependence on this unstable feature.)
2023-05-25 16:59:57 +00:00
..
back Remove the ThinLTO CU hack 2023-05-08 10:34:15 -07:00
coverageinfo Use Option::is_some_and and Result::is_ok_and in the compiler 2023-05-24 14:20:41 +00:00
debuginfo Auto merge of #111641 - michaelwoerister:debugger-visualizer-fixes, r=cjgillot 2023-05-19 11:30:44 +00:00
llvm Auto merge of #111364 - cuviper:unhack-thinlto, r=nikic 2023-05-18 01:35:41 +00:00
abi.rs Remove double spaces after dots in comments 2023-01-17 08:09:33 +00:00
allocator.rs Prevent insta-stable no alloc shim support 2023-05-11 14:35:09 +00:00
asm.rs Rollup merge of #111332 - loongarch-rs:inline-asm, r=Amanieu 2023-05-08 19:41:51 +09:00
attributes.rs Add kernel-address sanitizer support for freestanding targets 2023-02-14 20:54:25 -05:00
base.rs Remove several unused methods from MiscMethods 2022-10-01 16:45:07 +00:00
builder.rs Fix num reserved clauses for landing pad 2023-05-07 12:38:47 +01:00
callee.rs CFI: Fix SIGILL reached via trait objects 2023-05-09 20:04:19 +00:00
common.rs Store hashes in special types so they aren't accidentally encoded as numbers 2023-04-18 10:52:47 -04:00
consts.rs review 2023-04-05 15:08:17 +03:00
context.rs Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
declare.rs CFI: Fix SIGILL reached via trait objects 2023-05-09 20:04:19 +00:00
errors.rs Rollup merge of #111203 - Kobzol:remark-print-kind, r=tmiasko 2023-05-06 23:32:02 +02:00
intrinsic.rs CFI: Fix SIGILL reached via trait objects 2023-05-09 20:04:19 +00:00
lib.rs Create a structure to define the features from to_llvm_features. 2023-05-22 14:46:40 +01:00
llvm_util.rs Create a structure to define the features from to_llvm_features. 2023-05-22 14:46:40 +01:00
mono_item.rs Use is_some_and/is_ok_and in less obvious spots 2023-05-24 14:33:43 +00:00
type_.rs Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
type_of.rs Remove type-traversal trait aliases 2023-02-22 17:04:58 +00:00
va_arg.rs Implement va_list and va_arg for s390x FFI 2022-12-19 21:07:57 +01:00
value.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00