Re: having multiple copies of _GLOBAL__sub_I__xxxx which are calling std::ios_base::Init::Init()@GLIBCXX_3.4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 10 Jul 2018 at 13:53, Liu Hao wrote:
>
> 在 2018年07月10日 19:28, Klaus Rudolph 写道:
> > Is it a bug, that every function emmits a exact copy for calling std::ios_base::Init::Init()@plt ? It is only needed once but emmited for each function. This wastes a lot of program space. In addition for my example, I removed the call to my functions so there is no place anymore where I need iostream operations. But the code is still present, also if the requiring functions are not linked in.
> >
>
> No. According to the C++ standard, inclusion of <iostream> shall behave
> as if an object of type `std::ios_base::Init` and with static storage
> duration is defined [1], which results in a constructor call in every
> translate unit that has `#include <iostream>`.

Right.

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44952 for further discussion.




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux