From 96abf60005cd606eb0b5ff016136465cfd1652a0 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Fri, 20 Feb 1998 06:13:44 -0500 Subject: [PATCH] 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. From-SVN: r18138 --- libstdc++/stl/ChangeLog | 16 ++++++++++++++++ libstdc++/stl/ropeimpl.h | 2 +- libstdc++/stl/stl_algo.h | 2 +- libstdc++/stl/stl_alloc.h | 8 ++++---- libstdc++/stl/stl_config.h | 12 ++++++++++-- libstdc++/stl/stl_rope.h | 4 ++-- 6 files changed, 34 insertions(+), 10 deletions(-) diff --git a/libstdc++/stl/ChangeLog b/libstdc++/stl/ChangeLog index c9aff27..5605d7c 100644 --- a/libstdc++/stl/ChangeLog +++ b/libstdc++/stl/ChangeLog @@ -1,3 +1,19 @@ +Fri Feb 20 16:15:05 1998 H.J. Lu (hjl@gnu.org) + Jason Merrill + + * 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. + +Tue Jan 27 12:01:25 1998 Jason Merrill + + * stl_algo.h (__lg): Fix for n == 0. + Sat Nov 8 00:45:17 1997 Jason Merrill * stl_hash_set.h (swap): Fix typo. diff --git a/libstdc++/stl/ropeimpl.h b/libstdc++/stl/ropeimpl.h index dcd6bfd..d652c81 100644 --- a/libstdc++/stl/ropeimpl.h +++ b/libstdc++/stl/ropeimpl.h @@ -1429,7 +1429,7 @@ rope::rope(size_t n, charT c) template charT rope::empty_c_str[1]; -# ifdef _PTHREADS +# ifdef __STL_PTHREADS template pthread_mutex_t rope::swap_lock = PTHREAD_MUTEX_INITIALIZER; # endif diff --git a/libstdc++/stl/stl_algo.h b/libstdc++/stl/stl_algo.h index 53b8dbd..5cde42c 100644 --- a/libstdc++/stl/stl_algo.h +++ b/libstdc++/stl/stl_algo.h @@ -1004,7 +1004,7 @@ void __final_insertion_sort(RandomAccessIterator first, template inline Size __lg(Size n) { Size k; - for (k = 0; n != 1; n >>= 1) ++k; + for (k = 0; n > 1; n >>= 1) ++k; return k; } diff --git a/libstdc++/stl/stl_alloc.h b/libstdc++/stl/stl_alloc.h index a6d4143..0f2ba28 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::reallocate(void *p, return(result); } -#ifdef _PTHREADS +#ifdef __STL_PTHREADS template pthread_mutex_t __default_alloc_template::__node_allocator_lock diff --git a/libstdc++/stl/stl_config.h b/libstdc++/stl/stl_config.h index c654666..ff73028 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 620db6f..d37c679 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. -- 2.7.4