[newlib-cygwin/main] Cygwin: wincap.h: clarify NO_COPY_RO usage

Corinna Vinschen corinna@sourceware.org
Thu Jan 12 09:52:57 GMT 2023


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

commit e5880bef39fd0593bfa51a01b12485f87de4251a
Author:     Corinna Vinschen <corinna@vinschen.de>
AuthorDate: Thu Jan 12 10:51:39 2023 +0100
Commit:     Corinna Vinschen <corinna@vinschen.de>
CommitDate: Thu Jan 12 10:51:39 2023 +0100

    Cygwin: wincap.h: clarify NO_COPY_RO usage
    
    ...and drop one unnecessary usage of NO_COPY_RO.
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/forkable.cc             | 2 +-
 winsup/cygwin/local_includes/winsup.h | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/winsup/cygwin/forkable.cc b/winsup/cygwin/forkable.cc
index 350a95c3e416..fbc30ae3028f 100644
--- a/winsup/cygwin/forkable.cc
+++ b/winsup/cygwin/forkable.cc
@@ -313,7 +313,7 @@ struct namepart {
   bool create_dir;
 };
 /* mutex name is formed along dir names */
-static namepart NO_COPY_RO const
+static namepart const
 forkable_nameparts[] = {
  /* text             textfunc  mutex_from_dir  create */
   { L"<cygroot>",    rootname,          false, false, },
diff --git a/winsup/cygwin/local_includes/winsup.h b/winsup/cygwin/local_includes/winsup.h
index c54440fa808d..c9788de8f012 100644
--- a/winsup/cygwin/local_includes/winsup.h
+++ b/winsup/cygwin/local_includes/winsup.h
@@ -10,6 +10,12 @@ details. */
 
 #define __INSIDE_CYGWIN__
 
+/* Use "static NO_COPY_RO" instead of "static const", if the datastructure
+   should be R/O, but without the "const" qualifier.  Typically this is only
+   required if the static datastructure is "const" in reality, but the Windows
+   function is defined with a R/W type as argument.  Unfortunately this is
+   often the case.  However, make sure to try "const" first, and use
+   "NO_COPY_RO" as seldom as possible.  */
 #define NO_COPY_RO __attribute__((nocommon)) __attribute__((section(".rdata_cygwin_nocopy")))
 #define NO_COPY __attribute__((nocommon)) __attribute__((section(".data_cygwin_nocopy")))
 #define NO_COPY_INIT __attribute__((section(".data_cygwin_nocopy")))


More information about the Cygwin-cvs mailing list