shared_memory icon indicating copy to clipboard operation
shared_memory copied to clipboard

Unable to compile on a Apple silicon macOS

Open s4m13337 opened this issue 6 months ago • 0 comments

I got 1 warning and 4 errors when trying to compile on macOS:

warning: creating a shared reference to mutable static is discouraged
   --> src/lib.rs:284:24
    |
284 |         match unsafe { &SHARED_MEMORY_FILE_PATH } {
    |                        ^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
    |
    = note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
    = note: this will be a hard error in the 2024 edition
    = note: this shared reference has lifetime `'static`, but if the static ever gets mutated, or a mutable reference is created, then any further use of this shared reference is Undefined Behavior
    = note: `#[warn(static_mut_refs)]` on by default
help: use `addr_of!` instead to create a raw pointer
    |
284 |         match unsafe { addr_of!(SHARED_MEMORY_FILE_PATH) } {
    |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

error[E0308]: mismatched types
    --> src/lib.rs:1071:88
     |
1071 |             SharedMemoryType::Unsigned32 => get_shared_memory_flatten_data_unsigned_32(numeric_array_data as *mut u32),
     |                                             ------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `*mut u64`, found `*mut u32`
     |                                             |
     |                                             arguments to this function are incorrect
     |
     = note: expected raw pointer `*mut u64`
                found raw pointer `*mut u32`
note: function defined here
    --> src/lib.rs:641:23
     |
641  |     pub extern "C" fn get_shared_memory_flatten_data_unsigned_32(array_source: *mut c_ulong) -> c_int {
     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --------------------------

error[E0308]: mismatched types
    --> src/lib.rs:1075:84
     |
1075 |             SharedMemoryType::Signed32 => get_shared_memory_flatten_data_signed_32(numeric_array_data as *mut i32),
     |                                           ---------------------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `*mut i64`, found `*mut i32`
     |                                           |
     |                                           arguments to this function are incorrect
     |
     = note: expected raw pointer `*mut i64`
                found raw pointer `*mut i32`
note: function defined here
    --> src/lib.rs:677:23
     |
677  |     pub extern "C" fn get_shared_memory_flatten_data_signed_32(array_source: *mut c_long) -> c_int {
     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -------------------------

error[E0308]: mismatched types
    --> src/lib.rs:1255:51
     |
1255 | ...5 => set_shared_memory_data_signed_32(numeric_array_data as *const i32, numeric_array_dimensions, numeric_array_rank),
     |         -------------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `*const i64`, found `*const i32`
     |         |
     |         arguments to this function are incorrect
     |
     = note: expected raw pointer `*const i64`
                found raw pointer `*const i32`
note: function defined here
    --> src/lib.rs:805:23
     |
805  |     pub extern "C" fn set_shared_memory_data_signed_32(
     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
806  |         data: *const c_long,
     |         -------------------

error[E0308]: mismatched types
    --> src/lib.rs:1258:53
     |
1258 | ... => set_shared_memory_data_unsigned_32(numeric_array_data as *const u32, numeric_array_dimensions, numeric_array_rank),
     |        ---------------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `*const u64`, found `*const u32`
     |        |
     |        arguments to this function are incorrect
     |
     = note: expected raw pointer `*const u64`
                found raw pointer `*const u32`
note: function defined here
    --> src/lib.rs:753:23
     |
753  |     pub extern "C" fn set_shared_memory_data_unsigned_32(
     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
754  |         data: *const c_ulong,
     |         --------------------

For more information about this error, try `rustc --explain E0308`.
warning: `shared_memory` (lib) generated 1 warning
error: could not compile `shared_memory` (lib) due to 4 previous errors; 1 warning emitted

Any ideas how I can get it to compile?

s4m13337 avatar Aug 08 '24 15:08 s4m13337