confdefs.h bintime undefined compile error

Joel Sherrill joel at
Sun Jul 24 23:04:44 UTC 2022

On Sun, Jul 24, 2022 at 11:20 AM Joel Sherrill <joel at> wrote:

> Hi
> Attached is a pretty simple RTEMS application that does not compile when
> -std=c99 is included on the compile line.
> arm-rtems6-gcc -B
> /home/joel/rtems-work/tools/6/bsp-install/arm-rtems6/xilinx_zynq_a9_qemu/lib/
> -qrtems -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mtune=cortex-a9
> -O0 -g -ffunction-sections -fdata-sections -g -Wall -std=c99 -pthread
> -Wno-nonnull-compare   -c /tmp/rtems_config.c  -o /tmp/rtems_config.o
> In file included from
> /home/joel/rtems-work/tools/6/bsp-install/arm-rtems6/xilinx_zynq_a9_qemu/lib/include/rtems/confdefs/libio.h:135,
>                  from
> /home/joel/rtems-work/tools/6/bsp-install/arm-rtems6/xilinx_zynq_a9_qemu/lib/include/rtems/confdefs.h:70,
>                  from /tmp/rtems_config.c:21:
> /home/joel/rtems-work/tools/6/bsp-install/arm-rtems6/xilinx_zynq_a9_qemu/lib/include/rtems/imfs.h:
> In function '_IMFS_get_time':
> /home/joel/rtems-work/tools/6/bsp-install/arm-rtems6/xilinx_zynq_a9_qemu/lib/include/rtems/imfs.h:377:18:
> error: storage size of 'now' isn't known
>   377 |   struct bintime now;
> Dropping -std=c99 resolves this. I'm guessing turning on some BSD
> visibility flag would do the same but it shouldn't be needed. Any ideas for
> a real fix?
> Do we have any test cases which ensure the headers compile as C99? All
> published POSIX versions assume C99.

It isn't just c99. C11 and C17 also cause this. It is turning on the
"standard" which turns off many extensions. Internally, this header needs
to enable BSD extensions.

> --joel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the devel mailing list