--- /dev/null
+/*
+**********************************************************************
+* Copyright (c) 2009, International Business Machines
+* Corporation and others. All Rights Reserved.
+**********************************************************************
+*/
+#ifndef _PLATFORM_XOPEN_SOURCE_EXTENDED_H
+#define _PLATFORM_XOPEN_SOURCE_EXTENDED_H
+
+#include "unicode/utypes.h"
+
+/*
+ * z/OS needs this definition for timeval and to get usleep.
+ * We move this definition out of the various source files because
+ * there might be some platform issues when this is defined.
+ * See below.
+ */
+#if !defined(_XOPEN_SOURCE_EXTENDED)
+#define _XOPEN_SOURCE_EXTENDED 1
+#endif
+
+/*
+ * There is an issue with turning on _XOPEN_SOURCE_EXTENDED on certain platforms.
+ * A compatibility issue exists between turning on _XOPEN_SOURCE_EXTENDED and using
+ * standard C++ string class. As a result, standard C++ string class needs to be
+ * turned off for the follwing platforms:
+ * -AIX/VACPP
+ * -Solaris/GCC
+ */
+#if (defined(U_AIX) && !defined(__GNUC__)) || (defined(U_SOLARIS) && defined(__GNUC__))
+# if _XOPEN_SOURCE_EXTENDED && !defined(U_HAVE_STD_STRING)
+# define U_HAVE_STD_STRING 0
+# endif
+#endif
+
+#endif /* _PLATFORM_XOPEN_SOURCE_EXTENDED_H */