rust/compiler
bors f9e77f2b46 Auto merge of #91604 - nikic:section-flags, r=nagisa
Use object crate for .rustc metadata generation

We already use the object crate for generating uncompressed .rmeta
metadata object files. This switches the generation of compressed
.rustc object files to use the object crate as well. These have
slightly different requirements in that .rmeta should be completely
excluded from any final compilation artifacts, while .rustc should
be part of shared objects, but not loaded into memory.

The primary motivation for this change is #90326: In LLVM 14, the
current way of setting section flags (and in particular, preventing
the setting of SHF_ALLOC) will no longer work. There are other ways
we could work around this, but switching to the object crate seems
like the most elegant, as we already use it for .rmeta, and as it
makes this independent of the codegen backend. In particular, we
don't need separate handling in codegen_llvm and codegen_gcc.
codegen_cranelift should be able to reuse the implementation as
well, though I have omitted that here, as it is not based on
codegen_ssa.

This change mostly extracts the existing code for .rmeta handling
to allow using it for .rustc as well, and adjusts the codegen
infrastructure to handle the metadata object file separately: We
no longer create a backend-specific module for it, and directly
produce the compiled module instead.

This does not `fix` #90326 by itself yet, as .llvmbc will need to be
handled separately.

r? `@nagisa`
2021-12-08 14:58:48 +00:00
..
rustc
rustc_apfloat
rustc_arena Add some comments. 2021-11-19 07:52:59 +11:00
rustc_ast Add initial AST and MIR support for unwinding from inline assembly 2021-12-03 23:51:46 +01:00
rustc_ast_lowering Use IntoIterator for array impl everywhere. 2021-12-04 19:40:33 +01:00
rustc_ast_passes Rollup merge of #91208 - estebank:eq-constraint, r=cjgillot 2021-11-27 11:46:44 +01:00
rustc_ast_pretty Rollup merge of #91562 - dtolnay:asyncspace, r=Mark-Simulacrum 2021-12-07 11:05:06 +01:00
rustc_attr re-format with new rustfmt 2021-11-30 13:08:41 -05:00
rustc_borrowck Auto merge of #88439 - cynecx:unwind_asm, r=Amanieu 2021-12-04 05:59:16 +00:00
rustc_builtin_macros Rollup merge of #90519 - estebank:issue-84003, r=petrochenkov 2021-12-04 10:42:20 +01:00
rustc_codegen_cranelift Use IntoIterator for array impl everywhere. 2021-12-04 19:40:33 +01:00
rustc_codegen_gcc Auto merge of #91604 - nikic:section-flags, r=nagisa 2021-12-08 14:58:48 +00:00
rustc_codegen_llvm Auto merge of #91604 - nikic:section-flags, r=nagisa 2021-12-08 14:58:48 +00:00
rustc_codegen_ssa Auto merge of #91604 - nikic:section-flags, r=nagisa 2021-12-08 14:58:48 +00:00
rustc_const_eval Rollup merge of #91272 - FabianWolff:issue-90870-const-fn-eq, r=wesleywiser 2021-12-08 11:08:57 +01:00
rustc_data_structures Annotate comments onto the LT algorithm 2021-12-06 20:30:15 -05:00
rustc_driver add rustc option for using LLVM stack smash protection 2021-11-22 20:06:22 +01:00
rustc_error_codes Clarify and tidy up explanation of E0038 2021-11-30 09:25:17 -08:00
rustc_errors Rollup merge of #91394 - Mark-Simulacrum:bump-stage0, r=pietroalbini 2021-12-02 15:52:03 +01:00
rustc_expand Future compatibility warning on cfg_attr on crate_type and crate_name 2021-12-07 11:47:21 -05:00
rustc_feature add unwind_asm feature gate for may_unwind option 2021-12-03 23:51:49 +01:00
rustc_fs_util
rustc_graphviz
rustc_hir Use IntoIterator for array impl everywhere. 2021-12-04 19:40:33 +01:00
rustc_hir_pretty Delete duplicated helpers from HIR printer 2021-12-05 12:45:51 -08:00
rustc_incremental
rustc_index Auto merge of #90491 - Mark-Simulacrum:push-pred-faster, r=matthewjasper 2021-11-24 15:51:46 +00:00
rustc_infer Rollup merge of #91493 - oli-obk:cleanup, r=michaelwoerister 2021-12-07 11:05:00 +01:00
rustc_interface Stabilize -Z emit-future-incompat as --json future-incompat 2021-12-04 14:34:20 -05:00
rustc_lexer Auto merge of #91393 - Julian-Wollersberger:lexer_optimization, r=petrochenkov 2021-12-03 13:20:14 +00:00
rustc_lint Use let_else in some more places in rustc_lint 2021-12-03 03:51:47 +01:00
rustc_lint_defs Future compatibility warning on cfg_attr on crate_type and crate_name 2021-12-07 11:47:21 -05:00
rustc_llvm Auto merge of #91284 - t6:freebsd-riscv64, r=Amanieu 2021-12-06 03:51:05 +00:00
rustc_macros Rename TypeFolderFallible to FallibleTypeFolder 2021-12-02 16:14:18 +00:00
rustc_metadata Improve suggestion for extern crate self error message 2021-12-01 21:59:54 +00:00
rustc_middle Auto merge of #91279 - scottmcm:small-refactor, r=nagisa 2021-12-06 13:04:18 +00:00
rustc_mir_build Add initial AST and MIR support for unwinding from inline assembly 2021-12-03 23:51:46 +01:00
rustc_mir_dataflow Auto merge of #91475 - ecstatic-morse:mir-pass-manager3, r=oli-obk 2021-12-05 03:41:18 +00:00
rustc_mir_transform Rollup merge of #91638 - scottmcm:less-inband-2-of-28, r=petrochenkov 2021-12-08 11:09:01 +01:00
rustc_monomorphize
rustc_parse Rollup merge of #91531 - notriddle:notriddle/issue-87647-expected-semicolon, r=estebank 2021-12-08 11:08:59 +01:00
rustc_parse_format
rustc_passes Update invalid crate attributes, add help message 2021-12-03 18:38:32 +00:00
rustc_plugin_impl
rustc_privacy Take a LocalDefId in expect_*item. 2021-11-28 21:09:45 +01:00
rustc_query_impl
rustc_query_system std: Stabilize the thread_local_const_init feature 2021-11-29 07:23:46 -08:00
rustc_resolve Annotate derived spans and move span suggestion code 2021-12-03 18:41:40 +00:00
rustc_save_analysis
rustc_serialize avoid string validation in rustc_serialize, check a marker byte instead 2021-12-06 18:43:01 +01:00
rustc_session Auto merge of #91555 - matthiaskrgr:rollup-pq0iaq7, r=matthiaskrgr 2021-12-05 15:33:44 +00:00
rustc_span Auto merge of #91224 - couchand:2021-11/avr-asm, r=Amanieu 2021-12-07 14:23:01 +00:00
rustc_symbol_mangling
rustc_target Auto merge of #91224 - couchand:2021-11/avr-asm, r=Amanieu 2021-12-07 14:23:01 +00:00
rustc_trait_selection Auto merge of #91555 - matthiaskrgr:rollup-pq0iaq7, r=matthiaskrgr 2021-12-05 15:33:44 +00:00
rustc_traits Reduce boilerplate around infallible folders 2021-12-02 16:14:16 +00:00
rustc_ty_utils Revert "Auto merge of #91354 - fee1-dead:const_env, r=spastorino" 2021-12-03 10:11:21 -03:00
rustc_type_ir
rustc_typeck Rollup merge of #91503 - estebank:call-fn-span, r=michaelwoerister 2021-12-07 11:05:03 +01:00