summaryrefslogtreecommitdiffstats
path: root/cpukit/include
diff options
context:
space:
mode:
authorJoel Sherrill <joel@rtems.org>2021-05-21 16:30:20 -0500
committerJoel Sherrill <joel@rtems.org>2021-05-25 08:33:04 -0500
commit76d5722b4a1adba2aa52043a83c7fa0fcff2a0d4 (patch)
tree14b5b8d012ff64d2ca825689a9414cb026a21a3d /cpukit/include
parentpowerpc/.../sbrk.c: Do not reference errno. (diff)
downloadrtems-76d5722b4a1adba2aa52043a83c7fa0fcff2a0d4.tar.bz2
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.
Diffstat (limited to 'cpukit/include')
-rw-r--r--cpukit/include/rtems/confdefs/iodrivers.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/cpukit/include/rtems/confdefs/iodrivers.h b/cpukit/include/rtems/confdefs/iodrivers.h
index e12640624d..a7de77a8c3 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 */