confdefs.h bintime undefined compile error

Joel Sherrill joel at rtems.org
Sun Jul 24 16:20:09 UTC 2022


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.

--joel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20220724/07ee9378/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rtems_config.c
Type: application/octet-stream
Size: 481 bytes
Desc: not available
URL: <http://lists.rtems.org/pipermail/devel/attachments/20220724/07ee9378/attachment.obj>


More information about the devel mailing list