diff --git a/winsup/cygwin/wincap.cc b/winsup/cygwin/wincap.cc index c8799f3ec..0d20d37db 100644 --- a/winsup/cygwin/wincap.cc +++ b/winsup/cygwin/wincap.cc @@ -31,6 +31,7 @@ wincaps wincap_vista __attribute__((section (".cygwin_dll_common"), shared)) = { has_broken_prefetchvm:false, has_new_pebteb_region:false, has_broken_whoami:true, + has_unprivileged_createsymlink:false, }, }; @@ -48,6 +49,7 @@ wincaps wincap_7 __attribute__((section (".cygwin_dll_common"), shared)) = { has_broken_prefetchvm:false, has_new_pebteb_region:false, has_broken_whoami:true, + has_unprivileged_createsymlink:false, }, }; @@ -65,6 +67,7 @@ wincaps wincap_8 __attribute__((section (".cygwin_dll_common"), shared)) = { has_broken_prefetchvm:false, has_new_pebteb_region:false, has_broken_whoami:false, + has_unprivileged_createsymlink:false, }, }; @@ -82,6 +85,7 @@ wincaps wincap_10 __attribute__((section (".cygwin_dll_common"), shared)) = { has_broken_prefetchvm:true, has_new_pebteb_region:false, has_broken_whoami:false, + has_unprivileged_createsymlink:false, }, }; @@ -99,6 +103,25 @@ wincaps wincap_10_1511 __attribute__((section (".cygwin_dll_common"), shared)) = has_broken_prefetchvm:false, has_new_pebteb_region:true, has_broken_whoami:false, + has_unprivileged_createsymlink:false, + }, +}; + +wincaps wincap_10_1703 __attribute__((section (".cygwin_dll_common"), shared)) = { + def_guard_pages:2, + { + is_server:false, + needs_count_in_si_lpres2:false, + has_gaa_largeaddress_bug:false, + has_broken_alloc_console:true, + has_console_logon_sid:true, + has_precise_system_time:true, + has_microsoft_accounts:true, + has_processor_groups:true, + has_broken_prefetchvm:false, + has_new_pebteb_region:true, + has_broken_whoami:false, + has_unprivileged_createsymlink:true, }, }; @@ -144,9 +167,10 @@ wincapc::init () default: if (version.dwBuildNumber < 10586) caps = &wincap_10; - else + else if (version.dwBuildNumber < 15063) caps = &wincap_10_1511; - break; + else + caps = &wincap_10_1703; } ((wincaps *)caps)->is_server = (version.wProductType != VER_NT_WORKSTATION); diff --git a/winsup/cygwin/wincap.h b/winsup/cygwin/wincap.h index e32674fd1..990a3a400 100644 --- a/winsup/cygwin/wincap.h +++ b/winsup/cygwin/wincap.h @@ -26,6 +26,7 @@ struct wincaps unsigned has_broken_prefetchvm : 1; unsigned has_new_pebteb_region : 1; unsigned has_broken_whoami : 1; + unsigned has_unprivileged_createsymlink : 1; }; }; @@ -67,6 +68,7 @@ public: bool IMPLEMENT (has_broken_prefetchvm) bool IMPLEMENT (has_new_pebteb_region) bool IMPLEMENT (has_broken_whoami) + bool IMPLEMENT (has_unprivileged_createsymlink) #undef IMPLEMENT };