diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2008-02-13 09:42:22 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2008-02-13 09:42:22 +0000 |
commit | 5cb998e66c8a342dad9ea03fcb5126f12ec50156 (patch) | |
tree | a5ae719b8e10a5ac8cb4537b0a20dc28d557ed7b /winsup/cygwin/wincap.cc | |
parent | 9cb5dea0e22c3fdde4f0c638b052a0186587cf8f (diff) | |
download | cygnal-5cb998e66c8a342dad9ea03fcb5126f12ec50156.tar.gz cygnal-5cb998e66c8a342dad9ea03fcb5126f12ec50156.tar.bz2 cygnal-5cb998e66c8a342dad9ea03fcb5126f12ec50156.zip |
* 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.
Diffstat (limited to 'winsup/cygwin/wincap.cc')
-rw-r--r-- | winsup/cygwin/wincap.cc | 15 |
1 files changed, 14 insertions, 1 deletions
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); |