Mail Archives: cygwin/2001/11/06/12:10:24
Christopher Faylor wrote:
>
> On Wed, Nov 07, 2001 at 12:11:06AM +1100, Robert Collins wrote:
> >On Wed, 2001-11-07 at 00:04, Pavel Tsekov wrote:
> >> Btw what is done in state.cc is a bad habbit, IMO.
> >
> >Yes. It's C style, not CPP style.
> >
> >I'll approve this if you do a patch and Changelog.
> >
> >NULL for everything is correct - source should be 0, as should
> >net_method etc. the current code has checks for 0/NULL, but not for
> >random values :].
> >
> >And trust_level should be deleted if not used.
>
> It is not a bad habit to rely on global variables being 0. If they
> aren't then something is seriously wrong with either 'ld' or the
> run-time the loader.
>
> The linux kernel developers have actually been removing explicit
> initialization to zero from most of their globals and statics. I've
> been doing the same thing inside of the DLL. It creates a smaller
> executable since the variables end up being assigned to the BSS segment
> which is allocated at run-time and is guaranteed to be zero.
>
> I don't think that gratuitous changes like this are really called for
> unless you can *really* show that global variables are pointing to
> non-zero memory. If that is the case then we need to figure out how
> that could possibly be the case.
I didn't know this actually, so I thought it may the cause for the
problem.
In fact I now remember that I red in the "Design & Implentation of 4.4
BSD"
that when the zeroing of BSS was disabled at some stage of the
development
this caused a of lot problems with the available programs and this
feature was
thrown away. However the MSVC compiled programs do not have globals,
except
the static ones, initialized to zero and I was fooled by the fact.
I apologize for this.
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -