Issue #5737: Add Solaris-specific mnemonics in the errno module.  Patch by
Matthew Ahrens.
diff --git a/Misc/ACKS b/Misc/ACKS
index 45cd1b7..4ad93a3 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -14,6 +14,7 @@
 David Abrahams
 Jim Ahlstrom
 Farhan Ahmad
+Matthew Ahrens
 Nir Aides
 Yaniv Aknin
 Jyrki Alakuijala
diff --git a/Misc/NEWS b/Misc/NEWS
index fe2080f..1e7acc6 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -63,6 +63,9 @@
 Extensions
 ----------
 
+- Issue #5737: Add Solaris-specific mnemonics in the errno module.  Patch by
+  Matthew Ahrens.
+
 - Restore GIL in nis_cat in case of error.
 
 - Issue #665761: ``functools.reduce()`` will no longer mask exceptions
diff --git a/Modules/errnomodule.c b/Modules/errnomodule.c
index 03c65f7..19b8bd5 100644
--- a/Modules/errnomodule.c
+++ b/Modules/errnomodule.c
@@ -82,7 +82,8 @@
 
     /*
      * The names and comments are borrowed from linux/include/errno.h,
-     * which should be pretty all-inclusive
+     * which should be pretty all-inclusive.  However, the Solaris specific
+     * names and comments are borrowed from sys/errno.h in Solaris.
      */
 
 #ifdef ENODEV
@@ -797,6 +798,26 @@
     inscode(d, ds, de, "WSAN", WSAN, "Error WSAN");
 #endif
 
+    /* Solaris-specific errnos */
+#ifdef ECANCELED
+    inscode(d, ds, de, "ECANCELED", ECANCELED, "Operation canceled");
+#endif
+#ifdef ENOTSUP
+    inscode(d, ds, de, "ENOTSUP", ENOTSUP, "Operation not supported");
+#endif
+#ifdef EOWNERDEAD
+    inscode(d, ds, de, "EOWNERDEAD", EOWNERDEAD, "Process died with the lock");
+#endif
+#ifdef ENOTRECOVERABLE
+    inscode(d, ds, de, "ENOTRECOVERABLE", ENOTRECOVERABLE, "Lock is not recoverable");
+#endif
+#ifdef ELOCKUNMAPPED
+    inscode(d, ds, de, "ELOCKUNMAPPED", ELOCKUNMAPPED, "Locked lock was unmapped");
+#endif
+#ifdef ENOTACTIVE
+    inscode(d, ds, de, "ENOTACTIVE", ENOTACTIVE, "Facility is not active");
+#endif
+
     Py_DECREF(de);
     return m;
 }