<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr">On Thu, Sep 13, 2018, 12:39 AM Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Alan,<br>
<br>
On 12/09/2018 20:45, Cudmore, Alan P. (GSFC-5820) wrote:<br>
><br>
> Hello,<br>
><br>
> We are building our RTEMS applications with -std=c99 and other <br>
> compiler warning switches.<br>
><br>
> On the latest RTEMS master and RTEMS 5 toolchain ( from yesterday ), <br>
> when I include the -std=c99 compiler switch, the compilation fails in <br>
> an RTEMS header.<br>
><br>
<br>
I would not use C99 for multi-threaded programs. C11 is the first C <br>
standard which knows what a thread is.<br>
<br>
> Is it not recommended to use the “-std= “ switches when building RTEMS <br>
> applications, or is this something that we should fix? We are able to <br>
> use the “-std=c99” switches in 4.11. I noticed that the timestamp.h <br>
> file did change between 4.11 and 5.x.<br>
><br>
<br>
Yes, this is a known issue. RTEMS uses now the FreeBSD-specific struct <br>
bintime and sbintime for its internal timestamps. Unfortunately, this <br>
implementation detail is leaked via <rtems.h>. There are several ways to <br>
fix this. We could expose the FreeBSD-specific API unconditionally in <br>
<sys/types.h>. We could also try to hide this implementation detail from <br>
<rtems.h>.<br>
<br>
Firstly, if it is supposed to compile <rtems.h> with a particular -std=* <br>
switch, then we should test this.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">We should test this and make it a requirement.</div><div dir="auto"><br></div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto">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. </div><div dir="auto"><br></div><div dir="auto">This may result in variants of psxhdr as well as similar Classic API tests.</div><div dir="auto"><br></div><div dir="auto">--joel</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
-- <br>
Sebastian Huber, embedded brains GmbH<br>
<br>
Address : Dornierstr. 4, D-82178 Puchheim, Germany<br>
Phone   : +49 89 189 47 41-16<br>
Fax     : +49 89 189 47 41-09<br>
E-Mail  : <a href="mailto:sebastian.huber@embedded-brains.de" target="_blank" rel="noreferrer">sebastian.huber@embedded-brains.de</a><br>
PGP     : Public key available on request.<br>
<br>
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br>
<br>
_______________________________________________<br>
devel mailing list<br>
<a href="mailto:devel@rtems.org" target="_blank" rel="noreferrer">devel@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a></blockquote></div></div></div>