[newlib-cygwin] cygwin: wincap: handle W10 1703

Corinna Vinschen corinna@sourceware.org
Mon Apr 24 15:17:00 GMT 2017


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=e7bcf4633e569ed0d6d695a71c4fecdfdc6f4b2d

commit e7bcf4633e569ed0d6d695a71c4fecdfdc6f4b2d
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Mon Apr 24 17:14:03 2017 +0200

    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>

Diff:
---
 winsup/cygwin/wincap.cc | 28 ++++++++++++++++++++++++++--
 winsup/cygwin/wincap.h  |  2 ++
 2 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/winsup/cygwin/wincap.cc b/winsup/cygwin/wincap.cc
index c8799f3..0d20d37 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 e32674f..990a3a4 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
 };



More information about the Cygwin-cvs mailing list