[PATCH] user: Mention file descriptor changes

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Sep 1 05:04:20 UTC 2020

 user/migration/v4_11-to-v5.rst | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/user/migration/v4_11-to-v5.rst b/user/migration/v4_11-to-v5.rst
index d42744d..5480434 100644
--- a/user/migration/v4_11-to-v5.rst
+++ b/user/migration/v4_11-to-v5.rst
@@ -69,6 +69,20 @@ The directive :c:func:`rtems_clock_get` was removed.  See section
 `Transition Advice for the Removed rtems_clock_get()` in the
 `RTEMS Classic API Guide` for alternatives.
+File Descriptors
+In RTEMS 5.1, the file descriptor list is a LIFO in contrast to previous
+versions where it was a FIFO.  This means if an application regularly opens and
+closes files (or sockets) it sees the whole range of file descriptors.  The
+reason for this change was to increase the time before file descriptors are
+reused to more likely catch a file descriptor use after close.
+This change may surface application issues.  If the configured file descriptor
+maximum (``CONFIGURE_MAXIMUM_FILE_DESCRIPTORS``) is greater than the
+``FD_SETSIZE`` defined by Newlib to 64, then calls to ``select()`` are undefined
+behaviour and may corrupt the thread stack.

More information about the devel mailing list