summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2017-04-24 17:14:03 +0200
committerCorinna Vinschen <corinna@vinschen.de>2017-04-24 17:14:03 +0200
commite7bcf4633e569ed0d6d695a71c4fecdfdc6f4b2d (patch)
tree16bcc59a1f36673cd34b9890ff964e716b3ecce0
parent63f19278b998b8145269662cc5a256020f6530bd (diff)
downloadcygnal-e7bcf4633e569ed0d6d695a71c4fecdfdc6f4b2d.tar.gz
cygnal-e7bcf4633e569ed0d6d695a71c4fecdfdc6f4b2d.tar.bz2
cygnal-e7bcf4633e569ed0d6d695a71c4fecdfdc6f4b2d.zip
cygwin: wincap: handle W10 1703
Add has_unprivileged_createsymlink flag and set to true on 1703 and later. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r--winsup/cygwin/wincap.cc28
-rw-r--r--winsup/cygwin/wincap.h2
2 files changed, 28 insertions, 2 deletions
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
};