RustaCUDA
RustaCUDA copied to clipboard
RustaCUDA doesn't build on ARMv8
Background
Building RustaCUDA version 0.1.3 yields the following error when building on ARMv8:
error[E0308]: mismatched types
--> /home/root/.cargo/registry/src/github.com-1ecc6299db9ec823/rustacuda-0.1.3/src/device.rs:376:48
|
376 | let mut cu_uuid = CUuuid { bytes: [0i8; 16] };
| ^^^ expected `u8`, found `i8`
|
help: change the type of the numeric literal from `i8` to `u8`
|
376 | let mut cu_uuid = CUuuid { bytes: [0u8; 16] };
| ~~
In the cuda_runtime.rs bindings and in the cuda.rs bindings from cuda-sys
, these structs are raw c_char's:
cuda_runtime.rs:
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub struct CUuuid_st {
pub bytes: [::std::os::raw::c_char; 16usize],
}
cuda.rs
#[repr(C)]
#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
pub struct CUuuid_st {
pub bytes: [::std::os::raw::c_char; 16usize],
}
Note that this doesn't happen when building on x86.
Proposed fix:
Change to u8
as suggested