Skip to content

Commit 1bb3be5

Browse files
committed
Auto merge of #3386 - he32:netbsd-32bit-fix, r=JohnTitor
NetBSD's mod.rs: fix cpuid_t definition. ...in particular for 32-bit CPUs / ports, such as 32-bit arm, i386, and powerpc. In the C header files on NetBSD, this is defined as typedef unsigned long cpuid_t; and on ILP32 CPUs, that ends up being a 32-bit quantity. Defining this as a 64-bit type wrecks havoc on our 32-bit ports when e.g. _cpuset_isset() is used (as was introduced with rust 1.72.0), causing immediate SEGV due to NULL pointer de-reference, as observed in rust-lang/rust#116665 So, instead, define it as ::c_ulong, and let the CPU-specific type definitions take care of the sizing.
2 parents a8b74d9 + 41755d1 commit 1bb3be5

File tree

1 file changed

+1
-1
lines changed
  • src/unix/bsd/netbsdlike/netbsd

1 file changed

+1
-1
lines changed

src/unix/bsd/netbsdlike/netbsd/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ type __pthread_spin_t = __cpu_simple_lock_nv_t;
1010
pub type vm_size_t = ::uintptr_t; // FIXME: deprecated since long time
1111
pub type lwpid_t = ::c_uint;
1212
pub type shmatt_t = ::c_uint;
13-
pub type cpuid_t = u64;
13+
pub type cpuid_t = ::c_ulong;
1414
pub type cpuset_t = _cpuset;
1515
pub type pthread_spin_t = ::c_uchar;
1616
pub type timer_t = ::c_int;

0 commit comments

Comments
 (0)