[RTEMS Project] #2966: POSIX Compliance
RTEMS trac
trac at rtems.org
Fri Feb 28 16:37:49 UTC 2020
#2966: POSIX Compliance
----------------------------+----------------------------
Reporter: aditya | Owner: Joel Sherrill
Type: project | Status: assigned
Priority: normal | Milestone: Indefinite
Component: unspecified | Version: 5
Severity: normal | Resolution:
Keywords: SoC,API,kernel | Blocked By:
Blocking: |
----------------------------+----------------------------
Description changed by Joel Sherrill:
Old description:
> = POSIX Compliance =
>
> [[PageOutline(1-5, Contents, inline)]]
>
> == Mentors ==
>
> Joel Sherrill
>
> == Students ==
>
> Past, Present, and Potential Students
>
> == Status ==
>
> See Project Tasks.
>
> == Introduction ==
>
> Increase the POSIX functions supported by RTEMS and Newlib.
>
> == Goal ==
>
> Improve POSIX compliance of RTEMS and Newlib.
>
> == Project Tasks ==
>
> === Pending Tasks ===
>
> * See [#TasksWithoutTickets Tasks Without Tickets].
>
> === Active Tasks ===
>
> The following are the open tickets that are sub-tasks of this project. If
> you work on a part of this project please make a ticket and add the tag
> `POSIX-Compliance`.
>
> [[TicketQuery(status=accepted&status=assigned&status=new&status=reopened&keywords
> =~POSIX-Compliance)]]
>
> === Closed Tasks ===
>
> [[TicketQuery(status=closed&keywords=~POSIX-Compliance)]]
>
> == Requirements ==
>
> RTEMS POSIX Compliance is achieved via a combination of methods and .h
> files in RTEMS and the newlib C Library. Newlib also provides the math
> library.
>
> Disclaimer: The order in which methods/issues are presented here should
> not be taken as the priority with which they should be addressed. It is
> also quite likely this list is incomplete. A more complete view of the
> situation is in the following spreadsheet:
>
> * https://goo.gl/AXrnxO
>
> which was created against Issue 3 of the Single Unix Specification and an
> old version of RTEMS. It needs to be updated to Issue 4/POSIX 2013 and a
> new version of RTEMS.
>
> Before planning to implement anything on this list, please review rtems,
> newlib, rtems-libbsd, and the .h files newlib installs. These four are
> the sources for RTEMS POSIX support. Each is a moving target. Request
> updates to the spreadsheet when you find places that need updating.
>
> == Tasks Without Tickets ==
>
> RTEMS itself is missing a few methods and may have issues with others.
> These methods may have outstanding POSIX compliance issues:
>
> * Improved support at the API level for `CLOCK_MONOTONIC` (may have
> ticket)
> * This `impacts timer_create()` and at least
> `pthread_condvar_timedwait`
> * List IO
> * Are all methods in `signal.h` possible provided?
>
> Newlib also has some known issues:
>
> * `math.h` missing some methods
> * long double complex methods. These could come from FreeBSD but we
> need to be careful since there may be architecture specific
> implementations. https://wiki.freebsd.org/Numerics
>
> * `sys/statvfs.h` is missing
> * Implementation would likely be in RTEMS
>
> * some random number related calls are missing
>
> * `fstatvfs` is missing at least a prototype in the right place
>
> Others will be impossible to implement without multiple processes, and so
> we'll have to determine which methods make sense to support and in what
> manner.
>
> == Testing ==
>
> * Functional unit testing as needed
> * Additions to psxhdrs test to ensure methods can be invoked per Open
> Group specification
> * FACE Consortium Conformance Test Suite. The
> [http://www.opengroup.org/face FACE Consortium] has defined four POSIX
> profiles. RTEMS can support most of the methods in the largest profile
> (General Purpose).
>
> == References ==
> * [http://pubs.opengroup.org/onlinepubs/9699919799/ Single UNIX
> Specification]
> * http://www.opengroup.org/testing/downloads.html
> * [http://www.opengroup.org/face FACE Consortium]
New description:
= POSIX Compliance =
[[PageOutline(1-5, Contents, inline)]]
== Mentors ==
Joel Sherrill
== Students ==
Past, Present, and Potential Students
== Status ==
See Project Tasks.
== Introduction ==
Increase the POSIX functions supported by RTEMS and Newlib.
== Goal ==
Improve POSIX compliance of RTEMS and Newlib.
== Project Tasks ==
=== Pending Tasks ===
* See [#TasksWithoutTickets Tasks Without Tickets].
=== Active Tasks ===
The following are the open tickets that are sub-tasks of this project. If
you work on a part of this project please make a ticket and add the tag
`POSIX-Compliance`.
[[TicketQuery(status=accepted&status=assigned&status=new&status=reopened&keywords
=~POSIX-Compliance)]]
=== Closed Tasks ===
[[TicketQuery(status=closed&keywords=~POSIX-Compliance)]]
== Requirements ==
RTEMS POSIX Compliance is achieved via a combination of methods and .h
files in RTEMS and the newlib C Library. Newlib also provides the math
library.
Disclaimer: The order in which methods/issues are presented here should
not be taken as the priority with which they should be addressed. It is
also quite likely this list is incomplete. A more complete view of the
situation is in the RTEMS POSIX Compliance Guide available at
https://docs.rtems.org. That document was created from a spreadsheet which
is a .csv file available in the rtems-docs repository. RTEMS compliance is
tracked against multiple versions of POSIX, C Language versions, and
embedded standards which profile the POSIX standard.
Before planning to implement anything on this list, please review rtems,
newlib, rtems-libbsd, and the .h files newlib installs. These four are the
sources for RTEMS POSIX support. Each is a moving target. Request updates
to the spreadsheet when you find places that need updating.
== Tasks Without Tickets ==
RTEMS itself is missing a few methods and may have issues with others.
These methods may have outstanding POSIX compliance issues:
* Improved support at the API level for `CLOCK_MONOTONIC` (may have
ticket)
* This `impacts timer_create()` and at least `pthread_condvar_timedwait`
* List IO
* Are all methods in `signal.h` possible provided?
Newlib also has some known issues:
* `math.h` missing some methods
* long double complex methods. These could come from FreeBSD but we need
to be careful since there may be architecture specific implementations.
https://wiki.freebsd.org/Numerics
* `sys/statvfs.h` is missing
* Implementation would likely be in RTEMS
* some random number related calls are missing
* `fstatvfs` is missing at least a prototype in the right place
Others will be impossible to implement without multiple processes, and so
we'll have to determine which methods make sense to support and in what
manner.
== Testing ==
* Functional unit testing as needed
* Additions to psxhdrs test to ensure methods can be invoked per Open
Group specification
* FACE Consortium Conformance Test Suite. The
[http://www.opengroup.org/face FACE Consortium] has defined four POSIX
profiles. RTEMS can support most of the methods in the largest profile
(General Purpose).
== References ==
* [http://pubs.opengroup.org/onlinepubs/9699919799/ Single UNIX
Specification]
* http://www.opengroup.org/testing/downloads.html
* [http://www.opengroup.org/face FACE Consortium]
--
--
Ticket URL: <http://devel.rtems.org/ticket/2966#comment:27>
RTEMS Project <http://www.rtems.org/>
RTEMS Project
More information about the bugs
mailing list