From: cgf AT cygnus DOT com (Christopher Faylor) Subject: Re: global constructor using iostreams fail 1 Sep 1998 06:49:54 -0700 Message-ID: <19980901093344.B16818.cygnus.cygwin32.developers@cygnus.com> References: <9809010519 DOT AA04800 AT modi DOT xraylith DOT wisc DOT edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii To: Mumit Khan , cygwin32-developers AT cygnus DOT com Is this using a coolview version of a b19 version? This should be handled when global constructors are run, right? Would this be for the global constructors of the .dll or the user code? On Tue, Sep 01, 1998 at 12:19:16AM -0500, Mumit Khan wrote: >Does anybody have an idea why the streambuf vtable is not being >initialized correctly in cygwin32 apps? Basically, the following >fails: > > #include > > struct Foo { > Foo () { cout << " creating foo." << endl; > ~Foo () { cout << " deleting foo." << endl; > }; > > Foo foo; > int main () { > return 0; > } > >Looks like the io jump tables aren't being initialized before main, and >the code in cout ends up trying to dereference a null pointer (to a >function _IO_xsputn or some such). > >I don't understand cygwin startup enough to understand what's going on. >The complexity of libio doesn't help matters much either. > >This works just fine under other x86-win32 targets. -- cgf AT cygnus DOT com "Everything has a boolean value, if you stand http://www.cygnus.com/ far enough away from it." -- Galena Alyson Canada