bkueng opened a new issue, #20407: URL: https://github.com/apache/nuttx/issues/20407
### Description / Steps to reproduce the issue Rust libc initializes `PTHREAD_MUTEX_INITIALIZER` to 0: https://github.com/rust-lang/libc/blob/c2744242b816317ea8b5c8e306eb829c080cb2b9/src/unix/nuttx/mod.rs#L310 But in NuttX this is generally not 0. For example, defined here: https://github.com/apache/nuttx/blob/master/include/pthread.h#L359 Going into https://github.com/apache/nuttx/blob/master/include/pthread.h#L353 Which makes use of `NXSEM_NO_MHOLDER`, defined here: https://github.com/apache/nuttx/blob/master/include/nuttx/semaphore.h#L70 Furthermore, the initialization also depends on the configuration. In Rust, `std` makes use of the constant to init mutexes, e.g. here: https://github.com/rust-lang/rust/blob/7d2cd0fbc092625ea371da704f15f80216d2220e/library/std/src/sys/pal/unix/sync/mutex.rs#L12 I'm not sure what the best solution is, I see some options: - remove the symbol definition from Rust (and update std to use `pthread_mutex_init` instead) - init the Rust definition to a matching value and either require a certain config or make sure the position of the non-zero values is independent from the config - update NuttX so the definition is always 0 (in addition to requiring a specific config) ### On which OS does this issue occur? [OS: Linux], [OS: BSD], [OS: Mac], [OS: Windows] ### What is the version of your OS? Irrelevant ### NuttX Version master ### Issue Architecture [Arch: all] ### Issue Area [Area: Posix], [Area: Applications] ### Host information _No response_ ### Verification - [x] I have verified before submitting the report. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
