POSIX Compliance
Original author: aadit0402
POSIX Compliance
[[Contents, inline)](../wikis/PageOutline(1-5,)]
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
.
Closed Tasks
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 leastpthread_condvar_timedwait
- This
- List IO
- Are all methods in
signal.h
possible provided?
Newlib also has some known issues:
-
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 FACE Consortium has defined four POSIX profiles. RTEMS can support most of the methods in the largest profile (General Purpose).