1
Fork 0

Use constants from object crate

Replace hard-coded values with  GNU_PROPERTY_{X86|AARCH64}_FEATURE_1_AND from the object crate.
This commit is contained in:
Charisee 2023-07-11 23:48:18 +00:00
parent 993deaa0bf
commit 650243977b

View file

@ -12,7 +12,6 @@ use object::{
use snap::write::FrameEncoder; use snap::write::FrameEncoder;
use object::elf::NT_GNU_PROPERTY_TYPE_0;
use rustc_data_structures::memmap::Mmap; use rustc_data_structures::memmap::Mmap;
use rustc_data_structures::owned_slice::{try_slice_owned, OwnedSlice}; use rustc_data_structures::owned_slice::{try_slice_owned, OwnedSlice};
use rustc_metadata::fs::METADATA_FILENAME; use rustc_metadata::fs::METADATA_FILENAME;
@ -124,7 +123,7 @@ fn add_gnu_property_note(
let mut data: Vec<u8> = Vec::new(); let mut data: Vec<u8> = Vec::new();
let n_namsz: u32 = 4; // Size of the n_name field let n_namsz: u32 = 4; // Size of the n_name field
let n_descsz: u32 = 16; // Size of the n_desc field let n_descsz: u32 = 16; // Size of the n_desc field
let n_type: u32 = NT_GNU_PROPERTY_TYPE_0; // Type of note descriptor let n_type: u32 = object::elf::NT_GNU_PROPERTY_TYPE_0; // Type of note descriptor
let header_values = [n_namsz, n_descsz, n_type]; let header_values = [n_namsz, n_descsz, n_type];
header_values.iter().for_each(|v| { header_values.iter().for_each(|v| {
data.extend_from_slice(&match endianness { data.extend_from_slice(&match endianness {
@ -134,8 +133,8 @@ fn add_gnu_property_note(
}); });
data.extend_from_slice(b"GNU\0"); // Owner of the program property note data.extend_from_slice(b"GNU\0"); // Owner of the program property note
let pr_type: u32 = match architecture { let pr_type: u32 = match architecture {
Architecture::X86_64 => 0xc0000002, Architecture::X86_64 => object::elf::GNU_PROPERTY_X86_FEATURE_1_AND,
Architecture::Aarch64 => 0xc0000000, Architecture::Aarch64 => object::elf::GNU_PROPERTY_AARCH64_FEATURE_1_AND,
_ => unreachable!(), _ => unreachable!(),
}; };
let pr_datasz: u32 = 4; //size of the pr_data field let pr_datasz: u32 = 4; //size of the pr_data field