Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add GNU Property Types #537

Merged
merged 1 commit into from
Apr 25, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "object"
version = "0.31.0"
edition = "2018"
exclude = ["/.github", "/testfiles"]
keywords = ["object", "elf", "mach-o", "pe", "coff", "xcoff"]
keywords = ["object", "elf", "mach-o", "pe", "coff"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI, it looks like you squashed your commit into one of the existing commits.

license = "Apache-2.0 OR MIT"
repository = "https://github.com/gimli-rs/object"
description = "A unified interface for reading and writing object file formats."
Expand Down
14 changes: 14 additions & 0 deletions src/elf.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1900,6 +1900,20 @@ pub const NT_GNU_GOLD_VERSION: u32 = 4;
pub const NT_GNU_PROPERTY_TYPE_0: u32 = 5;

// TODO: GNU_PROPERTY_*

/// GNU Property Type for X86
pub const GNU_PROPERTY_X86_FEATURE_1_AND: u32 = 0xc0000002;
/// GNU Property Type for IBT X86
pub const GNU_PROPERTY_X86_FEATURE_1_IBT: u32 = 1 << 0;
/// GNU Property Type for SHSTK X86
pub const GNU_PROPERTY_X86_FEATURE_1_SHSTK: u32 = 1 << 1;
/// GNU Property Type for AARCH64
pub const GNU_PROPERTY_AARCH64_FEATURE_1_AND: u32 = 0xc0000000;
/// GNU Property Type for BTI AArch64
pub const GNU_PROPERTY_AARCH64_FEATURE_1_BTI: u32 = 1 << 0;
/// GNU Property Type for PAC AArch64
pub const GNU_PROPERTY_AARCH64_FEATURE_1_PAC: u32 = 1 << 0;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/BinaryFormat/ELF.h#L1675 shows that there is a typo here. It should be 1 << 1 instead of a duplicate 1 << 0. Should I upload a fix?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for noticing that. I plan to do further work in this area and I'll fix that at the same time.


// TODO: Elf*_Move

/// Header of `SHT_HASH` section.
Expand Down