<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 18, 2019 at 8:49 AM Vaibhav Gupta <<a href="mailto:vaibhavgupta40@gmail.com">vaibhavgupta40@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Ticket no #2971 <a href="https://devel.rtems.org/ticket/2971" target="_blank">https://devel.rtems.org/ticket/2971</a></div><div dir="ltr"><br></div><div>The header file is present in newlib:</div><div><br></div><div><span style="font-family:monospace,monospace">$ find ./ -name \fenv.h<br>./newlib-cygwin/winsup/cygwin/include/fenv.h<br>./newlib-cygwin/newlib/libc/machine/spu/sys/fenv.h<br>./newlib-cygwin/newlib/libc/machine/spu/include/fenv.h<br>./newlib-cygwin/newlib/libc/machine/riscv/sys/fenv.h<br>./newlib-cygwin/newlib/libc/machine/riscv/include/fenv.h</span></div><div><br></div><div><span style="font-family:monospace,monospace">./newlib-cygwin/winsup/cygwin/include/fenv.h</span>   contains full imlementation</div><div>as defined on <a href="http://pubs.opengroup.org/onlinepubs/9699919799/" target="_blank">http://pubs.opengroup.org/onlinepubs/9699919799/</a></div></div></div></div></div></blockquote><div><br></div><div>This is for Cygwin -- not RTEMS. It is likely an implementation that would work</div><div>for all x86 and x86_64 targets though. It should be moved to a more shared location</div><div>in the source tree.</div><div><br></div><div>The implementations under libc/machine are specific to processor architectures.</div><div>In this case SPU (the Cell processor from the Playstation as I recall) and the RISC-V.</div><div><br></div><div>RTEMS needs implementations for ARM, PowerPC, SPARC, x86, and MIPS as a</div><div>good goal.</div><div><br></div><div>I know this is confusing but newilb and RTEMS have code that is shared across</div><div>all configurations and code that is specific to a small subset. </div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 18, 2019 at 7:04 PM Vaibhav Gupta <<a href="mailto:vaibhavgupta40@gmail.com" target="_blank">vaibhavgupta40@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr">Ticket no #3650 <a href="https://devel.rtems.org/ticket/3650" target="_blank">https://devel.rtems.org/ticket/3650</a></div><div dir="ltr"><br></div><div>The header file is present in newlib:</div><div><span style="font-family:monospace,monospace">$ find ./ -name \ipc.h<br>./newlib-cygwin/winsup/cygwin/include/sys/ipc.h<br>./newlib-cygwin/winsup/cygwin/include/cygwin/ipc.h<br>./newlib-cygwin/newlib/libc/sys/phoenix/sys/ipc.h</span><br></div><div>.<br></div><div>and <br></div><div><span style="font-family:monospace,monospace">./newlib-cygwin/winsup/cygwin/include/cygwin/ipc.h</span> contains whole implementation.</div><div>I guess, now we can enable the sys/ipc.h POSIX API Compliance Tests.</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 17, 2019 at 11:03 PM Vaibhav Gupta <<a href="mailto:vaibhavgupta40@gmail.com" target="_blank">vaibhavgupta40@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 17, 2019 at 9:43 PM Joel Sherrill <<a href="mailto:joel@rtems.org" target="_blank">joel@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Mar 16, 2019, 2:49 PM Vaibhav Gupta <<a href="mailto:vaibhavgupta40@gmail.com" target="_blank">vaibhavgupta40@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div><font size="4">Hello,</font></div><div><font size="4">As mentioned by Dr Joel that high priority is to be given to implementations missing in FACE GPP 3.0.</font></div><div><font size="4">So, I have got FACE Technical Standard 3.0 pdf downloaded. And its pretty easy to compare tickets now.</font></div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">The FACE Technical Standard is a long and sleep inducing read. :)</div><div dir="auto"><br></div><div dir="auto">We have a POSIX Compliance document which tracks RTEMS vs various POSIX profiles. Many standards have POSIX profiles. SCA is for software radios. FACE TS was designed for cockpit software. Use the compliance document for ease:</div><div dir="auto"><br></div><div dir="auto"><a href="https://docs.rtems.org/branches/master/posix-compliance/index.html" target="_blank">https://docs.rtems.org/branches/master/posix-compliance/index.html</a></div></div></blockquote><div>Thanks, I guess this document contains the list of methods that are already supported. I was comparing tickets with FACE to find which all are still in need to be addressed.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">I track compliance against every standard I can find.</div></div></blockquote><div>This is best for RTEMS <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div dir="auto"><br></div><div dir="auto">FYI I have supported the FACE Consortium for a number of years in various roles.</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div><font size="4">.</font></div><div><font size="4">And while exploring big picture I got many questions: <br></font></div><div><font size="4"><br></font></div><div><font size="4">1 - It is mentioned in the ticket #2966, <i>"RTEMS POSIX Compliance is achieved via a combination of methods and .h files in RTEMS and the newlib C Library."</i> .</font></div><div><font size="4">So, if a method or a header is present in Newlib C, it is not required to be present in RTEMS library? But that would mean Newlib is directly ported to RTEMS.</font></div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">POSIX includes the entire C Library in its definition. Newlib is our C Library so if the method makes sense to be there, we add it to Newlib. </div><div dir="auto"><br></div><div dir="auto">In general, threading and synchronisation go in RTEMS. But ask for specific methods. It isn't always obvious.</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div><br></div><div> .</div><div><i><font size="1">> I had an off-list talk with Vijay, he proved to be very helpful. I asked him same question (question 1), I would like to conclude what we discussed. <br></font></i></div><div><i><font size="1"><br></font></i></div><div><i><font size="1">> He told that "RTEMS uses its own version of Newlib C as it cannot directly mirror original Newlib as, if methods change the way it works, they can break RTEMS".</font></i></div><div><i><font size="1"><br></font></i></div><div><i><font size="1">> But then my doubt was, if that's the case, <span id="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr">why keep modified headers of original Newlib under separate Newlib C folder in RTEMS? Why not directly include them in RTEMS library? (As I found newlib-1d35a003f.tar.gz in {RTEMS-ROOT}/rsb/rtems/sources/    )<br></span></font></i></div><div><i><font size="1"><span id="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr">.</span></font></i></div><div><i><font size="1"><span id="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr">> To which he replied,  </span></font><span id="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3gr.co" class="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr">"RTEMS version of newlib is being used as a libraby of RTEMS only </span><font size="1"><span id="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr"></span></font><span id="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3gq.co" class="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr">and the posix functions are being linked to this newlib"</span></i></div><div><span id="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr">.</span></div><div><span id="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr"><font size="4">2- So, My second doubt is that our target is to contribute to Newlib C or RTEMS Library? Or we will add methods to Newlib C and link them to RTEMS?</font><br></span></div><div><span id="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr"><br></span></div><div><font size="4"><span id="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr">Thanks</span></font></div><div><span id="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-1287130243752717463gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr"><font size="4">Vaibhav Gupta</font><br></span></div></div></div>
</blockquote></div></div></div>
</blockquote></div></div>
</blockquote></div>
</blockquote></div>
</blockquote></div></div>