confdefs.h bintime undefined compile error

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


On Sun, Jul 24, 2022 at 11:20 AM Joel Sherrill <joel at rtems.org> 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: <http://lists.rtems.org/pipermail/devel/attachments/20220724/2b18f61e/attachment.htm>


More information about the devel mailing list