Skip to content

Unable to compile on a Apple silicon macOS #4

@s4m13337

Description

@s4m13337

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions