Skip to content

Build fails on aarch64 (Linux) #283

@80ROkWOC4j

Description

@80ROkWOC4j

Hi, I encountered a build error while compiling flecs_ecs v0.2.2 on an aarch64 Linux environment.

It seems that char defaults to unsigned char (u8) on aarch64, whereas it is signed char (i8) on x86_64. The current implementation in src/addons/module/world.rs explicitly casts a pointer to *const i8, which causes a type mismatch error against the generated bindings that expect *const u8 on this platform.

Environment:

  • Architecture: aarch64 (Linux)
  • Rust Version: 1.92.0
  • Crate Version: flecs_ecs 0.2.2

Error Log:

error[E0308]: mismatched types
   --> src/addons/module/world.rs:42:56
    |
 42 |             unsafe { sys::ecs_lookup_symbol(raw_world, symbol.as_ptr() as *const i8, true, false) };
    |                      ----------------------            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `*const u8`, found `*const i8`
    |                      |
    |                      arguments to this function are incorrect
    |
    = note: expected raw pointer `*const u8`
               found raw pointer `*const i8`

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