Yup I like the idea too as it allows us both keeping POSIX compliance and trimming down firmware in a controllable standardized way :-)
To be honest I would even allow disabling other stuff beyond POSIX in extreme cases where this is simply not used for instance on hardware with ~4K memory. This would allow sticking to NuttX and not other solutions, this will be available optionally only and consciously by the firmware developer at the responsibility of the developer, and does not impact our default POSIX compliance :-) What exact profiles we want to support and how these will be implemented? Xiang noticed pointer to a currently supported standard (PSE52 not PSE51): """ Opengroup doesn't certify PSE51 anymore, so PSE52 is more interesting for NuttX: https://posix.opengroup.org/index.html Since the PSE52 test suite contains many test cases, which requires a very specific configuration. I would suggest that we create a dedicated defconfig(e.g. pse52) on different arch for demo and test. """ Alan provided this reference as an example to threads - this may be a pointer to implementation: """ https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/threads.h.html The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of POSIX.1-2024 defers to the ISO C standard. Implementations shall not define the macro __STDC_NO_THREADS__, except for profile implementations that define _POSIX_SUBPROFILE (see 2.1.5.1 Subprofiling Considerations) in <unistd.h>, which may define __STDC_NO_THREADS__ and, if they do so, need not provide this header nor support any of its facilities. """ Thanks :-) -- CeDeROM, SQ7MHZ, http://www.tomek.cedro.info On Fri, Nov 21, 2025 at 1:33 PM Nathan Hartman <[email protected]> wrote: > > Hi Tomek & Alin, > > That pretty much sums up my thoughts as well. > > Cheers, > Nathan > > On Fri, Nov 21, 2025 at 1:23 AM Alin Jerpelea <[email protected]> wrote: > > > Hi Tomek, > > > > I think that having different profiles is a good idea. > > > > Users can balance between size and features while still being POSIX > > compliant > > > > This change does not conflict with our inviolables and provides flexibility > > > > Best regards > > Alin > > > > On Fri, 21 Nov 2025, 02:00 Tomek CEDRO, <[email protected]> wrote: > > > > > Hello world :-) > > > > > > Coming from a mailing thread [1] lets discuss Alan's idea to create > > > POSIX Profiles in NuttX, something similar to Zephyr's solution [2], > > > that will assure POSIX Compliance but also allow trimming firmware > > > size for hardware / memory limited small and tiny MCUs. > > > > > > Alan's idea is to introduce a dedicated POSIX PE51 profile. POSIX > > > PSE51 is a specific, minimal profile or subset of the full POSIX - > > > Portable Operating System Interface standard, formally defined in IEEE > > > 1003.13-2003. > > > > > > Thanks :-) > > > Tomek > > > > > > [1] https://www.mail-archive.com/[email protected]/msg13936.html > > > [2] > > > > > https://github.com/zephyrproject-rtos/zephyr/blob/main/lib/posix/Kconfig.profile > > > > > > -- > > > CeDeROM, SQ7MHZ, http://www.tomek.cedro.info > > > > >
