about summary refs log tree commit diff
path: root/compiler/rustc_codegen_ssa/Cargo.toml
AgeCommit message (Collapse)AuthorLines
2023-11-29jobserver: check file descriptorsbelovdv-1/+1
2023-11-22Update itertools to 0.11.Nicholas Nethercote-1/+1
Because the API for `with_position` improved in 0.11 and I want to use it.
2023-11-15Add arm64e-apple-ios targetArtyom Tetyukhin-1/+1
2023-10-30Clean up `rustc_*/Cargo.toml`.Nicholas Nethercote-14/+17
- Sort dependencies and features sections. - Add `tidy` markers to the sorted sections so they stay sorted. - Remove empty `[lib`] sections. - Remove "See more keys..." comments. Excluded files: - rustc_codegen_{cranelift,gcc}, because they're external. - rustc_lexer, because it has external use. - stable_mir, because it has external use.
2023-10-09Remove cgu_reuse_tracker from Sessionbjorn3-0/+1
This removes a bit of global mutable state
2023-08-14Upgrade Object and related depsdirreke-3/+3
2023-08-03Enable tests on rustc_codegen_ssaEric Huss-3/+0
2023-07-19Don't compress dylib metadatabjorn3-1/+0
2023-05-23Support rust metadata for AIX.Esme Yi-1/+1
2023-05-20Auto merge of #111413 - workingjubilee:bump-object-0-31-1, r=MarkSimulacrumbors-2/+2
Bump object and thorin-dwp Required to fix watchOS breakage.
2023-05-10Bump object and thorin-dwpJubilee Young-2/+2
object -> 0.31.1 thorin-dwp -> 0.6.0 Required to fix watchOS breakage.
2023-05-09bump windows crate 0.46 -> 0.48 in workspaceklensy-1/+1
2023-04-27Fix Unreadable non-UTF-8 output on localized MSVCChris Denton-0/+4
Fixes #35785 by converting non UTF-8 linker output to Unicode using the OEM code page. Before: ```text = note: Non-UTF-8 output: LINK : fatal error LNK1181: cannot open input file \'m\x84rchenhaft.obj\'\r\n ``` After: ```text = note: LINK : fatal error LNK1181: cannot open input file 'märchenhaft.obj' ``` The difference is more dramatic if using a non-ascii language pack for Visual Studio.
2023-04-22drop unused deps, gate libc under unix for one crateklensy-1/+3
2023-04-19Auto merge of #106704 - ecnelises:big_archive, r=bjorn3bors-1/+1
Support AIX-style archive type Reading facility of AIX big archive has been supported by `object` since 0.30.0. Writing facility of AIX big archive has already been supported by `ar_archive_writer`, but we need to bump the version to support the new archive type enum.
2023-04-19Bump version of object and related cratesQiu Chaofan-1/+1
2023-04-18Add `rustc_fluent_macro` to decouple fluent from `rustc_macros`Nilstrieb-0/+1
Fluent, with all the icu4x it brings in, takes quite some time to compile. `fluent_messages!` is only needed in further downstream rustc crates, but is blocking more upstream crates like `rustc_index`. By splitting it out, we allow `rustc_macros` to be compiled earlier, which speeds up `x check compiler` by about 5 seconds (and even more after the needless dependency on `serde_json` is removed from `rustc_data_structures`).
2023-02-06remove unused importsklensy-1/+0
2023-01-14Auto merge of #106646 - Amanieu:ilp32-object, r=Mark-Simulacrumbors-2/+2
Fix aarch64-unknown-linux-gnu_ilp32 target This was broken because the synthetic object files produced by rustc were for 64-bit AArch64, which caused link failures when combined with 32-bit ILP32 object files. This PR updates the object crate to 0.30.1 which adds support for generating ILP32 AArch64 object files.
2023-01-09Fix aarch64-unknown-linux-gnu_ilp32 targetAmanieu d'Antras-2/+2
This was broken because the synthetic object files produced by rustc were for 64-bit AArch64, which caused link failures when combined with 32-bit ILP32 object files. This PR updates the object crate to 0.30.1 which adds support for generating ILP32 AArch64 object files.
2022-12-27UPDATE - migrate fn simd_simple_float_intrinsic error messagesJhonny Bill Mena-0/+1
2022-11-26Rewrite LLVM's archive writer in Rustbjorn3-0/+1
This allows it to be used by other codegen backends
2022-08-16Move the cast_float_to_int fallback code to GCCJosh Stone-1/+0
Now that we require at least LLVM 13, that codegen backend is always using its intrinsic `fptosi.sat` and `fptoui.sat` conversions, so it doesn't need the manual implementation. However, the GCC backend still needs it, so we can move all of that code down there.
2022-07-24Auto merge of #99251 - cuviper:hashbrown-0.12, r=Mark-Simulacrumbors-1/+1
Upgrade indexmap and thorin-dwp to use hashbrown 0.12 This removes the last dependencies on hashbrown 0.11. This also upgrades to hashbrown 0.12.3 to fix a double-free (#99372).
2022-07-17Upgrade indexmap and thorin-dwp to use hashbrown 0.12Josh Stone-1/+1
This removes the last dependencies on hashbrown 0.11.
2022-07-14Use constant eval to do strict validity checks5225225-0/+1
2022-06-27Update `smallvec` to 1.8.1.Nicholas Nethercote-1/+1
This pulls in https://github.com/servo/rust-smallvec/pull/282, which gives some small wins for rustc.
2022-06-24Rollup merge of #97633 - mkroening:object-osabi, r=petrochenkovYuki Okushi-1/+1
Session object: Set OS/ABI Closes https://github.com/rust-lang/rust/issues/97535. This depends on * https://github.com/gimli-rs/object/pull/438 This adapts LLVM's behavior of [`MCELFObjectTargetWriter::getOSABI`](https://github.com/llvm/llvm-project/blob/8c8a2679a20f621994fa904bcfc68775e7345edc/llvm/include/llvm/MC/MCELFObjectWriter.h#L72-L86).
2022-06-23Session object: Set OS/ABIMartin Kröning-1/+1
This adapts LLVM's behavior of MCELFObjectTargetWriter::getOSABI [1]. [1]: https://github.com/llvm/llvm-project/blob/8c8a2679a20f621994fa904bcfc68775e7345edc/llvm/include/llvm/MC/MCELFObjectWriter.h#L72-L86
2022-06-03Fix emscripten linker invocationbjorn3-0/+1
2022-05-10Fix e_flags for 32-bit MIPS targets in generated object fileAyrton-1/+1
In #95604 the compiler started generating a temporary symbols.o which is added to the linker invocation. This object file has an `e_flags` which may be invalid for 32-bit MIPS targets. Even though symbols.o doesn't contain code, linking with [lld fails](https://github.com/llvm/llvm-project/blob/main/lld/ELF/Arch/MipsArchTree.cpp#L79) with ``` rust-lld: error: foo-cgu.0.rcgu.o: ABI 'o32' is incompatible with target ABI 'n64' ``` because it omits the ABI bits (EF_MIPS_ABI_O32) so lld assumes it's using the N64 ABI. This breaks linking on nightly for the out-of-tree [psx target](https://github.com/ayrtonm/psx-sdk-rs/issues/9), the builtin mipsel-sony-psp target (cc @overdrivenpotato) and any other 32-bit MIPS target using lld. This PR sets the ABI in `e_flags` to O32 since that's the only ABI for 32-bit MIPS that LLVM supports. It also sets other `e_flags` bits based on the target. I had to bump the object crate version since some of these constants were [added recently](https://github.com/gimli-rs/object/pull/433). I'm not sure if this PR needs a test, but I can confirm that it fixes the linking issue on both targets I mentioned.
2022-03-04Update `itertools`pierwill-1/+1
Update to 0.10.1
2022-01-20Update `thorin-dwp` to deduplicate `object`Rémy Rakic-1/+1
2022-01-14Update itertools to deduplicate itRémy Rakic-1/+1
2022-01-07update Cargo.lock and gimli-rs/object for rustc_codegen_ssaLain Yang-1/+1
2022-01-07Make rlib metadata strip works with MIPSr6 architectureLain Yang-1/+1
Because MIPSr6 has many differences with previous MIPSr2 arch, the previous rlib metadata stripping code in `rustc_codegen_ssa` is only for MIPSr2/r3/r5 (which share the same elf e_flags). This commit fixed this problem. It makes `rustc_codegen_ssa` happy when compiling rustc for MIPSr6 target or hosts.
2022-01-06cg: use thorin instead of llvm-dwpDavid Wood-0/+2
`thorin` is a Rust implementation of a DWARF packaging utility that supports reading DWARF objects from archive files (i.e. rlibs) and therefore is better suited for integration into rustc. Signed-off-by: David Wood <david.wood@huawei.com>
2021-12-07Use object crate for .rustc metadata generationNikita Popov-0/+1
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 adjust 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.
2021-10-03Remove re-export.Camille GILLOT-0/+1
2021-09-30Move EncodedMetadata to rustc_metadata.Camille GILLOT-0/+1
2021-09-20Migrate to 2021Mark Rousskov-1/+1
2021-08-30Fix loading large rlibsMark Rousskov-1/+1
Bumps object crate to permit parsing archives with 64-bit table entries. These are primarily encountered when there's more than 4GB of archive data.
2021-08-19Update the backtrace crate in libstdAlex Crichton-1/+1
This commit updates the backtrace crate in libstd now that dependencies have been updated to use `memchr` from the standard library as well. This is mostly just making sure deps are up-to-date and have all the latest-and-greatest fixes and such. Closes rust-lang/backtrace-rs#432
2021-08-05Auto merge of #87641 - HackAttack:expand-unknown-option-message, r=wesleywiserbors-0/+1
Allow more "unknown argument" strings from linker Some toolchains emit slightly different errors, e.g. ppc-vle-gcc: error: unrecognized option '-no-pie'
2021-07-31Allow more "unknown argument" strings from linkerMichael Hackner-0/+1
Some toolchains emit slightly different errors, e.g. ppc-vle-gcc: error: unrecognized option '-no-pie'
2021-07-29rfc3052: Remove authors field from Cargo manifestsJade-1/+0
Since RFC 3052 soft deprecated the authors field anyway, hiding it from crates.io, docs.rs, and making Cargo not add it by default, and it is not generally up to date/useful information, we should remove it from crates in this repo.
2021-07-15[debuginfo] Emit associated type bindings in trait object type names.Michael Woerister-0/+1
2021-07-13Upgrade `cc` crate to 1.0.69Yuki Okushi-1/+1
2021-06-04rustc: Store metadata-in-rlibs in object filesAlex Crichton-2/+2
This commit updates how rustc compiler metadata is stored in rlibs. Previously metadata was stored as a raw file that has the same format as `--emit metadata`. After this commit, however, the metadata is encoded into a small object file which has one section which is the contents of the metadata. The motivation for this commit is to fix a common case where #83730 arises. The problem is that when rustc crates a `dylib` crate type it needs to include entire rlib files into the dylib, so it passes `--whole-archive` (or the equivalent) to the linker. The problem with this, though, is that the linker will attempt to read all files in the archive. If the metadata file were left as-is (today) then the linker would generate an error saying it can't read the file. The previous solution was to alter the rlib just before linking, creating a new archive in a temporary directory which has the metadata file removed. This problem from before this commit is now removed if the metadata file is stored in an object file that the linker can read. The only caveat we have to take care of is to ensure that the linker never actually includes the contents of the object file into the final output. We apply similar tricks as the `.llvmbc` bytecode sections to do this. This involved changing the metadata loading code a bit, namely updating some of the LLVM C APIs used to use non-deprecated ones and fiddling with the lifetimes a bit to get everything to work out. Otherwise though this isn't intended to be a functional change really, only that metadata is stored differently in archives now. This should end up fixing #83730 because by default dylibs will no longer have their rlib dependencies "altered" meaning that split-debuginfo will continue to have valid paths pointing at the original rlibs. (note that we still "alter" rlibs if LTO is enabled to remove Rust object files and we also "alter" for the #[link(cfg)] feature, but that's rarely used). Closes #83730
2021-05-24Update ccChris Denton-2/+2
Recent commits to cc have helped to address #83043 and #43468