Pad RlctAttr for 32-bit systems

This commit is contained in:
Jeremy Soller
2023-05-11 12:06:53 -06:00
parent 64849c7d59
commit 66f1f32ac2
3 changed files with 7 additions and 3 deletions
+2 -2
View File
@@ -16,7 +16,7 @@ use core::sync::atomic::{AtomicU32 as AtomicUint, AtomicI32 as AtomicInt};
#[repr(C)]
pub union pthread_attr_t {
__relibc_internal_size: [c_uchar; 32],
__relibc_internal_align: c_long,
__relibc_internal_align: size_t,
}
#[repr(C)]
pub union pthread_rwlockattr_t {
@@ -88,7 +88,7 @@ macro_rules! assert_equal_size(
#[cfg(all(target_os = "redox", feature = "check_against_libc_crate"))]
const _: () = unsafe {
let export = $export { __relibc_internal_align: 0 };
let _: libc::$export = core::mem::transmute(export.__relibc_internal_size);
let _: libc::$export = core::mem::transmute(export.__relibc_internal_size);
let a = [0_u8; core::mem::align_of::<$export>()];
let b: [u8; core::mem::align_of::<libc::$export>()] = core::mem::transmute(a);
+3 -1
View File
@@ -22,7 +22,9 @@ impl Default for RlctAttr {
param: sched_param {
// TODO
sched_priority: 0,
}
},
#[cfg(target_pointer_width = "32")]
_pad: [0; 12],
}
}
}
+2
View File
@@ -24,6 +24,8 @@ pub(crate) struct RlctAttr {
pub stacksize: size_t,
pub stack: size_t,
pub param: sched_param,
#[cfg(target_pointer_width = "32")]
_pad: [u8; 12],
}
pub const PTHREAD_BARRIER_SERIAL_THREAD: c_int = -1;