1
Fork 0
rust/compiler/rustc_codegen_gcc/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 Merge commit '08a6d6e16b' into sync-cg_gcc-2023-03-04 2023-03-05 12:03:19 -05:00
intrinsic Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
abi.rs Merge apply_attrs_callsite into call and invoke 2022-10-01 17:01:31 +00:00
allocator.rs Prevent insta-stable no alloc shim support 2023-05-11 14:35:09 +00:00
archive.rs Rewrite LLVM's archive writer in Rust 2022-11-26 19:35:32 +00:00
asm.rs Rollup merge of #105452 - rcvalle:rust-cfi-3, r=bjorn3 2023-05-03 16:42:48 -07:00
attributes.rs Fix for diagnostics 2023-03-05 12:31:16 -05:00
base.rs Merge commit '08a6d6e16b' into sync-cg_gcc-2023-03-04 2023-03-05 12:03:19 -05:00
builder.rs Add todo for filter landing pad 2023-05-07 12:38:47 +01:00
callee.rs rename needs_infer to has_infer 2023-04-27 08:35:19 +01:00
common.rs Use poison instead of undef 2023-03-16 15:07:04 +01:00
consts.rs Merge commit '08a6d6e16b' into sync-cg_gcc-2023-03-04 2023-03-05 12:03:19 -05:00
context.rs Merge commit '08a6d6e16b' into sync-cg_gcc-2023-03-04 2023-03-05 12:03:19 -05:00
coverageinfo.rs Merge commit 'e228f0c16e' into libgccjit-codegen 2021-08-15 08:29:07 -04:00
debuginfo.rs Introduce composite debuginfo. 2022-11-15 17:53:50 +00:00
declare.rs Merge commit '08a6d6e16b' into sync-cg_gcc-2023-03-04 2023-03-05 12:03:19 -05:00
errors.rs Fix for diagnostics 2023-03-05 12:31:16 -05:00
int.rs Merge commit '08a6d6e16b' into sync-cg_gcc-2023-03-04 2023-03-05 12:03:19 -05:00
lib.rs Move expansion of query macros in rustc_middle to rustc_middle::query 2023-05-15 08:49:13 +02:00
mono_item.rs rename needs_infer to has_infer 2023-04-27 08:35:19 +01:00
type_.rs Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
type_of.rs Merge commit '08a6d6e16b' into sync-cg_gcc-2023-03-04 2023-03-05 12:03:19 -05:00