I'm sure this is the result of my having done something stupid
with the setup application, but suddenly static destructors no
longer run.  That is, for the following program:

    #include <stdio.h>
    struct S {
      S();
      ~S();
    } s;
    S::S() {
      printf("In ctor.\n");
    }
    S::~S() {
      printf("In dtor.\n");
    }
    int main() {
      printf("In main.\n");
    }

the output is

    In ctor.
    In main.

The output "In dtor." is missing.

I have tried to update all the gcc compilers and mingw libraries to
the latest versions that the setup application allows me, on the
assumption that somehow I managed to get an old version of a
library during my last update, but nothing I have done restores the
static destructor output.  From cygcheck, here are the versions of
things I think might matter:

    gcc                  3.4.1-1
    gcc-ada              3.4.1-1
    gcc-core             3.4.1-1
    gcc-g++              3.4.1-1
    gcc-g77              3.4.1-1
    gcc-java             3.4.1-1
    gcc-mingw            20040810-1
    gcc-mingw-ada        20040822-1
    gcc-mingw-core       20040822-1
    gcc-mingw-g++        20040822-1
    gcc-mingw-g77        20040822-1
    gcc-mingw-java       20040822-1
    mingw-runtime        3.7-1

Anyone have any idea how I managed to do this to myself and,
more importantly, how I can undo it?

Thanks!

-- 
William M. (Mike) Miller
[EMAIL PROTECTED]

--
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/

Reply via email to