From 69d3879c3ba9572339fac5403c9637f70c220bc2 Mon Sep 17 00:00:00 2001 From: Philip Craig Date: Sat, 6 Jan 2024 15:22:48 +1000 Subject: [PATCH] Fix build with some feature combinations (#619) --- .github/workflows/rust.yml | 21 ++++++++++++--------- src/read/macho/load_command.rs | 10 +++++++--- src/read/mod.rs | 2 +- src/write/string.rs | 4 ++-- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 58bc1074..61aaab66 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -37,15 +37,18 @@ jobs: - uses: actions/checkout@v4 with: submodules: true - - run: cargo build --no-default-features --features read - - run: cargo build --no-default-features --features write - - run: cargo build --no-default-features --features read_core,write_core,coff - - run: cargo build --no-default-features --features read_core,write_core,elf - - run: cargo build --no-default-features --features read_core,write_core,macho - - run: cargo build --no-default-features --features read_core,pe - - run: cargo build --no-default-features --features read_core,wasm - - run: cargo build --no-default-features --features read_core,xcoff,unstable - - run: cargo build --no-default-features --features doc + - run: cargo test --no-default-features --features read + - run: cargo test --no-default-features --features write + - run: cargo test --no-default-features --features read_core,write_core,coff + - run: cargo test --no-default-features --features read_core,write_core,elf + - run: cargo test --no-default-features --features read_core,write_core,macho + - run: cargo test --no-default-features --features read_core,write_core,pe + - run: cargo test --no-default-features --features read_core,wasm + - run: cargo test --no-default-features --features read_core,xcoff + - run: cargo test --no-default-features --features std + - run: cargo test --no-default-features --features compression + - run: cargo test --no-default-features --features unaligned + - run: cargo test --no-default-features --features doc cross: strategy: diff --git a/src/read/macho/load_command.rs b/src/read/macho/load_command.rs index 7225fbdb..bc49530d 100644 --- a/src/read/macho/load_command.rs +++ b/src/read/macho/load_command.rs @@ -372,11 +372,15 @@ mod tests { #[test] fn cmd_size_invalid() { - let mut commands = LoadCommandIterator::new(LittleEndian, &[0; 8], 10); + #[repr(align(16))] + struct Align([u8; N]); + let mut commands = LoadCommandIterator::new(LittleEndian, &Align([0; 8]).0, 10); assert!(commands.next().is_err()); - let mut commands = LoadCommandIterator::new(LittleEndian, &[0, 0, 0, 0, 7, 0, 0, 0, 0], 10); + let mut commands = + LoadCommandIterator::new(LittleEndian, &Align([0, 0, 0, 0, 7, 0, 0, 0, 0]).0, 10); assert!(commands.next().is_err()); - let mut commands = LoadCommandIterator::new(LittleEndian, &[0, 0, 0, 0, 8, 0, 0, 0, 0], 10); + let mut commands = + LoadCommandIterator::new(LittleEndian, &Align([0, 0, 0, 0, 8, 0, 0, 0, 0]).0, 10); assert!(commands.next().is_ok()); } } diff --git a/src/read/mod.rs b/src/read/mod.rs index 10d3ef96..a84064cb 100644 --- a/src/read/mod.rs +++ b/src/read/mod.rs @@ -30,7 +30,7 @@ //! //! /// Reads a file and displays the name of each section. //! fn main() -> Result<(), Box> { -//! # #[cfg(feature = "std")] { +//! # #[cfg(all(feature = "read", feature = "std"))] { //! let data = fs::read("path/to/binary")?; //! let file = object::File::parse(&*data)?; //! for section in file.sections() { diff --git a/src/write/string.rs b/src/write/string.rs index b23274a0..5d4e17b0 100644 --- a/src/write/string.rs +++ b/src/write/string.rs @@ -1,8 +1,8 @@ use alloc::vec::Vec; -#[cfg(feature = "std")] +#[cfg(feature = "write_std")] type IndexSet = indexmap::IndexSet; -#[cfg(not(feature = "std"))] +#[cfg(not(feature = "write_std"))] type IndexSet = indexmap::IndexSet; /// An identifier for an entry in a string table.