merge revision(s) 43748,45947,45951: [Backport #9739]

	* eval_intern.h (SAVE_ROOT_JMPBUF): workaround for the failure of
	  test/ruby/test_exception.rb on Windows.
	  wrap by __try and __exception statements on mswin to raise SIGSEGV
	  when EXCEPTION_STACK_OVERFLOW is occurred, because MSVCRT doesn't
	  handle the exception.
	  however, (1) mingw-gcc doesn't support __try and __exception
	  statements, and (2) we cannot retry SystemStackError after this
	  change yet (maybe crashed) because SEH and longjmp() are too
	  uncongenial.

	* signal.c (check_stack_overflow, CHECK_STACK_OVERFLOW): now defined on
	  Windows, too.

	* thread_win32.c (ruby_stack_overflowed_p): ditto.

	* thread_win32.c (rb_w32_stack_overflow_handler): use Structured
	  Exception Handling by Addvectoredexceptionhandler() for machine
	  stack overflow on mingw.
	  This would be equivalent to the handling using __try and __exept
	  on mswin introduced by r43748.
	  Exception Handling by AddVectoredExceptionHandler() for machine
	  This would be equivalent to the handling using __try and __except


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@46576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) 46182: [Backport #9872]

	* lib/net/ftp.rb (transfercmd): Close TCP server socket even if an
	  exception occur.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@46577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e