diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 2d01a0c..0e43fa4 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -13,8 +13,16 @@ jobs: build: strategy: matrix: - features: ["", "--no-default-features"] - runs-on: ubuntu-latest + include: + - runner: ubuntu-latest + features: "" + - runner: ubuntu-latest + features: "--no-default-features" + - runner: ubuntu-24.04-arm + features: "" + - runner: ubuntu-24.04-arm + features: "--no-default-features" + runs-on: ${{ matrix.runner }} steps: - uses: actions/checkout@v3 - name: Install deps diff --git a/elfcore/src/arch/aarch64.rs b/elfcore/src/arch/aarch64.rs index fea8e41..505d5c7 100644 --- a/elfcore/src/arch/aarch64.rs +++ b/elfcore/src/arch/aarch64.rs @@ -3,14 +3,12 @@ //! Aarch64 specifics for ELF core dump files. -#![cfg(target_arch = "aarch64")] - use super::ArchComponentState; use crate::CoreError; use zerocopy::AsBytes; #[cfg(target_os = "linux")] -use crate::ptrace::ptrace_get_reg_set; +use crate::linux::ptrace::ptrace_get_reg_set; #[cfg(target_os = "linux")] use nix::unistd::Pid; diff --git a/elfcore/src/coredump.rs b/elfcore/src/coredump.rs index 047ebb8..868f225 100644 --- a/elfcore/src/coredump.rs +++ b/elfcore/src/coredump.rs @@ -307,7 +307,7 @@ fn round_up(value: usize, alignment: usize) -> usize { return 0; } - if value % alignment != 0 { + if !value.is_multiple_of(alignment) { (value + alignment) / alignment * alignment } else { value @@ -1125,6 +1125,9 @@ mod tests { cmd_line: "".to_string(), arch_state: Box::new(ArchState { + #[cfg(target_arch = "aarch64")] + gpr_state: vec![0; 34], + #[cfg(target_arch = "x86_64")] gpr_state: vec![0; 27], components: vec![], }), @@ -1181,6 +1184,9 @@ mod tests { cmd_line: "".to_string(), arch_state: Box::new(ArchState { + #[cfg(target_arch = "aarch64")] + gpr_state: vec![0; 34], + #[cfg(target_arch = "x86_64")] gpr_state: vec![0; 27], components: vec![], }), diff --git a/elfcore/src/lib.rs b/elfcore/src/lib.rs index 92316ab..56168b5 100644 --- a/elfcore/src/lib.rs +++ b/elfcore/src/lib.rs @@ -125,6 +125,9 @@ pub trait ReadProcessMemory { /// cmd_line: "example".to_string(), /// /// arch_state: Box::new(ArchState { +/// #[cfg(target_arch = "aarch64")] +/// gpr_state: vec![0; 34], +/// #[cfg(not(target_arch = "aarch64"))] /// gpr_state: vec![0; 27], /// components: vec![], /// }),