aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl@gnu.org>1998-02-20 11:09:09 +0000
committerJason Merrill <jason@gcc.gnu.org>1998-02-20 06:09:09 -0500
commit826603f8c00b170228714e5ad210419b0e2d0ec5 (patch)
tree1d0ee83f2a7a1fe772553c8c551f8cf3b59579d6
parent31eb7f85088413712f64d6eec7e7345ba777b23f (diff)
ropeimpl.h: Check __STL_PTHREADS instead of _PTHREADS.
* ropeimpl.h: Check __STL_PTHREADS instead of _PTHREADS. * stl_alloc.h: Ditto. * stl_config.h: Ditto. * stl_rope.h: Ditto. * stl_config.h: include <_G_config.h> if __GNUG__ is defined. (__STL_PTHREADS): Defined if _PTHREADS is defined or __GLIBC__ >= 2. Co-Authored-By: Jason Merrill <jason@yorick.cygnus.com> From-SVN: r18137
-rw-r--r--libstdc++/stl/ChangeLog12
-rw-r--r--libstdc++/stl/ropeimpl.h2
-rw-r--r--libstdc++/stl/stl_alloc.h8
-rw-r--r--libstdc++/stl/stl_config.h12
-rw-r--r--libstdc++/stl/stl_rope.h4
5 files changed, 29 insertions, 9 deletions
diff --git a/libstdc++/stl/ChangeLog b/libstdc++/stl/ChangeLog
index c9aff2748c5..8c300e39db1 100644
--- a/libstdc++/stl/ChangeLog
+++ b/libstdc++/stl/ChangeLog
@@ -1,3 +1,15 @@
+Wed Jan 14 16:15:05 1998 H.J. Lu (hjl@gnu.org)
+ Jason Merrill <jason@yorick.cygnus.com>
+
+ * ropeimpl.h: Check __STL_PTHREADS instead of _PTHREADS.
+ * stl_alloc.h: Ditto.
+ * stl_config.h: Ditto.
+ * stl_rope.h: Ditto.
+
+ * stl_config.h: include <_G_config.h> if __GNUG__ is defined.
+ (__STL_PTHREADS): Defined if _PTHREADS is defined or
+ __GLIBC__ >= 2.
+
Sat Nov 8 00:45:17 1997 Jason Merrill <jason@yorick.cygnus.com>
* stl_hash_set.h (swap): Fix typo.
diff --git a/libstdc++/stl/ropeimpl.h b/libstdc++/stl/ropeimpl.h
index dcd6bfd5117..d652c815b45 100644
--- a/libstdc++/stl/ropeimpl.h
+++ b/libstdc++/stl/ropeimpl.h
@@ -1429,7 +1429,7 @@ rope<charT, Alloc>::rope(size_t n, charT c)
template<class charT, class Alloc> charT rope<charT,Alloc>::empty_c_str[1];
-# ifdef _PTHREADS
+# ifdef __STL_PTHREADS
template<class charT, class Alloc>
pthread_mutex_t rope<charT,Alloc>::swap_lock = PTHREAD_MUTEX_INITIALIZER;
# endif
diff --git a/libstdc++/stl/stl_alloc.h b/libstdc++/stl/stl_alloc.h
index a6d41437bd4..0f2ba28bb98 100644
--- a/libstdc++/stl/stl_alloc.h
+++ b/libstdc++/stl/stl_alloc.h
@@ -61,12 +61,12 @@
# define __RESTRICT
#endif
-#if !defined(_PTHREADS) && !defined(_NOTHREADS) \
+#if !defined(__STL_PTHREADS) && !defined(_NOTHREADS) \
&& !defined(__STL_SGI_THREADS) && !defined(__STL_WIN32THREADS)
# define _NOTHREADS
#endif
-# ifdef _PTHREADS
+# ifdef __STL_PTHREADS
// POSIX Threads
// This is dubious, since this is likely to be a high contention
// lock. Performance may not be adequate.
@@ -357,7 +357,7 @@ private:
static inline void __unlock(volatile unsigned long *);
# endif
-# ifdef _PTHREADS
+# ifdef __STL_PTHREADS
static pthread_mutex_t __node_allocator_lock;
# endif
@@ -558,7 +558,7 @@ __default_alloc_template<threads, inst>::reallocate(void *p,
return(result);
}
-#ifdef _PTHREADS
+#ifdef __STL_PTHREADS
template <bool threads, int inst>
pthread_mutex_t
__default_alloc_template<threads, inst>::__node_allocator_lock
diff --git a/libstdc++/stl/stl_config.h b/libstdc++/stl/stl_config.h
index c6546667a93..ff730289897 100644
--- a/libstdc++/stl/stl_config.h
+++ b/libstdc++/stl/stl_config.h
@@ -71,6 +71,10 @@
// (19) Defines __stl_assert either as a test or as a null macro,
// depending on whether or not __STL_ASSERTIONS is defined.
+#ifdef _PTHREADS
+# define __STL_PTHREADS
+#endif
+
# if defined(__sgi) && !defined(__GNUC__)
# if !defined(_BOOL)
# define __STL_NEED_BOOL
@@ -93,13 +97,14 @@
# if (_COMPILER_VERSION >= 721) && defined(_NAMESPACES)
# define __STL_USE_NAMESPACES
# endif
-# if !defined(_NOTHREADS) && !defined(_PTHREADS)
+# if !defined(_NOTHREADS) && !defined(__STL_PTHREADS)
# define __STL_SGI_THREADS
# endif
# endif
# ifdef __GNUC__
-# if 0 && (__GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8))
+# include <_G_config.h>
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
# define __STL_STATIC_TEMPLATE_MEMBER_BUG
# define __STL_NEED_TYPENAME
# define __STL_NEED_EXPLICIT
@@ -109,6 +114,9 @@
# define __STL_EXPLICIT_FUNCTION_TMPL_ARGS
# define __STL_MEMBER_TEMPLATES
# endif
+# if !defined(_NOTHREADS) && __GLIBC__ >= 2
+# define __STL_PTHREADS
+# endif
# ifdef __EXCEPTIONS
# define __STL_USE_EXCEPTIONS
# endif
diff --git a/libstdc++/stl/stl_rope.h b/libstdc++/stl/stl_rope.h
index 620db6ffbc5..d37c679ba28 100644
--- a/libstdc++/stl/stl_rope.h
+++ b/libstdc++/stl/stl_rope.h
@@ -306,7 +306,7 @@ struct __rope_RopeBase {
{
return InterlockedDecrement(&refcount);
}
-# elif defined(_PTHREADS)
+# elif defined(__STL_PTHREADS)
// This should be portable, but performance is expected
// to be quite awful. This really needs platform specific
// code.
@@ -939,7 +939,7 @@ class rope {
static cstrptr atomic_swap(cstrptr *p, cstrptr q) {
return (cstrptr) InterlockedExchange((LPLONG)p, (LONG)q);
}
-# elif defined(_PTHREADS)
+# elif defined(__STL_PTHREADS)
// This should be portable, but performance is expected
// to be quite awful. This really needs platform specific
// code.