Add O_SHLOCK & O_EXLOCK. Closes patch #1103951.
diff --git a/Doc/lib/libos.tex b/Doc/lib/libos.tex
index bf6e5d6..d38e9be 100644
--- a/Doc/lib/libos.tex
+++ b/Doc/lib/libos.tex
@@ -594,7 +594,9 @@
The following data items are available for use in constructing the
-\var{flags} parameter to the \function{open()} function.
+\var{flags} parameter to the \function{open()} function. Some items will
+not be available on all platforms. For descriptions of their availability
+and use, consult \manpage{open}{2}.
\begin{datadesc}{O_RDONLY}
\dataline{O_WRONLY}
@@ -614,6 +616,8 @@
\dataline{O_NDELAY}
\dataline{O_NONBLOCK}
\dataline{O_NOCTTY}
+\dataline{O_SHLOCK}
+\dataline{O_EXLOCK}
More options for the \var{flag} argument to the \function{open()} function.
Availability: Macintosh, \UNIX.
\end{datadesc}
diff --git a/Misc/NEWS b/Misc/NEWS
index b27b169..4d8f3b1 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -81,6 +81,9 @@
Extension Modules
-----------------
+- Patch #1103951: Expose O_SHLOCK and O_EXLOCK in the posix module if
+ available on the platform.
+
- Bug #1166660: The readline module could segfault if hook functions
were set in a different thread than that which called readline.
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 1ca131e..79d5e71 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -7718,6 +7718,12 @@
#ifdef O_LARGEFILE
if (ins(d, "O_LARGEFILE", (long)O_LARGEFILE)) return -1;
#endif
+#ifdef O_SHLOCK
+ if (ins(d, "O_SHLOCK", (long)O_SHLOCK)) return -1;
+#endif
+#ifdef O_EXLOCK
+ if (ins(d, "O_EXLOCK", (long)O_EXLOCK)) return -1;
+#endif
/* MS Windows */
#ifdef O_NOINHERIT