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`
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:
Error Log: