diff options
| author | Martin Kröning <mkroening@posteo.net> | 2022-06-02 00:16:00 +0200 |
|---|---|---|
| committer | Martin Kröning <mkroening@posteo.net> | 2022-06-23 11:20:52 +0200 |
| commit | 21625e573036b6af90e71046d817fd7c74fa1f2f (patch) | |
| tree | 73533a5966c2751b794eabe8500bb959934e5b7a /compiler/rustc_codegen_ssa/src/back | |
| parent | f7d12b4eec92b403909e4ae743fbb77e59ce3994 (diff) | |
| download | rust-21625e573036b6af90e71046d817fd7c74fa1f2f.tar.gz rust-21625e573036b6af90e71046d817fd7c74fa1f2f.zip | |
Session object: Set OS/ABI
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
Diffstat (limited to 'compiler/rustc_codegen_ssa/src/back')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/back/metadata.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/metadata.rs b/compiler/rustc_codegen_ssa/src/back/metadata.rs index 4c330c5906a..3dd607adee5 100644 --- a/compiler/rustc_codegen_ssa/src/back/metadata.rs +++ b/compiler/rustc_codegen_ssa/src/back/metadata.rs @@ -171,7 +171,15 @@ pub(crate) fn create_object_file(sess: &Session) -> Option<write::Object<'static } _ => 0, }; - file.flags = FileFlags::Elf { e_flags }; + // adapted from LLVM's `MCELFObjectTargetWriter::getOSABI` + let os_abi = match sess.target.options.os.as_ref() { + "hermit" => elf::ELFOSABI_STANDALONE, + "freebsd" => elf::ELFOSABI_FREEBSD, + "solaris" => elf::ELFOSABI_SOLARIS, + _ => elf::ELFOSABI_NONE, + }; + let abi_version = 0; + file.flags = FileFlags::Elf { os_abi, abi_version, e_flags }; Some(file) } |
