From 02520b194e53d45a3e055b4e842c024005f96037 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Thu, 9 Jan 2025 12:23:23 -0700 Subject: [PATCH] Fix compilation with trace feature --- src/header/dl-tls/mod.rs | 2 +- src/ld_so/dso.rs | 3 +-- src/macros.rs | 12 ++++-------- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/header/dl-tls/mod.rs b/src/header/dl-tls/mod.rs index de591772be..5cc9611360 100644 --- a/src/header/dl-tls/mod.rs +++ b/src/header/dl-tls/mod.rs @@ -26,7 +26,7 @@ pub unsafe extern "C" fn __tls_get_addr(ti: *mut dl_tls_index) -> *mut c_void { ti.ti_module, ti.ti_offset, masters.len(), - tcb.dtv_mut().unwrap().len() + tcb.dtv_mut().len() ); if tcb.dtv_mut().len() < masters.len() { diff --git a/src/ld_so/dso.rs b/src/ld_so/dso.rs index 95b330170d..bd1630d01a 100644 --- a/src/ld_so/dso.rs +++ b/src/ld_so/dso.rs @@ -420,7 +420,6 @@ impl DSO { let mut dynamic = None; for ph in elf.elf_program_headers() { let voff = ph.p_vaddr(endian) % ph.p_align(endian); - // let vaddr = (ph.p_vaddr - voff) as usize; let vsize = ((ph.p_memsz(endian) + voff) as usize) .next_multiple_of(ph.p_align(endian) as usize); @@ -456,7 +455,7 @@ impl DSO { }; trace!( " copy {:#x}, {:#x}: {:#x}, {:#x}", - vaddr, + ph.p_vaddr(endian) - voff, vsize, voff, obj_data.len() diff --git a/src/macros.rs b/src/macros.rs index c634f625d6..0e67083bd3 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -106,18 +106,14 @@ macro_rules! trace_expr { trace!("{}", format_args!($($arg)*)); - #[allow(unused_unsafe)] - let trace_old_errno = unsafe { platform::errno }; - #[allow(unused_unsafe)] - unsafe { platform::errno = 0; } + let trace_old_errno = platform::ERRNO.get(); + platform::ERRNO.set(0); let ret = $expr; - #[allow(unused_unsafe)] - let trace_errno = unsafe { platform::errno } as isize; + let trace_errno = platform::ERRNO.get() as isize; if trace_errno == 0 { - #[allow(unused_unsafe)] - unsafe { platform::errno = trace_old_errno; } + platform::ERRNO.set(trace_old_errno); } let trace_strerror = if trace_errno >= 0 && trace_errno < STR_ERROR.len() as isize {