--- /dev/null
+--- a/regex/regex.h
++++ b/regex/regex.h
+@@ -42,16 +42,12 @@
+ #ifndef _REGEX_H_\r
+ #define _REGEX_H_\r
+ \r
+-#ifdef WIN32\r
+ #include <sys/types.h>\r
+ #define __const\r
+ #define __BEGIN_DECLS\r
+ #define __END_DECLS\r
+ #define __P(_X) _X\r
+-#else\r
+-#include <sys/cdefs.h>\r
+ #define __stdcall\r
+-#endif\r
+ \r
+ /* types */\r
+ typedef off_t regoff_t;\r
+@@ -106,12 +102,16 @@ typedef struct {
+ #define REG_LARGE 01000 /* force large representation */\r
+ #define REG_BACKR 02000 /* force use of backref code */\r
+ \r
+-__BEGIN_DECLS\r
++#ifdef __cplusplus\r
++extern "C" {\r
++#endif\r
+ int __stdcall regcomp __P((regex_t *, const char *, int));\r
+ size_t __stdcall regerror __P((int, const regex_t *, char *, size_t));\r
+ int __stdcall regexec __P((const regex_t *,\r
+ const char *, size_t, regmatch_t [], int));\r
+ void __stdcall regfree __P((regex_t *));\r
+-__END_DECLS\r
++#ifdef __cplusplus\r
++}\r
++#endif\r
+ \r
+ #endif /* !_REGEX_H_ */\r