On Tue, May 10, 2005 at 11:54:45AM -0400, William M. (Mike) Miller wrote: >On 5/10/05, Christopher Faylor <[EMAIL PROTECTED]> wrote: >> On Tue, May 10, 2005 at 09:06:36AM -0400, William M. (Mike) Miller wrote: >> >I'm still left with the problem of figuring out what changed to cause >> >this result. Until I ran the "setup" application last Friday, I was >> >seeing output from static destructors, and now I don't. It would >> >save me a lot of work to be able to restore the old behavior, but I >> >don't know what was responsible for this change. >> >> Just as a wild guess, does explicitly calling exit help at all? > >Yes, the output does appear when I call exit instead of returning >from main(). Unfortunately, that's not an option. For one thing, >this is shared code that works just fine on other systems (and >under Cygwin until I updated last Friday). For another, the >semantics of calling exit in main() are not exactly the same as >returning from main() -- local automatic objects in main() are not >destroyed by the exit() call, which is something some of this >code that is now failing relies on.
I was trying to figure out the problem, not suggest that you should change all of your code. Previous to 1.5.16, static destructors were always called via a gcc "atexit" mechanism. This meant that there were scenarios where destructors would not be called at all so I made cygwin's exit call the destructors explicitly. I just forgot to make cygwin do the right thing when returning from main rather than exiting. This will be fixed in the next snapshot. cgf -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/