From 5cb998e66c8a342dad9ea03fcb5126f12ec50156 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Wed, 13 Feb 2008 09:42:22 +0000 Subject: * cygtls.cc (_cygtls::init_exception_handler): Revert patch from 2005-12-02. * exceptions.cc (stack_info::walk): Add workaround for NT 5.2 64 bit OSes. * wincap.h (wincaps::has_restricted_stack_args): New element. * wincap.cc: Implement above element throughout. (wincapc::init): Reset has_restricted_stack_args if not running under WOW64. --- winsup/cygwin/wincap.cc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'winsup/cygwin/wincap.cc') diff --git a/winsup/cygwin/wincap.cc b/winsup/cygwin/wincap.cc index e8b44c0e6..0a808e563 100644 --- a/winsup/cygwin/wincap.cc +++ b/winsup/cygwin/wincap.cc @@ -40,6 +40,7 @@ static NO_COPY wincaps wincap_unknown = { has_gaa_prefixes:false, has_gaa_on_link_prefix:false, supports_all_posix_ai_flags:false, + has_restricted_stack_args:false, }; static NO_COPY wincaps wincap_nt4 = { @@ -69,6 +70,7 @@ static NO_COPY wincaps wincap_nt4 = { has_gaa_prefixes:false, has_gaa_on_link_prefix:false, supports_all_posix_ai_flags:false, + has_restricted_stack_args:false, }; static NO_COPY wincaps wincap_nt4sp4 = { @@ -98,6 +100,7 @@ static NO_COPY wincaps wincap_nt4sp4 = { has_gaa_prefixes:false, has_gaa_on_link_prefix:false, supports_all_posix_ai_flags:false, + has_restricted_stack_args:false, }; static NO_COPY wincaps wincap_2000 = { @@ -127,6 +130,7 @@ static NO_COPY wincaps wincap_2000 = { has_gaa_prefixes:false, has_gaa_on_link_prefix:false, supports_all_posix_ai_flags:false, + has_restricted_stack_args:false, }; static NO_COPY wincaps wincap_2000sp4 = { @@ -156,6 +160,7 @@ static NO_COPY wincaps wincap_2000sp4 = { has_gaa_prefixes:false, has_gaa_on_link_prefix:false, supports_all_posix_ai_flags:false, + has_restricted_stack_args:false, }; static NO_COPY wincaps wincap_xp = { @@ -185,6 +190,7 @@ static NO_COPY wincaps wincap_xp = { has_gaa_prefixes:false, has_gaa_on_link_prefix:false, supports_all_posix_ai_flags:false, + has_restricted_stack_args:false, }; static NO_COPY wincaps wincap_xpsp1 = { @@ -214,6 +220,7 @@ static NO_COPY wincaps wincap_xpsp1 = { has_gaa_prefixes:true, has_gaa_on_link_prefix:false, supports_all_posix_ai_flags:false, + has_restricted_stack_args:false, }; static NO_COPY wincaps wincap_xpsp2 = { @@ -243,6 +250,7 @@ static NO_COPY wincaps wincap_xpsp2 = { has_gaa_prefixes:true, has_gaa_on_link_prefix:false, supports_all_posix_ai_flags:false, + has_restricted_stack_args:false, }; static NO_COPY wincaps wincap_2003 = { @@ -272,6 +280,7 @@ static NO_COPY wincaps wincap_2003 = { has_gaa_prefixes:true, has_gaa_on_link_prefix:false, supports_all_posix_ai_flags:false, + has_restricted_stack_args:true, }; static NO_COPY wincaps wincap_vista = { @@ -301,6 +310,7 @@ static NO_COPY wincaps wincap_vista = { has_gaa_prefixes:true, has_gaa_on_link_prefix:true, supports_all_posix_ai_flags:true, + has_restricted_stack_args:false, }; wincapc wincap __attribute__((section (".cygwin_dll_common"), shared)); @@ -388,7 +398,10 @@ wincapc::init () if (IsWow64Process (GetCurrentProcess (), &is_wow64_proc)) wow64 = is_wow64_proc; else - ((wincaps *)this->caps)->needs_count_in_si_lpres2 = false; + { + ((wincaps *)this->caps)->needs_count_in_si_lpres2 = false; + ((wincaps *)this->caps)->has_restricted_stack_args = false; + } __small_sprintf (osnam, "NT-%d.%d", version.dwMajorVersion, version.dwMinorVersion); -- cgit v1.2.3