[rtems commit] sysinit: Do not open console when just referencing reentrancy structure.

Joel Sherrill joel at rtems.org
Tue May 25 13:33:45 UTC 2021


Module:    rtems
Branch:    master
Commit:    76d5722b4a1adba2aa52043a83c7fa0fcff2a0d4
Changeset: http://git.rtems.org/rtems/commit/?id=76d5722b4a1adba2aa52043a83c7fa0fcff2a0d4

Author:    Joel Sherrill <joel at rtems.org>
Date:      Fri May 21 16:30:20 2021 -0500

sysinit: Do not open console when just referencing reentrancy structure.

This change eliminates a system initialization dependentcy which resulted
in an application without a file system or console referencing errno being
forced to include the code to open(/dev/console), close(), atexit(),
and the unmount infrastructure.

Closes #4439.

---

 cpukit/include/rtems/confdefs/iodrivers.h | 21 +++++++++++++++++++++
 cpukit/libcsupport/src/libio_init.c       |  6 ------
 2 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/cpukit/include/rtems/confdefs/iodrivers.h b/cpukit/include/rtems/confdefs/iodrivers.h
index e126406..a7de77a 100644
--- a/cpukit/include/rtems/confdefs/iodrivers.h
+++ b/cpukit/include/rtems/confdefs/iodrivers.h
@@ -189,6 +189,27 @@ RTEMS_SYSINIT_ITEM(
   || CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
   || CONFIGURE_MAXIMUM_DRIVERS */
 
+
+/*
+ * If any flavor of console driver is configured, then configure the post
+ * driver hook which opens /dev/console as stdin, stdout, and stderr.
+ *
+ * NOTE: This also results in an atexit() handler being registered to close
+ *       /dev/console.
+ */
+#if defined(CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER) || \
+    defined(CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER) || \
+    defined(CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER)
+
+  #include <rtems/libio.h>
+
+  RTEMS_SYSINIT_ITEM(
+    rtems_libio_post_driver,
+    RTEMS_SYSINIT_STD_FILE_DESCRIPTORS,
+    RTEMS_SYSINIT_ORDER_MIDDLE
+  );
+#endif
+
 #endif /* CONFIGURE_INIT */
 
 #endif /* _RTEMS_CONFDEFS_IODRIVERS_H */
diff --git a/cpukit/libcsupport/src/libio_init.c b/cpukit/libcsupport/src/libio_init.c
index d5814ca..2bfc766 100644
--- a/cpukit/libcsupport/src/libio_init.c
+++ b/cpukit/libcsupport/src/libio_init.c
@@ -65,9 +65,3 @@ RTEMS_SYSINIT_ITEM(
   RTEMS_SYSINIT_LIBIO,
   RTEMS_SYSINIT_ORDER_MIDDLE
 );
-
-RTEMS_SYSINIT_ITEM(
-  rtems_libio_post_driver,
-  RTEMS_SYSINIT_STD_FILE_DESCRIPTORS,
-  RTEMS_SYSINIT_ORDER_MIDDLE
-);



More information about the vc mailing list