diff -Naur ./src/fstream.cpp ./src/fstream.cpp --- misc/build/STLport-4.0/src/fstream.cpp Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/src/fstream.cpp Tue Mar 20 11:59:14 2001 @@ -30,6 +30,9 @@ # include // For mmap # include # include +# ifdef __APPLE__ +# include +# endif #elif defined (__STL_USE_WIN32_IO) # define WIN32_LEAN_AND_MEAN # include @@ -326,7 +329,19 @@ { if (!_M_page_size) #if defined (__STL_UNIX) +# if defined (__APPLE__) + { + int mib[2]; + size_t pagesize, len; + mib[0] = CTL_HW; + mib[1] = HW_PAGESIZE; + len = sizeof(pagesize); + sysctl(mib, 2, &pagesize, &len, NULL, 0); + _M_page_size = pagesize; + } +# else _M_page_size = sysconf(_SC_PAGESIZE); +# endif # elif defined (__STL_USE_WIN32_IO) { SYSTEM_INFO SystemInfo; diff -Naur ./src/gcc-apple-macosx.mak ./src/gcc-apple-macosx.mak --- misc/build/STLport-4.0/src/gcc-apple-macosx.mak Wed Dec 31 16:00:00 1969 +++ misc/build/STLport-4.0/src/gcc-apple-macosx.mak Tue Mar 20 12:04:05 2001 @@ -0,0 +1,70 @@ +# +# Note : this makefile is for gcc-2.95 and later ! +# + +# +# compiler +# +CC = cc +CXX = cc + +# +# Basename for libraries +# +LIB_BASENAME = libstlport_gcc + +# +# guts for common stuff +# +# +LINK=libtool -static -o +# 2.95 flag +DYN_LINK=libtool -dynamic -framework System -lcc_dynamic -lstdc++ -install_name @executable_path/$(@F) -o + +OBJEXT=o +DYNEXT=dylib +STEXT=a +RM=rm -Rf +PATH_SEP=/ +MKDIR=mkdir -p +COMP=GCC$(ARCH) + +all: all_dynamic all_static + +include common_macros.mak + +WARNING_FLAGS= -W -Wno-sign-compare -Wno-unused -Wno-uninitialized -Wno-long-double + +CXXFLAGS_COMMON = -I${STLPORT_DIR} ${WARNING_FLAGS} -D_REENTRANT -D_PTHREADS + +ifneq ("$(shell uname -r)", "1.2") +CXXFLAGS_COMMON += -fno-coalesce +endif + +CXXFLAGS_RELEASE_static = $(CXXFLAGS_COMMON) -O2 +CXXFLAGS_RELEASE_dynamic = $(CXXFLAGS_COMMON) -O2 -fPIC + +CXXFLAGS_DEBUG_static = $(CXXFLAGS_COMMON) -g +CXXFLAGS_DEBUG_dynamic = $(CXXFLAGS_COMMON) -g -fPIC + +CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_DEBUG_static) -D__STL_DEBUG +CXXFLAGS_STLDEBUG_dynamic = $(CXXFLAGS_DEBUG_dynamic) -D__STL_DEBUG -fPIC + +# Add a single source file where all static data members for template classes +# are initialized +RELEASE_OBJECTS_static += \ + $(RELEASE_OBJDIR_static)$(PATH_SEP)static_instances.o +DEBUG_OBJECTS_static += \ + $(DEBUG_OBJDIR_static)$(PATH_SEP)static_instances.o +STLDEBUG_OBJECTS_static += \ + $(STLDEBUG_OBJDIR_static)$(PATH_SEP)static_instances.o +RELEASE_OBJECTS_dynamic += \ + $(RELEASE_OBJDIR_dynamic)$(PATH_SEP)static_instances.o +DEBUG_OBJECTS_dynamic += \ + $(DEBUG_OBJDIR_dynamic)$(PATH_SEP)static_instances.o +STLDEBUG_OBJECTS_dynamic += \ + $(STLDEBUG_OBJDIR_dynamic)$(PATH_SEP)static_instances.o + +include common_percent_rules.mak +include common_rules.mak + diff -Naur ./src/message_facets.cpp ./src/message_facets.cpp --- misc/build/STLport-4.0/src/message_facets.cpp Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/src/message_facets.cpp Tue Mar 20 11:59:15 2001 @@ -31,8 +31,8 @@ // Don't bother to do anything unless we're using a non-default ctype facet try { typedef ctype<_Char> wctype; - const wctype& wct = use_facet(L); - const wctype* zz = (const wctype*)0; + wctype& wct = (wctype &)use_facet(L); + wctype* zz = (wctype*)0; if (typeid(&wct) != typeid(zz)) { if (!M) M = new hash_map, equal_to >; diff -Naur ./src/num_put_float.cpp ./src/num_put_float.cpp --- misc/build/STLport-4.0/src/num_put_float.cpp Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/src/num_put_float.cpp Tue Mar 20 12:01:44 2001 @@ -43,13 +43,15 @@ # ifdef __STL_UNIX -# include +# ifndef __APPLE__ +# include +# endif # if defined (__sun) # include # endif -# if !defined(__STL_USE_GLIBC) && !defined(__FreeBSD__) // dwa 1/10/00 - nan.h not supplied with gcc +# if !defined(__STL_USE_GLIBC) && !defined(__FreeBSD__) && !( defined(__GNUC__) && defined(__APPLE__) ) // dwa 1/10/00 - nan.h not supplied with gcc // DEC & Solaris need this # include # endif @@ -95,7 +97,7 @@ # endif inline bool _Stl_is_inf(double x) { return isinf(x); } inline bool _Stl_is_neg_inf(double x) { return isinf(x) < 0; } -#elif defined(__unix) && !defined(__FreeBSD__) /* (__sgi) || defined (__sun) IRIX , Solaris, others ? */ +#elif defined(__unix) && !defined(__FreeBSD__) && !defined(__APPLE__) /* (__sgi) || defined (__sun) IRIX , Solaris, others ? */ inline bool _Stl_is_nan_or_inf(double x) { return IsNANorINF(x); } inline bool _Stl_is_inf(double x) { return IsNANorINF(x) && IsINF(x); } inline bool _Stl_is_neg_inf(double x) { return (IsINF(x)) && (x < 0.0); } @@ -124,7 +126,7 @@ bool _Stl_is_inf(double x) { return !isfinite(x); } bool _Stl_is_neg_inf(double x) { return !isfinite(x) && signbit(x); } bool _Stl_is_neg_nan(double x) { return isnan(x) && signbit(x); } -#elif defined (__FreeBSD__) +#elif defined (__FreeBSD__) || ( defined (__GNUC__) && defined (__APPLE__) ) inline bool _Stl_is_nan_or_inf(double x) { return !finite(x); } inline bool _Stl_is_inf(double x) { return _Stl_is_nan_or_inf(x) && ! isnan(x); @@ -193,7 +195,7 @@ { return _ldfcvt(*(long_double*)&x, n, pt, sign); } # endif -#elif defined (__unix) && !defined(__FreeBSD__)/* defined(__sgi) IRIX */ +#elif defined (__unix) && !defined(__FreeBSD__) && !defined(__APPLE__) /* defined(__sgi) IRIX */ inline char* _Stl_ecvtR(double x, int n, int* pt, int* sign, char* buf) { return ecvt_r(x, n, pt, sign, buf); } inline char* _Stl_fcvtR(double x, int n, int* pt, int* sign, char* buf) @@ -203,7 +205,7 @@ inline char* _Stl_qfcvtR(long double x, int n, int* pt, int* sign, char* buf) { return qfcvt_r(x, n, pt, sign, buf); } -#elif defined (__FreeBSD__) +#elif defined (__FreeBSD__) || ( defined (__GNUC__) && defined (__APPLE__) ) /* * Copyright (c) 1995-1997 The Apache Group. All rights reserved. diff -Naur ./src/static_instances.cpp ./src/static_instances.cpp --- misc/build/STLport-4.0/src/static_instances.cpp Wed Dec 31 16:00:00 1969 +++ misc/build/STLport-4.0/src/static_instances.cpp Tue Mar 20 12:04:13 2001 @@ -0,0 +1,31 @@ +/* + * Copyright (c) 1999 + * Silicon Graphics Computer Systems, Inc. + * + * Copyright (c) 1999 + * Boris Fomitchev + * + * This material is provided "as is", with absolutely no warranty expressed + * or implied. Any use is at your own risk. + * + * Permission to use or copy this software for any purpose is hereby granted + * without fee, provided the above notices are retained on all copies. + * Permission to modify the code and to distribute modified code is granted, + * provided the above notices are retained, and a notice that the code was + * modified is included with the above copyright notice. + * + */ + +# ifndef __PUT_STATIC_DATA_MEMBERS_HERE +# define __PUT_STATIC_DATA_MEMBERS_HERE +# endif + +# include "stlport_prefix.h" + +# include +# include +# include + +// Local Variables: +// mode:C++ +// End: diff -Naur ./stlport/config/stl_gcc.h ./stlport/config/stl_gcc.h --- misc/build/STLport-4.0/stlport/config/stl_gcc.h Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/stlport/config/stl_gcc.h Tue Mar 20 12:02:30 2001 @@ -42,6 +42,33 @@ # define __STL_NO_NATIVE_MBSTATE_T 1 # endif +/* Mac OS X is a little different with namespaces and cannot instantiate + * static data members in template classes */ +# if defined (__APPLE__) +/* Mac OS X is missing a required typedef and standard macro */ +typedef unsigned int wint_t; +# define __unix +/* Mac OS X needs one and only one source file to initialize all static data + * members in template classes. Only one source file in an executable or + * library can declare instances for such data members, otherwise duplicate + * symbols will be generated. */ +# ifdef __PUT_STATIC_DATA_MEMBERS_HERE +# define __STL_NO_STATIC_TEMPLATE_DATA +# define __STL_STATIC_TEMPLATE_DATA 0 +# define __STL_WEAK_ATTRIBUTE 0 +# define __DECLARE_INSTANCE(type,item,init) type item init +# endif +/* Mac OS X needs all "::" scope references to be "std::" */ +# undef __STL_VENDOR_GLOBAL_STD +# undef __STL_VENDOR_GLOBAL_CSTD +# define __STL_NO_CSTD_FUNCTION_IMPORTS +/* Workaround for the broken Mac OS X C++ preprocessor which cannot handle + * parameterized macros in #include statements */ +# define __STL_NATIVE_HEADER(header) <../g++/##header##> +# define __STL_NATIVE_C_HEADER(header) <../include/##header##> +# define __STL_NATIVE_CPP_C_HEADER(header) <../g++/##header##> +# define __STL_NATIVE_OLD_STREAMS_HEADER(header) <../g++/##header##> +# endif /* g++ 2.7.x and above */ # define __STL_LONG_LONG 1 diff -Naur ./stlport/cwchar ./stlport/cwchar --- misc/build/STLport-4.0/stlport/cwchar Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/stlport/cwchar Tue Mar 20 12:01:01 2001 @@ -34,7 +34,7 @@ # if defined (__STL_USE_NEW_C_HEADERS) && ! defined (__HP_aCC) # include __STL_NATIVE_CPP_C_HEADER(cwchar) -# elif defined (__MRC__) || defined (__SC__) || defined (__BORLANDC__) +# elif defined (__MRC__) || defined (__SC__) || defined (__BORLANDC__) || (defined (__GNUC__) && defined (__APPLE__)) # include __STL_NATIVE_C_HEADER(stddef.h) # else # include __STL_NATIVE_C_HEADER(wchar.h) diff -Naur ./stlport/exception ./stlport/exception --- misc/build/STLport-4.0/stlport/exception Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/stlport/exception Tue Mar 20 12:03:09 2001 @@ -42,7 +42,7 @@ # undef __STL_INCOMPLETE_EXCEPTION_HEADER # endif -# if defined (__GNUC__) && (__GNUC_MINOR__ >= 8 ) +# if defined (__GNUC__) && (__GNUC_MINOR__ >= 8 ) && ! defined (__APPLE__) # include <../include/exception> # else # include __STL_NATIVE_HEADER(exception) diff -Naur ./stlport/exception.h ./stlport/exception.h --- misc/build/STLport-4.0/stlport/exception.h Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/stlport/exception.h Tue Mar 20 11:59:15 2001 @@ -1,46 +1,46 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef __STLPORT_OLDSTD_exception -# define __STLPORT_OLDSTD_exception - -# if !defined (__STL_OUTERMOST_HEADER_ID) -# define __STL_OUTERMOST_HEADER_ID 0x824 -# include -# elif (__STL_OUTERMOST_HEADER_ID == 0x824) && ! defined (__STL_DONT_POP_0x824) -# define __STL_DONT_POP_0x824 -# endif - -# if defined (__GNUC__) && (__GNUC_MINOR__ >= 8 ) -# include <../include/exception.h> -# elif defined (__BORLANDC__) -# include -# else -# include __STL_NATIVE_HEADER(exception.h) -# endif - -# if (__STL_OUTERMOST_HEADER_ID == 0x824) -# if ! defined (__STL_DONT_POP_0x824) -# include -# undef __STL_OUTERMOST_HEADER_ID -# endif -# undef __STL_DONT_POP_0x824 -# endif - -#endif /* __STLPORT_OLDSTD_exception */ - -// Local Variables: -// mode:C++ -// End: +/* + * Copyright (c) 1999 + * Boris Fomitchev + * + * This material is provided "as is", with absolutely no warranty expressed + * or implied. Any use is at your own risk. + * + * Permission to use or copy this software for any purpose is hereby granted + * without fee, provided the above notices are retained on all copies. + * Permission to modify the code and to distribute modified code is granted, + * provided the above notices are retained, and a notice that the code was + * modified is included with the above copyright notice. + * + */ + +#ifndef __STLPORT_OLDSTD_exception +# define __STLPORT_OLDSTD_exception + +# if !defined (__STL_OUTERMOST_HEADER_ID) +# define __STL_OUTERMOST_HEADER_ID 0x824 +# include +# elif (__STL_OUTERMOST_HEADER_ID == 0x824) && ! defined (__STL_DONT_POP_0x824) +# define __STL_DONT_POP_0x824 +# endif + +# if defined (__GNUC__) && (__GNUC_MINOR__ >= 8 ) && ! defined (__APPLE__) +# include <../include/exception.h> +# elif defined (__BORLANDC__) +# include +# else +# include __STL_NATIVE_HEADER(exception.h) +# endif + +# if (__STL_OUTERMOST_HEADER_ID == 0x824) +# if ! defined (__STL_DONT_POP_0x824) +# include +# undef __STL_OUTERMOST_HEADER_ID +# endif +# undef __STL_DONT_POP_0x824 +# endif + +#endif /* __STLPORT_OLDSTD_exception */ + +// Local Variables: +// mode:C++ +// End: diff -Naur ./stlport/new ./stlport/new --- misc/build/STLport-4.0/stlport/new Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/stlport/new Tue Mar 20 12:07:19 2001 @@ -43,7 +43,7 @@ #endif # if !defined (__STL_NO_NEW_NEW_HEADER) -# if ( defined (__GNUC__) && (__GNUC_MINOR__ >= 8 )) || ( defined (__MVS__) && ! defined (__GNUC__)) +# if ( defined (__GNUC__) && (__GNUC_MINOR__ >= 8 ) && ! defined (__APPLE__)) || ( defined (__MVS__) && ! defined (__GNUC__)) # include __STL_NATIVE_C_HEADER(new) # else # include __STL_NATIVE_HEADER(new) diff -Naur ./stlport/new.h ./stlport/new.h --- misc/build/STLport-4.0/stlport/new.h Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/stlport/new.h Tue Mar 20 12:07:37 2001 @@ -22,7 +22,7 @@ # endif # ifndef __STL_WINCE -# if ( defined (__GNUC__) && (__GNUC_MINOR__ >= 8 )) || ( defined (__MVS__) && ! defined (__GNUC__)) +# if ( defined (__GNUC__) && (__GNUC_MINOR__ >= 8 ) && ! defined (__APPLE__)) || ( defined (__MVS__) && ! defined (__GNUC__)) # include __STL_NATIVE_C_HEADER(new.h) # elif defined (__BORLANDC__) # include diff -Naur ./stlport/stl/_alloc.c ./stlport/stl/_alloc.c --- misc/build/STLport-4.0/stlport/stl/_alloc.c Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/stlport/stl/_alloc.c Tue Mar 20 12:05:59 2001 @@ -301,6 +301,7 @@ _Node_Alloc_Lock<__threads, __inst>::_S_lock __STL_MUTEX_INITIALIZER; #endif +# if defined(__GNUC__) && !defined(__APPLE__) template _Node_alloc_obj * __STL_VOLATILE __node_alloc<__threads, __inst>::_S_free_list[_NFREELISTS] @@ -317,7 +318,7 @@ template size_t __node_alloc<__threads, __inst>::_S_heap_size = 0; - +# endif /* defined(__GNUC__) && !defined(__APPLE__) */ # else /* ( __STL_STATIC_TEMPLATE_DATA > 0 ) */ diff -Naur ./stlport/stl/_limits.c ./stlport/stl/_limits.c --- misc/build/STLport-4.0/stlport/stl/_limits.c Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/stlport/stl/_limits.c Tue Mar 20 12:06:06 2001 @@ -92,21 +92,21 @@ # undef __declare_numeric_base_member # if defined (__STL_NO_STATIC_TEMPLATE_DATA) -# define __HACK_ILIMITS(_Int, __imin, __imax, __idigits) _Integer_limits<_Int, __imin, __imax, __idigits> +# define __HACK_ILIMITS(_Int, __imin, __imax, __idigits, __ismod) _Integer_limits<_Int, __imin, __imax, __idigits, __ismod> # define __HACK_NOTHING -# define __declare_integer_limits_member(_Int, __imin, __imax, __idigits, __type, __mem) \ - __DECLARE_INSTANCE(const __type, __HACK_ILIMITS(_Int, __imin, __imax, __idigits):: __mem,__HACK_NOTHING) +# define __declare_integer_limits_member(_Int, __imin, __imax, __idigits, __ismod, __type, __mem) \ + __DECLARE_INSTANCE(const __type, __HACK_ILIMITS(_Int, __imin, __imax, __idigits, __ismod):: __mem,__HACK_NOTHING) -# define __declare_int_members(_Int, __imin, __imax, __idigits) \ -__declare_integer_limits_member(_Int, __imin, __imax, __idigits, bool, is_specialized);\ -__declare_integer_limits_member(_Int, __imin, __imax, __idigits, int, digits);\ -__declare_integer_limits_member(_Int, __imin, __imax, __idigits, int, digits10);\ -__declare_integer_limits_member(_Int, __imin, __imax, __idigits, bool, is_signed);\ -__declare_integer_limits_member(_Int, __imin, __imax, __idigits, bool, is_integer);\ -__declare_integer_limits_member(_Int, __imin, __imax, __idigits, bool, is_exact);\ -__declare_integer_limits_member(_Int, __imin, __imax, __idigits, int, radix);\ -__declare_integer_limits_member(_Int, __imin, __imax, __idigits, bool, is_bounded);\ -__declare_integer_limits_member(_Int, __imin, __imax, __idigits, bool, is_modulo); +# define __declare_int_members(_Int, __imin, __imax, __idigits, __ismod) \ +__declare_integer_limits_member(_Int, __imin, __imax, __idigits, __ismod, bool, is_specialized);\ +__declare_integer_limits_member(_Int, __imin, __imax, __idigits, __ismod, int, digits);\ +__declare_integer_limits_member(_Int, __imin, __imax, __idigits, __ismod, int, digits10);\ +__declare_integer_limits_member(_Int, __imin, __imax, __idigits, __ismod, bool, is_signed);\ +__declare_integer_limits_member(_Int, __imin, __imax, __idigits, __ismod, bool, is_integer);\ +__declare_integer_limits_member(_Int, __imin, __imax, __idigits, __ismod, bool, is_exact);\ +__declare_integer_limits_member(_Int, __imin, __imax, __idigits, __ismod, int, radix);\ +__declare_integer_limits_member(_Int, __imin, __imax, __idigits, __ismod, bool, is_bounded);\ +__declare_integer_limits_member(_Int, __imin, __imax, __idigits, __ismod, bool, is_modulo); # else @@ -197,25 +197,25 @@ # ifdef __STL_NO_STATIC_TEMPLATE_DATA # ifndef __STL_NO_BOOL -__declare_int_members(bool, false, true, 0) +__declare_int_members(bool, false, true, 0, false) # endif -__declare_int_members(char, CHAR_MIN, CHAR_MAX, -1) +__declare_int_members(char, CHAR_MIN, CHAR_MAX, -1, true) # ifndef __STL_NO_SIGNED_BUILTINS -__declare_int_members(signed char, SCHAR_MIN, SCHAR_MAX, -1) +__declare_int_members(signed char, SCHAR_MIN, SCHAR_MAX, -1, true) # endif -__declare_int_members(unsigned char, 0, UCHAR_MAX, -1) +__declare_int_members(unsigned char, 0, UCHAR_MAX, -1, true) # if defined (__STL_HAS_WCHAR_T) && !defined ( __STL_WCHAR_T_IS_USHORT) -__declare_int_members(wchar_t, INT_MIN, INT_MAX, -1) +__declare_int_members(wchar_t, INT_MIN, INT_MAX, -1, true) # endif -__declare_int_members(short, SHRT_MIN, SHRT_MAX, -1) -__declare_int_members(unsigned short, 0, USHRT_MAX, -1) -__declare_int_members(int, INT_MIN, INT_MAX, -1) -__declare_int_members(unsigned int, 0, UINT_MAX, -1) -__declare_int_members(long, LONG_MIN, LONG_MAX, -1) -__declare_int_members(unsigned long, 0, ULONG_MAX, -1) +__declare_int_members(short, SHRT_MIN, SHRT_MAX, -1, true) +__declare_int_members(unsigned short, 0, USHRT_MAX, -1, true) +__declare_int_members(int, INT_MIN, INT_MAX, -1, true) +__declare_int_members(unsigned int, 0, UINT_MAX, -1, true) +__declare_int_members(long, LONG_MIN, LONG_MAX, -1, true) +__declare_int_members(unsigned long, 0, ULONG_MAX, -1, true) # ifdef __STL_LONG_LONG -__declare_int_members(long long, LONGLONG_MIN, LONG_MAX, -1) -__declare_int_members(unsigned long long, 0, ULONGLONG_MAX, -1) +__declare_int_members(long long, LONGLONG_MIN, LONG_MAX, -1, true) +__declare_int_members(unsigned long long, 0, ULONGLONG_MAX, -1, true) # endif __declare_float_members(float, FLT_MANT_DIG,FLT_DIG, FLT_MIN_EXP, @@ -318,26 +318,26 @@ #else -__DECLARE_INSTANCE(_F_rep, - _LimG::_F_inf, __STL_ARRAY_STATIC_INIT(__STL_FLOAT_INF_REP)); -__DECLARE_INSTANCE(_F_rep, - _LimG::_F_qNaN, __STL_ARRAY_STATIC_INIT(__STL_FLOAT_QNAN_REP)); -__DECLARE_INSTANCE(_F_rep, - _LimG::_F_sNaN, __STL_ARRAY_STATIC_INIT(__STL_FLOAT_SNAN_REP)); -__DECLARE_INSTANCE(_D_rep, - _LimG::_D_inf, __STL_ARRAY_STATIC_INIT(__STL_DOUBLE_INF_REP)); -__DECLARE_INSTANCE(_D_rep, - _LimG::_D_qNaN, __STL_ARRAY_STATIC_INIT(__STL_DOUBLE_QNAN_REP)); -__DECLARE_INSTANCE(_D_rep, - _LimG::_D_sNaN, __STL_ARRAY_STATIC_INIT(__STL_DOUBLE_SNAN_REP)); # ifndef __STL_NO_LONG_DOUBLE -__DECLARE_INSTANCE(_L_rep, - _LimG::_L_inf, __STL_ARRAY_STATIC_INIT(__STL_LDOUBLE_INF_REP)); -__DECLARE_INSTANCE(_D_rep, - _LimG::_L_qNaN, __STL_ARRAY_STATIC_INIT(__STL_LDOUBLE_QNAN_REP)); -__DECLARE_INSTANCE(_L_rep, - _LimG::_L_sNaN, __STL_ARRAY_STATIC_INIT(__STL_LDOUBLE_SNAN_REP)); +__DECLARE_INSTANCE(const _L_rep, _LimG::_L_inf, + __STL_ARRAY_STATIC_INIT({__STL_LDOUBLE_INF_REP})); +__DECLARE_INSTANCE(const _L_rep, _LimG::_L_qNaN, + __STL_ARRAY_STATIC_INIT({__STL_LDOUBLE_QNAN_REP})); +__DECLARE_INSTANCE(const _L_rep, _LimG::_L_sNaN, + __STL_ARRAY_STATIC_INIT({__STL_LDOUBLE_SNAN_REP})); # endif +__DECLARE_INSTANCE(const _D_rep, _LimG::_D_inf, + __STL_ARRAY_STATIC_INIT({__STL_DOUBLE_INF_REP})); +__DECLARE_INSTANCE(const _D_rep, _LimG::_D_qNaN, + __STL_ARRAY_STATIC_INIT({__STL_DOUBLE_QNAN_REP})); +__DECLARE_INSTANCE(const _D_rep, _LimG::_D_sNaN, + __STL_ARRAY_STATIC_INIT({__STL_DOUBLE_SNAN_REP})); +__DECLARE_INSTANCE(const _F_rep, _LimG::_F_inf, + __STL_ARRAY_STATIC_INIT({__STL_FLOAT_INF_REP})); +__DECLARE_INSTANCE(const _F_rep, _LimG::_F_qNaN, + __STL_ARRAY_STATIC_INIT({__STL_FLOAT_QNAN_REP})); +__DECLARE_INSTANCE(const _F_rep, _LimG::_F_sNaN, + __STL_ARRAY_STATIC_INIT({__STL_FLOAT_SNAN_REP})); #endif /* STATIC_DATA */ diff -Naur ./stlport/stl/_stdio_file.h ./stlport/stl/_stdio_file.h --- misc/build/STLport-4.0/stlport/stl/_stdio_file.h Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/stlport/stl/_stdio_file.h Tue Mar 20 12:06:12 2001 @@ -116,7 +116,7 @@ # define __STL_FILE_I_O_IDENTICAL 1 -#elif defined (__CYGWIN__) || defined(__FreeBSD__) +#elif defined (__CYGWIN__) || defined(__FreeBSD__) || ( defined(__GNUC__) && defined(__APPLE__) ) inline int _FILE_fd(const FILE& __f) { return __f._file; } inline char* _FILE_I_begin(const FILE& __f) { return (char*) __f._bf._base; } diff -Naur ./stlport/stl/c_locale.h ./stlport/stl/c_locale.h --- misc/build/STLport-4.0/stlport/stl/c_locale.h Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/stlport/stl/c_locale.h Tue Mar 20 12:10:32 2001 @@ -280,6 +280,17 @@ # define _Locale_PRINT _CTYPE_R # define _Locale_ALPHA _CTYPE_A +# elif defined (__APPLE__) + +# define _Locale_CNTRL _C +# define _Locale_UPPER _U +# define _Locale_LOWER _L +# define _Locale_DIGIT _D +# define _Locale_XDIGIT _X +# define _Locale_PUNCT _P +# define _Locale_SPACE _S +# define _Locale_PRINT _R +# define _Locale_ALPHA _A # elif defined(__STL_USE_GLIBC) /* linux, using the gnu compiler */ diff -Naur ./stlport/stl/debug/_debug.c ./stlport/stl/debug/_debug.c --- misc/build/STLport-4.0/stlport/stl/debug/_debug.c Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/stlport/stl/debug/_debug.c Tue Mar 20 12:09:21 2001 @@ -92,8 +92,11 @@ } # if ( __STL_STATIC_TEMPLATE_DATA > 0 ) + +# if !defined(__GNUC__) && !defined(__APPLE__) template const char* __stl_debug_engine<_Dummy>::_Message_table[_StlMsg_MAX] __STL_MESSAGE_TABLE_BODY; +# endif /* !defined(__GNUC__) && !defined(__APPLE__) */ # else __DECLARE_INSTANCE(const char*, __stl_debug_engine::_Message_table[_StlMsg_MAX], diff -Naur ./stlport/typeinfo ./stlport/typeinfo --- misc/build/STLport-4.0/stlport/typeinfo Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/stlport/typeinfo Tue Mar 20 12:07:42 2001 @@ -23,7 +23,7 @@ # ifndef __STL_NO_TYPEINFO -# if defined (__GNUC__) && (__GNUC_MINOR__ > 7) +# if defined (__GNUC__) && (__GNUC_MINOR__ > 7) && ! defined (__APPLE__) # include <../include/typeinfo> # elif defined (__STL_NO_NEW_NEW_HEADER) # include __STL_NATIVE_HEADER(typeinfo.h) diff -Naur ./stlport/typeinfo.h ./stlport/typeinfo.h --- misc/build/STLport-4.0/stlport/typeinfo.h Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/stlport/typeinfo.h Tue Mar 20 12:07:48 2001 @@ -23,7 +23,7 @@ # ifndef __STL_NO_TYPEINFO -# if defined (__GNUC__) && (__GNUC_MINOR__ >= 8 ) +# if defined (__GNUC__) && (__GNUC_MINOR__ >= 8 ) && ! defined (__APPLE__) # include <../include/typeinfo.h> # else # include __STL_NATIVE_HEADER(typeinfo.h) diff -Naur ./stlport/wchar.h ./stlport/wchar.h --- misc/build/STLport-4.0/stlport/wchar.h Thu Jul 13 18:53:26 2000 +++ misc/build/STLport-4.0/stlport/wchar.h Tue Mar 20 12:07:54 2001 @@ -27,7 +27,11 @@ using __STL_VENDOR_CSTD::strlen; using __STL_VENDOR_CSTD::strspn; # endif +# if defined (__GNUC__) && defined (__APPLE__) +# include __STL_NATIVE_C_HEADER(stddef.h) +# else # include __STL_NATIVE_C_HEADER(wchar.h) +# endif # endif /* WINCE */ diff -Naur ./test/eh/gcc-apple-macosx.mak ./test/eh/gcc-apple-macosx.mak --- misc/build/STLport-4.0/test/eh/gcc-apple-macosx.mak Wed Dec 31 16:00:00 1969 +++ misc/build/STLport-4.0/test/eh/gcc-apple-macosx.mak Tue Mar 20 12:04:27 2001 @@ -0,0 +1,113 @@ +# ;;; -*- Mode:makefile;-*- +# Generated automatically from Makefile.in by configure. +# This requires GNU make. + +srcdir = . +VPATH = . +DYLD_LIBRARY_PATH = ../../lib + +# point this to proper location +STL_INCL=-I../../stlport + +AUX_LIST=TestClass.cpp main.cpp nc_alloc.cpp random_number.cpp + +TEST_LIST=test_algo.cpp \ +test_algobase.cpp test_list.cpp test_slist.cpp \ +test_bit_vector.cpp test_vector.cpp \ +test_deque.cpp test_set.cpp test_map.cpp \ +test_hash_map.cpp test_hash_set.cpp test_rope.cpp \ +test_string.cpp test_bitset.cpp test_valarray.cpp \ +test_static_instances.cpp + +LIST=${AUX_LIST} ${TEST_LIST} + +OBJECTS = $(LIST:%.cpp=obj/%.o) $(STAT_MODULE) +D_OBJECTS = $(LIST:%.cpp=d_obj/%.o) $(STAT_MODULE) +NOSGI_OBJECTS = $(LIST:%.cpp=nosgi_obj/%.o) $(STAT_MODULE) + +EXECS = $(LIST:%.cpp=%) +TESTS = $(LIST:%.cpp=%.out) +TEST_EXE = ./eh_test +D_TEST_EXE = ./eh_test_d +NOSGI_TEST_EXE = ./eh_test_nosgi + +TEST = ./eh_test.out +D_TEST = ./eh_test_d.out +NOSGI_TEST = ./eh_test_nosgi.out + +CC = cc +CXX = $(CC) + +# dwa 12/22/99 -- had to turn off -ansi flag so we could use SGI IOSTREAMS +CXX_EXTRA_FLAGS = -W -Wno-sign-compare -Wno-unused -Wno-uninitialized -traditional-cpp -fno-coalesce +CXXFLAGS = -g -O ${STL_INCL} -I. ${CXX_EXTRA_FLAGS} -DEH_VECTOR_OPERATOR_NEW +D_CXXFLAGS = -g -O ${STL_INCL} -I. ${CXX_EXTRA_FLAGS} -DEH_VECTOR_OPERATOR_NEW -D__STL_DEBUG -D__STL_USE_STATIC_LIB +NOSGI_CXXFLAGS = -Wall -g -O2 ${STL_INCL} -I. ${CXX_EXTRA_FLAGS} -D__STL_NO_SGI_IOSTREAMS -D__STL_DEBUG_UNINITIALIZED -DEH_VECTOR_OPERATOR_NEW + +check: $(TEST) + +LIBS = -framework System +D_LIBSTLPORT = -L../../lib -lstlport_gcc_debug +LIBSTLPORT = -L../../lib -lstlport_gcc + +all: $(TEST_EXE) $(D_TEST_EXE) $(NOSGI_TEST_EXE) + +check_nosgi: $(NOSGI_TEST) +check_d: $(D_TEST) + + +$(TEST_EXE) : $(OBJECTS) + $(CXX) $(CXXFLAGS) $(OBJECTS) $(LIBSTLPORT) $(LIBS) -o $(TEST_EXE) + ln -sf ../../lib/libstlport_gcc.dylib + +$(D_TEST_EXE) : $(D_OBJECTS) + $(CXX) $(D_CXXFLAGS) $(D_OBJECTS) $(D_LIBSTLPORT) $(LIBS) -o $(D_TEST_EXE) + ln -sf ../../lib/libstlport_gcc_debug.dylib + +$(NOSGI_TEST_EXE) : $(NOSGI_OBJECTS) + $(CXX) $(NOSGI_CXXFLAGS) $(NOSGI_OBJECTS) $(LIBS) -o $(NOSGI_TEST_EXE) + + +$(TEST) : $(TEST_EXE) + $(TEST_EXE) + +$(D_TEST) : $(D_TEST_EXE) + $(D_TEST_EXE) + +$(NOSGI_TEST) : $(NOSGI_TEST_EXE) + $(NOSGI_TEST_EXE) + +SUFFIXES: .cpp.o.exe.out.res + +nosgi_obj/%.o : %.cpp + $(CXX) $(NOSGI_CXXFLAGS) $< -c -o $@ + +d_obj/%.o : %.cpp + $(CXX) $(D_CXXFLAGS) $< -c -o $@ + +obj/%.o : %.cpp + $(CXX) $(CXXFLAGS) $< -c -o $@ + +nosgi_obj/%.i : %.cpp + $(CXX) $(NOSGI_CXXFLAGS) $< -E -H > $@ + +d_obj/%.i : %.cpp + $(CXX) $(D_CXXFLAGS) $< -E -H > $@ + +obj/%.i : %.cpp + $(CXX) $(CXXFLAGS) $< -E -H > $@ + +%.out: %.cpp + $(CXX) $(CXXFLAGS) $< -c -USINGLE -DMAIN -g -o $*.o + $(CXX) $(CXXFLAGS) $*.o $(LIBS) -o $* + ./$* > $@ + -rm -f $* + +%.s: %.cpp + $(CXX) $(CXXFLAGS) -O4 -S -pto $< -o $@ + +%.E: %.cpp + $(CXX) $(CXXFLAGS) -E $< -o $@ + +clean: + -rm -fR ${TEST_EXE} *.o */*.o *.rpo *.obj *.out core *~ diff -Naur ./test/eh/test_static_instances.cpp ./test/eh/test_static_instances.cpp --- misc/build/STLport-4.0/test/eh/test_static_instances.cpp Wed Dec 31 16:00:00 1969 +++ misc/build/STLport-4.0/test/eh/test_static_instances.cpp Tue Mar 20 12:04:37 2001 @@ -0,0 +1,57 @@ +/* + * Copyright (c) 1999 + * Silicon Graphics Computer Systems, Inc. + * + * Copyright (c) 1999 + * Boris Fomitchev + * + * This material is provided "as is", with absolutely no warranty expressed + * or implied. Any use is at your own risk. + * + * Permission to use or copy this software for any purpose is hereby granted + * without fee, provided the above notices are retained on all copies. + * Permission to modify the code and to distribute modified code is granted, + * provided the above notices are retained, and a notice that the code was + * modified is included with the above copyright notice. + * + */ + +# ifndef __PUT_STATIC_DATA_MEMBERS_HERE +# define __PUT_STATIC_DATA_MEMBERS_HERE +# endif + +# ifndef __STL_LINK_TIME_INSTANTIATION +# define __STL_LINK_TIME_INSTANTIATION +# endif + +# include "Prefix.h" + +# if defined (EH_NEW_HEADERS) +#include +#else +#include +#endif + +// typedef rope TestRope; +typedef __STLPORT_STD::rope TestRope; + +# define __ROPE_TABLE_BODY = { \ +/* 0 */1, /* 1 */2, /* 2 */3, /* 3 */5, /* 4 */8, /* 5 */13, /* 6 */21, \ +/* 7 */34, /* 8 */55, /* 9 */89, /* 10 */144, /* 11 */233, /* 12 */377, \ +/* 13 */610, /* 14 */987, /* 15 */1597, /* 16 */2584, /* 17 */4181, \ +/* 18 */6765ul, /* 19 */10946ul, /* 20 */17711ul, /* 21 */28657ul, /* 22 */46368ul, \ +/* 23 */75025ul, /* 24 */121393ul, /* 25 */196418ul, /* 26 */317811ul, \ +/* 27 */514229ul, /* 28 */832040ul, /* 29 */1346269ul, /* 30 */2178309ul, \ +/* 31 */3524578ul, /* 32 */5702887ul, /* 33 */9227465ul, /* 34 */14930352ul, \ +/* 35 */24157817ul, /* 36 */39088169ul, /* 37 */63245986ul, /* 38 */102334155ul, \ +/* 39 */165580141ul, /* 40 */267914296ul, /* 41 */433494437ul, \ +/* 42 */701408733ul, /* 43 */1134903170ul, /* 44 */1836311903ul, \ +/* 45 */2971215073ul } + +__DECLARE_INSTANCE(const unsigned long, + TestRope::_S_min_len[__ROPE_DEPTH_SIZE], + __ROPE_TABLE_BODY); + +// Local Variables: +// mode:C++ +// End: diff -Naur ./test/regression/gcc-apple-macosx.mak ./test/regression/gcc-apple-macosx.mak --- misc/build/STLport-4.0/test/regression/gcc-apple-macosx.mak Wed Dec 31 16:00:00 1969 +++ misc/build/STLport-4.0/test/regression/gcc-apple-macosx.mak Tue Mar 20 12:04:48 2001 @@ -0,0 +1,169 @@ +# ;;; -*- Mode:makefile;-*- +# Generated automatically from Makefile.in by configure. +# This requires GNU make. +.SUFFIXES: .cc .cpp .o .exe .out + +srcdir = . +VPATH = . + +STL_INCL=-I../../stlport + +LIST = stl_test.cpp accum1.cpp accum2.cpp \ + adjdiff0.cpp adjdiff1.cpp adjdiff2.cpp \ + adjfind0.cpp adjfind1.cpp adjfind2.cpp \ + advance.cpp \ + alg1.cpp alg2.cpp alg3.cpp alg4.cpp alg5.cpp \ + bcompos1.cpp bcompos2.cpp \ + bind1st1.cpp bind1st2.cpp \ + bind2nd1.cpp bind2nd2.cpp \ + binsert1.cpp binsert2.cpp \ + binsrch1.cpp binsrch2.cpp \ + bnegate1.cpp bnegate2.cpp bvec1.cpp \ + copy1.cpp copy2.cpp copy3.cpp copy4.cpp \ + copyb.cpp copyb0.cpp \ + count0.cpp count1.cpp \ + countif1.cpp \ + deque1.cpp \ + divides.cpp \ + eqlrnge0.cpp eqlrnge1.cpp eqlrnge2.cpp \ + equal0.cpp equal1.cpp equal2.cpp \ + equalto.cpp \ + fill1.cpp filln1.cpp \ + find0.cpp find1.cpp \ + findif0.cpp findif1.cpp \ + finsert1.cpp finsert2.cpp \ + foreach0.cpp foreach1.cpp \ + func1.cpp func2.cpp func3.cpp \ + gener1.cpp gener2.cpp \ + genern1.cpp genern2.cpp \ + greateq.cpp greater.cpp \ + incl0.cpp incl1.cpp incl2.cpp \ + inplmrg1.cpp inplmrg2.cpp \ + inrprod0.cpp inrprod1.cpp inrprod2.cpp \ + insert1.cpp insert2.cpp \ + iota1.cpp \ + istmit1.cpp \ + iter1.cpp iter2.cpp iter3.cpp iter4.cpp \ + iterswp0.cpp iterswp1.cpp \ + less.cpp \ + lesseq.cpp \ + lexcmp1.cpp lexcmp2.cpp \ + list1.cpp list2.cpp list3.cpp list4.cpp \ + logicand.cpp logicnot.cpp \ + logicor.cpp \ + lwrbnd1.cpp lwrbnd2.cpp \ + map1.cpp \ + max1.cpp max2.cpp \ + maxelem1.cpp maxelem2.cpp \ + merge0.cpp merge1.cpp merge2.cpp \ + min1.cpp min2.cpp \ + minelem1.cpp minelem2.cpp \ + minus.cpp \ + mismtch0.cpp mismtch1.cpp mismtch2.cpp \ + mkheap0.cpp mkheap1.cpp \ + mmap1.cpp mmap2.cpp \ + modulus.cpp \ + mset1.cpp mset3.cpp mset4.cpp mset5.cpp \ + negate.cpp nequal.cpp \ + nextprm0.cpp nextprm1.cpp nextprm2.cpp \ + nthelem0.cpp nthelem1.cpp nthelem2.cpp \ + ostmit.cpp \ + pair0.cpp pair1.cpp pair2.cpp \ + parsrt0.cpp parsrt1.cpp parsrt2.cpp \ + parsrtc0.cpp parsrtc1.cpp parsrtc2.cpp \ + partsrt0.cpp \ + partsum0.cpp partsum1.cpp partsum2.cpp \ + pheap1.cpp pheap2.cpp \ + plus.cpp \ + pqueue1.cpp \ + prevprm0.cpp prevprm1.cpp prevprm2.cpp \ + ptition0.cpp ptition1.cpp \ + ptrbinf1.cpp ptrbinf2.cpp \ + ptrunf1.cpp ptrunf2.cpp \ + queue1.cpp \ + rawiter.cpp \ + remcopy1.cpp \ + remcpif1.cpp \ + remif1.cpp \ + remove1.cpp \ + repcpif1.cpp \ + replace0.cpp replace1.cpp replcpy1.cpp replif1.cpp \ + revbit1.cpp revbit2.cpp \ + revcopy1.cpp reverse1.cpp reviter1.cpp reviter2.cpp \ + rndshuf0.cpp rndshuf1.cpp rndshuf2.cpp \ + rotate0.cpp rotate1.cpp rotcopy0.cpp rotcopy1.cpp \ + search0.cpp search1.cpp search2.cpp \ + set1.cpp set2.cpp \ + setdiff0.cpp setdiff1.cpp setdiff2.cpp \ + setintr0.cpp setintr1.cpp setintr2.cpp \ + setsymd0.cpp setsymd1.cpp setsymd2.cpp \ + setunon0.cpp setunon1.cpp setunon2.cpp \ + sort1.cpp sort2.cpp \ + stack1.cpp stack2.cpp \ + stblptn0.cpp stblptn1.cpp \ + stblsrt1.cpp stblsrt2.cpp \ + swap1.cpp \ + swprnge1.cpp \ + times.cpp \ + trnsfrm1.cpp trnsfrm2.cpp \ + ucompos1.cpp ucompos2.cpp \ + unegate1.cpp unegate2.cpp \ + uniqcpy1.cpp uniqcpy2.cpp \ + unique1.cpp unique2.cpp \ + uprbnd1.cpp uprbnd2.cpp \ + vec1.cpp vec2.cpp vec3.cpp vec4.cpp vec5.cpp vec6.cpp vec7.cpp vec8.cpp \ + hmmap1.cpp hset2.cpp hmset1.cpp slist1.cpp hmap1.cpp string1.cpp bitset1.cpp + + +# STAT_MODULE=stat.o +OBJECTS = $(LIST:%.cpp=%.o) $(STAT_MODULE) +EXECS = $(LIST:%.cpp=%.exe) +TESTS = $(LIST:%.cpp=%.out) +TEST_EXE = stl_test.exe +TEST = stl_test.out + +CC = c++ +CXX = $(CC) + +# DEBUG_FLAGS= -D__STL_DEBUG + +CXXFLAGS = -D__STL_NO_SGI_IOSTREAMS -D__STL_WHOLE_NATIVE_STD -fhonor-std -D__HONOR_STD ${STL_INCL} -I. ${CXX_EXTRA_FLAGS} ${STL_VERSION_FLAGS} + +CXXFLAGS = -W -Wno-sign-compare -Wno-unused -Wno-uninitialized -D__STL_NO_SGI_IOSTREAMS ${STL_INCL} -I. ${CXX_EXTRA_FLAGS} ${STL_VERSION_FLAGS} -traditional-cpp -fno-coalesce + +LIBS = -framework System +LIBSTDCXX = + +check: $(TEST) + +$(TEST) : $(OBJECTS) + $(CXX) $(CXXFLAGS) ${REPO_FLAGS} $(OBJECTS) $(LIBS) -o $(TEST_EXE) + echo 'a string' | ./$(TEST_EXE) > $(TEST) + + +.cc.o .cxx.o .C.o .cpp.o: + ${CXX} ${CXXFLAGS} ${DEBUG_FLAGS} ${REPO_FLAGS} ${.IMPSRC} -c -o $*.o $< + +%.out: %.cpp + $(CXX) $(CXXFLAGS) ${DEBUG_FLAGS} -USINGLE -DMAIN=1 $< -c -o $*.o + $(CXX) $(CXXFLAGS) $*.o $(STAT_MODULE) $(LIBS) -o $*.exe + ./$*.exe > $@ + -rm -f $*.exe + +istmit1.out: istmit1.cpp + $(CXX) $(CXXFLAGS) ${DEBUG_FLAGS} ${REPO_FLAGS} $< $(STAT_MODULE) $(LIBSTDCXX) -lstdc++ $(LIBS) -o istmit1 + echo 'a string' | ./istmit1 > istmit1.out + -rm -f ./istmit1 + +$(STAT_MODULE): stat.cpp + $(CXX) $(CXXFLAGS) ${DEBUG_FLAGS} ${REPO_FLAGS} -c $< -o $@ + +%.s: %.cpp + $(CXX) $(CXXFLAGS) -O3 -fno-exceptions -D__STL_NO_EXCEPTIONS -S $< -o $*.s + +%.i: %.cpp + $(CXX) $(CXXFLAGS) ${DEBUG_FLAGS} -E $< > $@ + +clean: + -rm -Rf *.exe *.out *.o *.rpo core *.out +