summaryrefslogtreecommitdiff
path: root/readline
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2019-12-23 16:28:32 +0200
committerEli Zaretskii <eliz@gnu.org>2019-12-23 16:28:32 +0200
commite76ff636537c6140bb9d0b0a39260d840f37ca7e (patch)
tree955320ffbe3bf646c0870bb3a0e05ecaf953112b /readline
parent27653fba5e541dbdb275602e8bd83ce1ccf6c292 (diff)
downloadbinutils-gdb-e76ff636537c6140bb9d0b0a39260d840f37ca7e.tar.gz
Fix compilation of Readline on mingw.org's MinGW
readline/ChangeLog 2019-12-23 Eli Zaretskii <eliz@gnu.org> * posixstat.h (S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH) (S_IXOTH, S_IRWXG, S_IRWXO): Define if undefined, even if S_IRWXU is defined, because non-Posix systems may defined only the user bits.
Diffstat (limited to 'readline')
-rw-r--r--readline/readline/CHANGELOG7
-rw-r--r--readline/readline/posixstat.h20
2 files changed, 27 insertions, 0 deletions
diff --git a/readline/readline/CHANGELOG b/readline/readline/CHANGELOG
index 18265ab1052..6fa1ebb9e62 100644
--- a/readline/readline/CHANGELOG
+++ b/readline/readline/CHANGELOG
@@ -1,3 +1,10 @@
+2019-12-23 Eli Zaretskii <eliz@gnu.org>
+
+ * posixstat.h (S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH)
+ (S_IXOTH, S_IRWXG, S_IRWXO): Define if undefined, even if S_IRWXU
+ is defined, because non-Posix systems may defined only the user
+ bits.
+
[Readline-specific changelog. Descriptions of changes to the source are
found in the bash changelog.]
diff --git a/readline/readline/posixstat.h b/readline/readline/posixstat.h
index 3eb7f2906f7..b9d8eb37618 100644
--- a/readline/readline/posixstat.h
+++ b/readline/readline/posixstat.h
@@ -132,6 +132,26 @@
# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR)
# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP)
# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH)
+#else /* !S_IRWXU */
+ /* S_IRWXU is defined, but "group" and "other" bits might not be
+ (happens in certain versions of MinGW). */
+# if !defined (S_IRGRP)
+# define S_IRGRP (S_IREAD >> 3) /* read, group */
+# define S_IWGRP (S_IWRITE >> 3) /* write, group */
+# define S_IXGRP (S_IEXEC >> 3) /* execute, group */
+# endif /* !S_IRGRP */
+
+# if !defined (S_IROTH)
+# define S_IROTH (S_IREAD >> 6) /* read, other */
+# define S_IWOTH (S_IWRITE >> 6) /* write, other */
+# define S_IXOTH (S_IEXEC >> 6) /* execute, other */
+# endif /* !S_IROTH */
+# if !defined (S_IRWXG)
+# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP)
+# endif
+# if !defined (S_IRWXO)
+# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH)
+# endif
#endif /* !S_IRWXU */
/* These are non-standard, but are used in builtins.c$symbolic_umask() */