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 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel