[PATCH] config: Provide file descriptors only if necessary
Sebastian Huber
sebastian.huber at embedded-brains.de
Fri Aug 21 08:44:35 UTC 2020
Only provide the file descriptor array if
CONFIGURE_MAXIMUM_FILE_DESCRIPTORS > 0. If someone configured
CONFIGURE_MAXIMUM_FILE_DESCRIPTORS == 0 and the appplication uses
something which requires a file descriptor, then a linker error will
show up. An alternative would be to add a zero-length array
rtems_libio_iops[ 0 ] to librtemscpu.a which would be used in this
case.
Conditionally include some header files.
---
cpukit/include/rtems/confdefs/libio.h | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/cpukit/include/rtems/confdefs/libio.h b/cpukit/include/rtems/confdefs/libio.h
index e986262e3e..8f43c490b1 100644
--- a/cpukit/include/rtems/confdefs/libio.h
+++ b/cpukit/include/rtems/confdefs/libio.h
@@ -43,7 +43,6 @@
#ifdef CONFIGURE_INIT
#include <rtems/confdefs/bsp.h>
-#include <rtems/libio.h>
#include <rtems/sysinit.h>
#ifdef CONFIGURE_FILESYSTEM_ALL
@@ -86,6 +85,15 @@
#define CONFIGURE_IMFS_DISABLE_UTIME
#endif
+#ifndef CONFIGURE_MAXIMUM_FILE_DESCRIPTORS
+ #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 3
+#endif
+
+#if !defined(CONFIGURE_APPLICATION_DISABLE_FILESYSTEM) || \
+ CONFIGURE_MAXIMUM_FILE_DESCRIPTORS > 0
+ #include <rtems/libio.h>
+#endif
+
#ifdef CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
#ifdef CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
#error "CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM"
@@ -122,10 +130,10 @@
#ifdef CONFIGURE_FILESYSTEM_TFTPFS
#error "CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_TFTPFS"
#endif
+#else
+ #include <rtems/imfs.h>
#endif
-#include <rtems/imfs.h>
-
#ifdef CONFIGURE_FILESYSTEM_DOSFS
#include <rtems/dosfs.h>
#endif
@@ -316,13 +324,11 @@ RTEMS_SYSINIT_ITEM(
#endif /* !CONFIGURE_APPLICATION_DISABLE_FILESYSTEM */
-#ifndef CONFIGURE_MAXIMUM_FILE_DESCRIPTORS
- #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 3
-#endif
-
-rtems_libio_t rtems_libio_iops[ CONFIGURE_MAXIMUM_FILE_DESCRIPTORS ];
+#if CONFIGURE_MAXIMUM_FILE_DESCRIPTORS > 0
+ rtems_libio_t rtems_libio_iops[ CONFIGURE_MAXIMUM_FILE_DESCRIPTORS ];
-const uint32_t rtems_libio_number_iops = RTEMS_ARRAY_SIZE( rtems_libio_iops );
+ const uint32_t rtems_libio_number_iops = RTEMS_ARRAY_SIZE( rtems_libio_iops );
+#endif
#ifdef __cplusplus
}
--
2.26.2
More information about the devel
mailing list