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
> > >
> >

Reply via email to