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]

Reply via email to