[rtems-docs commit] user: Mention file descriptor changes

Sebastian Huber sebh at rtems.org
Wed Sep 2 05:18:04 UTC 2020

Module:    rtems-docs
Branch:    master
Commit:    bd8185a7dda9b8fc936a4f85b19d67f13d7a393c
Changeset: http://git.rtems.org/rtems-docs/commit/?id=bd8185a7dda9b8fc936a4f85b19d67f13d7a393c

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Sep  1 07:03:49 2020 +0200

user: Mention file descriptor changes


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

diff --git a/user/migration/v4_11-to-v5.rst b/user/migration/v4_11-to-v5.rst
index d42744d..bde84c2 100644
--- a/user/migration/v4_11-to-v5.rst
+++ b/user/migration/v4_11-to-v5.rst
@@ -69,6 +69,25 @@ 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 list of free file descriptors has a LIFO ordering 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.  In particular, ``FD_SET()`` may
+result in an out of bounds access.  It is possible to define a custom
+``FD_SETSIZE``.  The application must ensure that the custom ``FD_SETSIZE`` is
+defined before ``<sys/select.h>`` is included in all modules used by the
+application, for example via a global compiler command line define.  This
+applies also to all third-party libraries used by the application.

More information about the vc mailing list