On 12.11.2014 19:40, Kai Tietz wrote: > TerminateProcess is actually bad, as it doesn't call any of the atexit > handlers. You simply nuke the process off. For cygwin this behavior > is inacceptable. Why a classical abort, or a classical exit call > cause for you that issues? It seems to me more related to some other > thing you try to paper over by this. > It turns out the test program made some trouble. I rewrote it to the attached program (virtual_func_test_min_AW.cpp). I changed obstack.c and vtv_rts.cc to the C-runtime functions. For testing I used a program just containing an abort and all three tests in the attached test program. The call stack, passed parameters and behavior matched at the crucial parts (tested again on MinGW 32/64bit). > >> Regarding the question, why I reimplemented mprotect, I also haven't >> changed anything in the patch but answered the question. > > And this doesn't make it better. It is present in the static part of > libgcc. Have you tried to declare it with extern "C" (for C++ case) > and simply use it? > Cygwin provides its own version too. So there seems to me no real > need to re-implement it. > You're right. I was stuck with the idea of importing it dynamically, but changed it to extern "C" now. Regards, Patrick