<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 3, 2017 at 12:46 AM, Sebastian Huber <span dir="ltr"><<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-<wbr>brains.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On 03/05/17 07:15, Sebastian Huber wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 03/05/17 00:47, Chris Johns wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 2/5/17 6:03 pm, Sebastian Huber wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 02/05/17 09:35, Chris Coppens wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello,<br>
<br>
In our RTEMS application C++ iostream (e.g. "cout") is only working in<br>
the “Init” function?<br>
If I use “cout” in a RTEMS Task other than Init, no output is shown in<br>
the console.<br>
Any idea why this is happening?<br>
</blockquote>
The C++ library uses thread-local standard IO streams (Newlib feature)<br>
for the global IO stream objects. I am not sure how to fix this<br>
properly, but I guess a RTEMS-specific change in the libstdc++ would be<br>
necessary.<br>
<br>
</blockquote>
Does a ticket exist for this? This should be fixed for 4.12.0 so please<br>
set the milestone to 4.12.0 and blocker.<br>
</blockquote>
<br>
I don't know if a ticket exists. This issue exits in all RTEMS versions with C++ support. Since the initialization thread is restarted after the C++ global constructor calls this issue is more obvious now.<br>
<br>
Before you make this a release blocker, then please find someone who can fix this.<br>
<br>
</blockquote>
<br></span>
Just for reference. The std::cout etc. is initialized here<br>
<br>
<a href="https://gcc.gnu.org/viewcvs/gcc/trunk/libstdc%2B%2B-v3/src/c%2B%2B98/ios_init.cc?view=markup#l85" rel="noreferrer" target="_blank">https://gcc.gnu.org/viewcvs/gc<wbr>c/trunk/libstdc%2B%2B-v3/src/c<wbr>%2B%2B98/ios_init.cc?view=mark<wbr>up#l85</a><br>
<br>
via a placement new. The "stdout" etc. is thread-local in Newlib. Using this for a global object like std::cout is quite broken.</blockquote><div><br></div><div>Is there a test program to demonstrate that this is broken?</div><div><br></div><div>Since Cygwin also uses newlib, I have trouble believing this would</div><div>not also be broken there.</div><div><br></div><div>Going back to the original post. How many file descriptors are configured?</div><div>I am suspicious that the way C++ does it might require more file descriptors.</div><div><br></div><div>--joel</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="m_-1901038419060338520HOEnZb"><div class="m_-1901038419060338520h5"><br>
<br>
-- <br>
Sebastian Huber, embedded brains GmbH<br>
<br>
Address : Dornierstr. 4, D-82178 Puchheim, Germany<br>
Phone   : <a href="tel:%2B49%2089%20189%2047%2041-16" value="+4989189474116" target="_blank">+49 89 189 47 41-16</a><br>
Fax     : <a href="tel:%2B49%2089%20189%2047%2041-09" value="+4989189474109" target="_blank">+49 89 189 47 41-09</a><br>
E-Mail  : <a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brain<wbr>s.de</a><br>
PGP     : Public key available on request.<br>
<br>
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br>
<br>
______________________________<wbr>_________________<br>
users mailing list<br>
<a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman<wbr>/listinfo/users</a></div></div></blockquote></div><br></div></div>