Libgcc symbols

Gabriel Dos Reis Gabriel.Dos-Reis@cmla.ens-cachan.fr
Mon Apr 16 10:43:00 GMT 2001


"Zack Weinberg" <zackw@Stanford.EDU> writes:

| On Mon, Apr 16, 2001 at 12:42:14PM -0400, Phil Edwards wrote:
| > > Why we still have libio in-tree at all is another question.  (I have
| > > never understood why iostreams aren't a layer of paint on top of
| > > the public stdio interface.)
| > 
| > Right now, it is.  Which is a pity, because it's another layer of buffering
| > and function calls.  Efficiency drops considerably on some platforms when
| > iostreams has to funnel everything through stdio.
| 
| Then it's not thin enough to be a layer of paint, is it?
| 
| What I have in mind is a thing where
| 
|    cout << "hello world\n";
| 
| gets inline-expanded at compile time down to
| 
|    fputs("hello world\n", stdout);
| 
| and even when it can't be that simple, iostreams do no buffering at
| all themselves; they leave all that to stdio.

What they actually do is controlled the underlying basic_streambuf
(given by rdbuf()).
Certainly, we need to teach the front-end to be aware of the C++
library.  But, that is a different story and hopefully one can expect
gcc-3.x (x > 0) to address those optimisation issues.  C++ makes it
possible not to sync with C I/O through sync_with_stdio() -- which can
prove to be a performance gain.

-- Gaby



More information about the Gcc mailing list