Hello,
To preface:
- HW: nRF9151DK
- SDK/Toolchain: nRF Connect SDK v2.9.0
- I am new to Zephyr (first project)
When using a nRF91 modem, it seems that CONFIG_POSIX_API is used by the samples included with the nRF Connect SDK. Even the Developer Academy courses use the POSIX sockets API. Upon enabling the configuration that notifies you of when experimental Kconfigs are used, I see a bunch in the build log:
After investigating, I see that CONFIG_POSIX_API enables experimental Kconfigs CONFIG_POSIX_FD_MGMT and CONFIG_POSIX_MULTI_PROCESS to name a few. See below for reference:
Note in the above Kconfig definition:
imply POSIX_FD_MGMT # open(), close(), read(), write()
imply POSIX_MULTI_PROCESS # sleep(), getpid(), etc
Question 1: If CONFIG_POSIX_API is not marked as "experimental", but enables other experimental Kconfigs, then shouldn't CONFIG_POSIX_API be experimental by inheritance?
Question 2: Why does CONFIG_POSIX_API enable POSIX_MULTI_PROCESS if the description for POSIX_MULTI_PROCESS says "Note: Currently Zephyr does not support multiple processes and therefore much of this option group is not implemented and is considered undefined behaviour."
I don't want to use anything that could result in "undefined behavior".
Question 3: Why are the POSIX Kconfigs used for modem libraries in numerous SDK revisions still experimental? They have been around since the nRF9160 from what I understand (please correct me if I am wrong). Seems like whatever Kconfigs needed for cellular communication would have matured and should no longer be experimental.
Thanks!
Derek