compile error in RTEMS header when using -std=c99?

Gedare Bloom gedare at rtems.org
Thu Sep 13 16:08:16 UTC 2018


On Thu, Sep 13, 2018 at 8:14 AM, Joel Sherrill <joel at rtems.org> wrote:
>
>
> On Thu, Sep 13, 2018, 12:39 AM Sebastian Huber
> <sebastian.huber at embedded-brains.de> wrote:
>>
>> Hello Alan,
>>
>> On 12/09/2018 20:45, Cudmore, Alan P. (GSFC-5820) wrote:
>> >
>> > Hello,
>> >
>> > We are building our RTEMS applications with -std=c99 and other
>> > compiler warning switches.
>> >
>> > On the latest RTEMS master and RTEMS 5 toolchain ( from yesterday ),
>> > when I include the -std=c99 compiler switch, the compilation fails in
>> > an RTEMS header.
>> >
>>
>> I would not use C99 for multi-threaded programs. C11 is the first C
>> standard which knows what a thread is.
>>
>> > Is it not recommended to use the “-std= “ switches when building RTEMS
>> > applications, or is this something that we should fix? We are able to
>> > use the “-std=c99” switches in 4.11. I noticed that the timestamp.h
>> > file did change between 4.11 and 5.x.
>> >
>>
>> Yes, this is a known issue. RTEMS uses now the FreeBSD-specific struct
>> bintime and sbintime for its internal timestamps. Unfortunately, this
>> implementation detail is leaked via <rtems.h>. There are several ways to
>> fix this. We could expose the FreeBSD-specific API unconditionally in
>> <sys/types.h>. We could also try to hide this implementation detail from
>> <rtems.h>.
>>
>> Firstly, if it is supposed to compile <rtems.h> with a particular -std=*
>> switch, then we should test this.
>
>
> We should test this and make it a requirement.
>
> The requirements of the FACE Technical Standard require C99, C++03, ARINF
> 653, and POSIX with a focus on four subsets which match aviation
> qualification precedents.
>
> C11 as well as newer versions of C++ (at least to 2014) are being evaluated
> for inclusion in the next major edition which is a while away. There is no
> use of these in qualified applications based on the experiences of the RTOS
> vendors who participate.
>
> Based on the usage reported by the other RTOS vendors and FACE requirements,
> I think we need to ensure that all major API headers work with C99 and C++03
> as a baseline.
>
> This may result in variants of psxhdr as well as similar Classic API tests.
>

If any of this can feed GCI tasks please let me know.

> --joel
>>
>>
>> --
>> Sebastian Huber, embedded brains GmbH
>>
>> Address : Dornierstr. 4, D-82178 Puchheim, Germany
>> Phone   : +49 89 189 47 41-16
>> Fax     : +49 89 189 47 41-09
>> E-Mail  : sebastian.huber at embedded-brains.de
>> PGP     : Public key available on request.
>>
>> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
>>
>> _______________________________________________
>> devel mailing list
>> devel at rtems.org
>> http://lists.rtems.org/mailman/listinfo/devel
>
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel



More information about the devel mailing list