Index: libstdc++-v3/config/os/bsd/openbsd/ctype_base.h
--- libstdc++-v3/config/os/bsd/openbsd/ctype_base.h.orig
+++ libstdc++-v3/config/os/bsd/openbsd/ctype_base.h
@@ -42,6 +42,22 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     // on the mask type. Because of this, we don't use an enum.
     typedef char		mask;
 
+#ifdef _CTYPE_U
+    static const mask upper	= _CTYPE_U;
+    static const mask lower	= _CTYPE_L;
+    static const mask alpha	= _CTYPE_U | _CTYPE_L;
+    static const mask digit	= _CTYPE_N;
+    static const mask xdigit	= _CTYPE_N | _CTYPE_X;
+    static const mask space	= _CTYPE_S;
+    static const mask print	= _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N | _CTYPE_B;
+    static const mask graph	= _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N;
+    static const mask cntrl	= _CTYPE_C;
+    static const mask punct	= _CTYPE_P;
+    static const mask alnum	= _CTYPE_U | _CTYPE_L | _CTYPE_N;
+# if __cplusplus >= 201103L
+    static const mask blank	= space;
+# endif
+#else
     static const mask upper	= _U;
     static const mask lower	= _L;
     static const mask alpha	= _U | _L;
@@ -53,8 +69,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     static const mask cntrl	= _C;
     static const mask punct	= _P;
     static const mask alnum	= _U | _L | _N;
-#if __cplusplus >= 201103L
+# if __cplusplus >= 201103L
     static const mask blank	= space;
+# endif
 #endif
   };
 
