Move the STLport to 2.95 where it belongs
authorEric Andersen <andersen@codepoet.org>
Sat, 9 Oct 2004 03:22:43 +0000 (03:22 -0000)
committerEric Andersen <andersen@codepoet.org>
Sat, 9 Oct 2004 03:22:43 +0000 (03:22 -0000)
toolchain/gcc/2.95/STLport-4.5.3.patch [new file with mode: 0644]
toolchain/gcc/STLport-4.5.3.patch [deleted file]
toolchain/gcc/gcc-uclibc-2.95.mk

diff --git a/toolchain/gcc/2.95/STLport-4.5.3.patch b/toolchain/gcc/2.95/STLport-4.5.3.patch
new file mode 100644 (file)
index 0000000..fee65f9
--- /dev/null
@@ -0,0 +1,407 @@
+diff -urN STLport-4.5.3/Makefile STLport-4.5.3-devel/Makefile
+--- STLport-4.5.3/Makefile     Wed Dec 31 17:00:00 1969
++++ STLport-4.5.3-devel/Makefile       Tue Jan  7 15:28:08 2003
+@@ -0,0 +1,44 @@
++# Makefile to compile stlport with uClibc
++#
++# Copyright (C) 2002 Erik Andersen <andersen@codepoet.org>
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++
++ARCH:=i386
++PREFIX:=/usr/$(ARCH)-linux-uclibc
++CROSS:= $(PREFIX)/../bin/$(ARCH)-linux-uclibc-
++CC=$(CROSS)gcc
++CXX=$(CROSS)g++
++AR = $(CROSS)ar
++STRIP = $(CROSS)strip --remove-section=.comment --remove-section=.note --strip-unneeded
++.EXPORT_ALL_VARIABLES:
++
++all:
++      rm -f lib/lib*
++      make -C src -f gcc-uClibc.mak all
++      (cd lib; rm -f libstdc++_debug.so; \
++      ln -fs libstdc++.so.4.5 libstdc++.so; \
++      ln -fs libstdc++.so.4.5 libstdc++.so.0;)
++      $(STRIP) lib/libstdc++.so.4.5; 
++
++clean:
++      make -C src -f gcc-uClibc.mak clean
++      rm -rf lib/*
++
++install:
++      (cd lib; \
++      cp -a libstdc++.a $(PREFIX)/lib; \
++      cp -a libstdc++.so libstdc++.so.0 libstdc++.so.4.5 $(PREFIX)/lib;)
++      cp -a stlport $(PREFIX)/include/c++
+diff -urN STLport-4.5.3/src/dll_main.cpp STLport-4.5.3-devel/src/dll_main.cpp
+--- STLport-4.5.3/src/dll_main.cpp     Sat Feb  2 16:11:56 2002
++++ STLport-4.5.3-devel/src/dll_main.cpp       Tue Jan  7 15:28:08 2003
+@@ -52,7 +52,7 @@
+ #  include <locale>
+ # endif
+-# if defined (_STLP_UNIX)
++# if defined (_STLP_UNIX) && defined (_STLP_PTHREADS) && ! defined (_STLP_USE_UCLIBC)
+ #  define _STLP_HAS_PERTHREAD_ALLOCATOR
+ # include <stl/_pthread_alloc.h>
+ # endif
+diff -urN STLport-4.5.3/src/gcc-uClibc.mak STLport-4.5.3-devel/src/gcc-uClibc.mak
+--- STLport-4.5.3/src/gcc-uClibc.mak   Wed Dec 31 17:00:00 1969
++++ STLport-4.5.3-devel/src/gcc-uClibc.mak     Tue Jan  7 15:28:08 2003
+@@ -0,0 +1,61 @@
++#
++# Basename for libraries
++#
++LIB_BASENAME:=libstdc++
++LIB_SHAREDNAME:=$(LIB_BASENAME).so
++LIB_SHAREDNAME_FULL:=$(LIB_SHAREDNAME).0
++
++#
++# guts for common stuff
++#
++#
++LINK:=$(AR) -cr
++#DYN_LINK:=$(CC) -fno-exceptions -lpthread -lm -shared -Wl,-soname=$(LIB_SHAREDNAME_FULL) -o
++DYN_LINK:=$(CC) -fno-exceptions -shared -Wl,-soname=$(LIB_SHAREDNAME_FULL) -o
++
++OBJEXT=o
++DYNEXT=so
++STEXT=a
++RM=rm -rf
++PATH_SEP=/
++MKDIR=mkdir -p
++COMP=GCC$(ARCH)
++INSTALL_STEP = install_unix 
++
++all: release_dynamic release_static
++#all: all_dynamic all_static symbolic_links 
++
++include common_macros.mak
++STLDEBUG_NAME:=$(LIB_BASENAME).debug
++
++# Lets disable exception support, since this saves over 200k...
++DEFINE_FLAGS:= -fno-exceptions
++#DEFINE_FLAGS:= -D_STLP_NO_EXCEPTIONS -fno-exceptions -DSTL_NO_EXCEPTIONS
++
++#DEFINE_FLAGS+= -D_STLP_USE_UCLIBC -D_STLP_NO_WCHAR_T \
++#     -DUSE_SPRINTF_INSTEAD -D_ISOC99_SOURCE
++
++WARNING_FLAGS:= -W -Wno-sign-compare -Wno-unused -Wno-uninitialized
++INCLUDE_FLAGS = -I${STLPORT_DIR}
++CXXFLAGS_COMMON = $(WARNING_FLAGS)  $(DEFINE_FLAGS) $(INCLUDE_FLAGS)
++
++CXXFLAGS_RELEASE_static = $(CXXFLAGS_COMMON) -Os
++CXXFLAGS_RELEASE_dynamic = $(CXXFLAGS_COMMON) -Os -fPIC
++
++CXXFLAGS_DEBUG_static = $(CXXFLAGS_COMMON) -O -g
++CXXFLAGS_DEBUG_dynamic = $(CXXFLAGS_COMMON) -O -g -fPIC
++
++CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_DEBUG_static) -D_STLP_DEBUG
++CXXFLAGS_STLDEBUG_dynamic = $(CXXFLAGS_DEBUG_dynamic) -D_STLP_DEBUG -fPIC
++
++include common_percent_rules.mak
++include common_rules.mak
++
++
++#install: all
++#     cp -p $(LIB_TARGET) ${D_LIB_TARGET} ../lib
++
++#%.s: %.cpp
++#     $(CXX) $(CXXFLAGS) -O4 -S -pto $<  -o $@
++
++
+diff -urN STLport-4.5.3/src/num_put_float.cpp STLport-4.5.3-devel/src/num_put_float.cpp
+--- STLport-4.5.3/src/num_put_float.cpp        Fri Jan 18 15:06:52 2002
++++ STLport-4.5.3-devel/src/num_put_float.cpp  Tue Jan  7 15:28:08 2003
+@@ -65,6 +65,12 @@
+ # endif
++#  if defined(_STLP_USE_UCLIBC)
++#    define __USE_ISOC99 1
++#    include <math.h>
++#    include <float.h>
++#  endif
++
+ # include <cstdlib>
+ #if defined (_MSC_VER) || defined (__MINGW32__) || defined (__BORLANDC__) || defined (__DJGPP)  || defined (_STLP_SCO_OPENSERVER) || defined (__NCR_SVR)
+@@ -209,7 +215,7 @@
+ #ifdef USE_SPRINTF_INSTEAD
+-#elif defined (__hpux) || defined (__DJGPP) || ( defined(_STLP_USE_GLIBC) && ! defined (__MSL__) )
++#elif defined (__hpux) || defined (__DJGPP) || ( defined(_STLP_USE_GLIBC) && ! defined (__MSL__) ) || defined (_STLP_USE_UCLIBC)
+ #  if defined (isfinite) 
+ inline bool _Stl_is_nan_or_inf(double x) { return !isfinite(x); }
+ #  else
+@@ -238,7 +244,7 @@
+ }
+ inline bool _Stl_is_neg_inf(double x)    { return _fpclass(x) == _FPCLASS_NINF; }
+ inline bool _Stl_is_neg_nan(double x)    { return _isnan(x) && _copysign(1., x) < 0 ; } 
+-#elif defined(__MRC__) || defined(__SC__)             //*TY 02/24/2000 - added support for MPW
++#elif defined(__MRC__) || defined(__SC__)
+ bool _Stl_is_nan_or_inf(double x) { return isnan(x) || !isfinite(x); }
+ bool _Stl_is_inf(double x)        { return !isfinite(x); }
+ bool _Stl_is_neg_inf(double x)    { return !isfinite(x) && signbit(x); }
+@@ -280,7 +286,7 @@
+   inline char* _Stl_qfcvtR(long double x, int n, int* pt, int* sign, char* buf)
+     { return fcvtbuf(x, n, pt, sign, buf); }
+ # endif
+-#elif defined (_STLP_USE_GLIBC)
++#elif defined (_STLP_USE_GLIBC) || defined(_STLP_USE_UCLIBC)
+   inline char* _Stl_ecvtR(double x, int n, int* pt, int* sign, char* buf)
+     { return buf + ecvt_r(x, n, pt, sign, buf, NDIG+2); }
+   inline char* _Stl_fcvtR(double x, int n, int* pt, int* sign, char* buf)
+diff -urN STLport-4.5.3/src/stdio_streambuf.cpp STLport-4.5.3-devel/src/stdio_streambuf.cpp
+--- STLport-4.5.3/src/stdio_streambuf.cpp      Thu Jan 10 11:41:52 2002
++++ STLport-4.5.3-devel/src/stdio_streambuf.cpp        Tue Jan  7 15:28:08 2003
+@@ -82,7 +82,7 @@
+     _STLP_VENDOR_CSTD::fgetpos(_M_file, &pos);
+     // added 21 june 00 mdb,rjf,wjs: glibc 2.2 changed fpos_t to be a struct instead
+     // of a primitive type
+-#if (defined(__GLIBC__) && ( (__GLIBC__ > 2) || ( (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 2) ) ) )
++#if defined(_STLP_USE_UCLIBC) || (defined(__GLIBC__) && defined(_STLP_USE_GLIBC) && ( (__GLIBC__ > 2) || ( (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 2) ) ) )
+     return pos_type((streamoff)pos.__pos);
+ #elif defined(__ISCPP__) || defined(__MVS__) || (__OS400__)
+      return pos_type(pos.__fpos_elem[ 0 ]);
+@@ -101,13 +101,16 @@
+   // added 21 june 00 mdb,rjf,wjs: glibc 2.2 changed fpos_t to be a struct instead
+   // of a primitive type
+-#if (defined(__GLIBC__) && ( (__GLIBC__ > 2) || ( (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 2) ) ) )
++#if (defined(__GLIBC__) && defined(_STLP_USE_GLIBC) && ( (__GLIBC__ > 2) || ( (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 2) ) ) )
+   fpos_t p;
+   p.__pos = pos;
+   memset( &(p.__state), 0, sizeof(p.__state) );
+ #elif defined(__MVS__) || (__OS400__)
+   fpos_t p;
+   p.__fpos_elem[0] = pos;
++#elif defined(_STLP_USE_UCLIBC)
++  fpos_t p;
++  p.__pos = pos;
+ #else
+   fpos_t p(pos);
+ #endif
+diff -urN STLport-4.5.3/stlport/config/_prolog.h STLport-4.5.3-devel/stlport/config/_prolog.h
+--- STLport-4.5.3/stlport/config/_prolog.h     Sun Oct 28 13:26:44 2001
++++ STLport-4.5.3-devel/stlport/config/_prolog.h       Tue Jan  7 15:28:08 2003
+@@ -1,3 +1,8 @@
++/* Evil hack to make sure everything behaves itself */
++#define _STLP_USE_UCLIBC
++//#define _STLP_NO_WCHAR_T
++//#define _ISOC99_SOURCE
++//#define USE_SPRINTF_INSTEAD
+ #if defined (_STLP_MSVC) || defined (__ICL) || defined (__BORLANDC__)
+diff -urN STLport-4.5.3/stlport/config/stl_gcc.h STLport-4.5.3-devel/stlport/config/stl_gcc.h
+--- STLport-4.5.3/stlport/config/stl_gcc.h     Thu Jan 10 11:41:58 2002
++++ STLport-4.5.3-devel/stlport/config/stl_gcc.h       Tue Jan  7 15:28:08 2003
+@@ -3,7 +3,7 @@
+  */
+ /* Systems having GLIBC installed have different traits */
+-#if ! defined (_STLP_USE_GLIBC) && ( defined (__linux__) || defined (__CYGWIN__) )
++#if ! defined (_STLP_USE_GLIBC)  && ! defined (_STLP_USE_UCLIBC) && ( defined (__linux__) || defined (__CYGWIN__) )
+ # define _STLP_USE_GLIBC
+ #endif
+diff -urN STLport-4.5.3/stlport/cstdlib STLport-4.5.3-devel/stlport/cstdlib
+--- STLport-4.5.3/stlport/cstdlib      Thu Aug 23 15:51:54 2001
++++ STLport-4.5.3-devel/stlport/cstdlib        Tue Jan  7 15:28:08 2003
+@@ -55,9 +55,11 @@
+ using _STLP_VENDOR_CSTD::atof;
+ using _STLP_VENDOR_CSTD::atoi;
+ using _STLP_VENDOR_CSTD::atol;
++# ifndef _STLP_USE_UCLIBC
+ using _STLP_VENDOR_CSTD::mblen;
+ using _STLP_VENDOR_CSTD::mbstowcs;
+ using _STLP_VENDOR_CSTD::mbtowc;
++# endif
+ using _STLP_VENDOR_CSTD::strtod;
+ using _STLP_VENDOR_CSTD::strtol;
+ using _STLP_VENDOR_CSTD::strtoul;
+diff -urN STLport-4.5.3/stlport/stl/_config.h STLport-4.5.3-devel/stlport/stl/_config.h
+--- STLport-4.5.3/stlport/stl/_config.h        Fri Jan 18 15:08:36 2002
++++ STLport-4.5.3-devel/stlport/stl/_config.h  Tue Jan  7 15:28:08 2003
+@@ -26,6 +26,16 @@
+ #ifndef _STLP_CONFIG_H
+ # define _STLP_CONFIG_H
++/* Make the STLport headers provide uClibc support by default */
++#define _STLP_NO_EXCEPTIONS           1
++#define STL_NO_EXCEPTIONS             1
++#define _STLP_USE_UCLIBC              1
++//#define _STLP_NO_WCHAR_T            1
++#define _STLP_NO_LONG_DOUBLE          1
++#define USE_SPRINTF_INSTEAD           1
++#define _ISOC99_SOURCE                        1
++#define _STLP_NO_ANACHRONISMS         1
++
+ /*
+  * Purpose of this file :
+  *
+@@ -164,7 +174,7 @@
+ /* Operating system recognition (basic) */
+ # if defined (__unix) || defined (__linux__) || defined (__QNX__) || defined (_AIX)  || defined (__NetBSD__) || defined (__Lynx__)
+ #  define _STLP_UNIX 1
+-#  if defined (__linux__) && ! defined (_STLP_USE_GLIBC)
++#  if defined (__linux__) && ! defined (_STLP_USE_GLIBC) && ! defined (_STLP_USE_UCLIBC)
+ #   define _STLP_USE_GLIBC 1
+ #  endif
+ # elif defined(macintosh) || defined (_MAC)
+diff -urN STLport-4.5.3/stlport/stl/_stdio_file.h STLport-4.5.3-devel/stlport/stl/_stdio_file.h
+--- STLport-4.5.3/stlport/stl/_stdio_file.h    Fri Jan 18 15:07:00 2002
++++ STLport-4.5.3-devel/stlport/stl/_stdio_file.h      Tue Jan  7 15:28:08 2003
+@@ -634,6 +634,112 @@
+ }
+ # define _STLP_FILE_I_O_IDENTICAL
++#elif defined(_STLP_USE_UCLIBC)
++
++#if defined(__MASK_READING)
++
++inline int   _FILE_fd(const FILE *__f) { return __f->__filedes; }
++
++//       Returns a pointer to the beginning of the buffer.
++inline char* _FILE_I_begin(const FILE *__f) { return (char*) __f->__bufstart; }
++
++//       Returns the current read/write position within the buffer.
++inline char* _FILE_I_next(const FILE *__f) { return (char*) __f->__bufpos; }
++
++//       Returns a pointer immediately past the end of the buffer.
++inline char* _FILE_I_end(const FILE *__f) { return (char*)__f->__bufend; }
++
++//       Returns the number of characters remaining in the buffer, i.e.
++//       _FILE_[IO]_end(__f) - _FILE_[IO]_next(__f).
++inline ptrdiff_t _FILE_I_avail(const FILE *__f) 
++  { return __f->__bufgetc_u - __f->__bufpos; }
++
++//       Increments the current read/write position by 1, returning the 
++//       character at the old position.
++inline char& _FILE_I_preincr(FILE *__f)  { return *(char*)(++__f->__bufpos); }
++
++//       Increments the current read/write position by 1, returning the 
++//       character at the old position.
++inline char& _FILE_I_postincr(FILE *__f)  { return *(char*)(__f->__bufpos++); }
++
++//       Decrements the current read/write position by 1, returning the 
++//       character at the old position.
++inline char& _FILE_I_predecr(FILE *__f)  { return *(char*)(--__f->__bufpos); }
++
++//       Decrements the current read/write position by 1, returning the 
++//       character at the old position.
++inline char& _FILE_I_postdecr(FILE *__f)  { return *(char*)(__f->__bufpos--); }
++
++//       Increments the current read/write position by __n.
++inline void  _FILE_I_bump(FILE *__f, int __n) { __f->__bufpos += __n; }
++
++//       Sets the beginning of the bufer to __begin, the current read/write
++//       position to __next, and the buffer's past-the-end pointer to __end.
++//       If any of those pointers is null, then all of them must be null.
++inline void _FILE_I_set(FILE *__f, char* __begin, char* __next, char* __end)
++{
++      __f->__bufstart = (unsigned char*)__begin;
++      __f->__bufpos  =  (unsigned char*)__next;
++      __f->__bufend  =  (unsigned char*)__end;
++      __f->__bufgetc_u = (unsigned char*)__begin;
++      __f->__bufputc_u = (unsigned char*)__end;
++}
++
++# define _STLP_FILE_I_O_IDENTICAL
++
++#else    // Support old stdio for a little while.
++
++inline int   _FILE_fd(const FILE *__f) { return __f->filedes; }
++
++//       Returns a pointer to the beginning of the buffer.
++inline char* _FILE_I_begin(const FILE *__f) { return (char*) __f->bufstart; }
++
++//       Returns the current read/write position within the buffer.
++inline char* _FILE_I_next(const FILE *__f) { return (char*) __f->bufpos; }
++
++//       Returns a pointer immediately past the end of the buffer.
++inline char* _FILE_I_end(const FILE *__f) { return (char*)__f->bufend; }
++
++//       Returns the number of characters remaining in the buffer, i.e.
++//       _FILE_[IO]_end(__f) - _FILE_[IO]_next(__f).
++inline ptrdiff_t _FILE_I_avail(const FILE *__f) 
++  { return __f->bufgetc - __f->bufpos; }
++
++//       Increments the current read/write position by 1, returning the 
++//       character at the old position.
++inline char& _FILE_I_preincr(FILE *__f)  { return *(char*)(++__f->bufpos); }
++
++//       Increments the current read/write position by 1, returning the 
++//       character at the old position.
++inline char& _FILE_I_postincr(FILE *__f)  { return *(char*)(__f->bufpos++); }
++
++//       Decrements the current read/write position by 1, returning the 
++//       character at the old position.
++inline char& _FILE_I_predecr(FILE *__f)  { return *(char*)(--__f->bufpos); }
++
++//       Decrements the current read/write position by 1, returning the 
++//       character at the old position.
++inline char& _FILE_I_postdecr(FILE *__f)  { return *(char*)(__f->bufpos--); }
++
++//       Increments the current read/write position by __n.
++inline void  _FILE_I_bump(FILE *__f, int __n) { __f->bufpos += __n; }
++
++//       Sets the beginning of the bufer to __begin, the current read/write
++//       position to __next, and the buffer's past-the-end pointer to __end.
++//       If any of those pointers is null, then all of them must be null.
++inline void _FILE_I_set(FILE *__f, char* __begin, char* __next, char* __end)
++{
++      __f->bufstart = (unsigned char*)__begin;
++      __f->bufpos  =  (unsigned char*)__next;
++      __f->bufend  =  (unsigned char*)__end;
++      __f->bufgetc = (unsigned char*)__begin;
++      __f->bufputc = (unsigned char*)__end;
++}
++
++# define _STLP_FILE_I_O_IDENTICAL
++
++#endif
++
+ #else  /* A C library that we don't have an implementation for. */
+ # error The C++ I/O library is not configured for this compiler
+diff -urN STLport-4.5.3/stlport/stl/c_locale.h STLport-4.5.3-devel/stlport/stl/c_locale.h
+--- STLport-4.5.3/stlport/stl/c_locale.h       Fri Jan 18 15:07:00 2002
++++ STLport-4.5.3-devel/stlport/stl/c_locale.h Wed Jan  8 10:58:10 2003
+@@ -401,6 +401,21 @@
+ #  define _Locale_SPACE _S
+ #  define _Locale_PRINT (_P | _U | _L | _N | _B)
+ #  define _Locale_ALPHA (_U | _L)
++
++# elif defined(_STLP_USE_UCLIBC) /* linux, using the gnu compiler */
++
++#  define _Locale_CNTRL  _IScntrl
++#  define _Locale_UPPER  _ISupper
++#  define _Locale_LOWER  _ISlower
++#  define _Locale_DIGIT  _ISdigit
++#  define _Locale_XDIGIT _ISxdigit
++#  define _Locale_PUNCT  _ISpunct
++#  define _Locale_SPACE  _ISspace
++#  define _Locale_PRINT  _ISprint
++#  define _Locale_ALPHA  _ISalpha
++
++#else
++#  error Unknown Locale
+ #endif
+ # endif /* _STLP_C_LOCALE_H */
diff --git a/toolchain/gcc/STLport-4.5.3.patch b/toolchain/gcc/STLport-4.5.3.patch
deleted file mode 100644 (file)
index fee65f9..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-diff -urN STLport-4.5.3/Makefile STLport-4.5.3-devel/Makefile
---- STLport-4.5.3/Makefile     Wed Dec 31 17:00:00 1969
-+++ STLport-4.5.3-devel/Makefile       Tue Jan  7 15:28:08 2003
-@@ -0,0 +1,44 @@
-+# Makefile to compile stlport with uClibc
-+#
-+# Copyright (C) 2002 Erik Andersen <andersen@codepoet.org>
-+#
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+# General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+
-+ARCH:=i386
-+PREFIX:=/usr/$(ARCH)-linux-uclibc
-+CROSS:= $(PREFIX)/../bin/$(ARCH)-linux-uclibc-
-+CC=$(CROSS)gcc
-+CXX=$(CROSS)g++
-+AR = $(CROSS)ar
-+STRIP = $(CROSS)strip --remove-section=.comment --remove-section=.note --strip-unneeded
-+.EXPORT_ALL_VARIABLES:
-+
-+all:
-+      rm -f lib/lib*
-+      make -C src -f gcc-uClibc.mak all
-+      (cd lib; rm -f libstdc++_debug.so; \
-+      ln -fs libstdc++.so.4.5 libstdc++.so; \
-+      ln -fs libstdc++.so.4.5 libstdc++.so.0;)
-+      $(STRIP) lib/libstdc++.so.4.5; 
-+
-+clean:
-+      make -C src -f gcc-uClibc.mak clean
-+      rm -rf lib/*
-+
-+install:
-+      (cd lib; \
-+      cp -a libstdc++.a $(PREFIX)/lib; \
-+      cp -a libstdc++.so libstdc++.so.0 libstdc++.so.4.5 $(PREFIX)/lib;)
-+      cp -a stlport $(PREFIX)/include/c++
-diff -urN STLport-4.5.3/src/dll_main.cpp STLport-4.5.3-devel/src/dll_main.cpp
---- STLport-4.5.3/src/dll_main.cpp     Sat Feb  2 16:11:56 2002
-+++ STLport-4.5.3-devel/src/dll_main.cpp       Tue Jan  7 15:28:08 2003
-@@ -52,7 +52,7 @@
- #  include <locale>
- # endif
--# if defined (_STLP_UNIX)
-+# if defined (_STLP_UNIX) && defined (_STLP_PTHREADS) && ! defined (_STLP_USE_UCLIBC)
- #  define _STLP_HAS_PERTHREAD_ALLOCATOR
- # include <stl/_pthread_alloc.h>
- # endif
-diff -urN STLport-4.5.3/src/gcc-uClibc.mak STLport-4.5.3-devel/src/gcc-uClibc.mak
---- STLport-4.5.3/src/gcc-uClibc.mak   Wed Dec 31 17:00:00 1969
-+++ STLport-4.5.3-devel/src/gcc-uClibc.mak     Tue Jan  7 15:28:08 2003
-@@ -0,0 +1,61 @@
-+#
-+# Basename for libraries
-+#
-+LIB_BASENAME:=libstdc++
-+LIB_SHAREDNAME:=$(LIB_BASENAME).so
-+LIB_SHAREDNAME_FULL:=$(LIB_SHAREDNAME).0
-+
-+#
-+# guts for common stuff
-+#
-+#
-+LINK:=$(AR) -cr
-+#DYN_LINK:=$(CC) -fno-exceptions -lpthread -lm -shared -Wl,-soname=$(LIB_SHAREDNAME_FULL) -o
-+DYN_LINK:=$(CC) -fno-exceptions -shared -Wl,-soname=$(LIB_SHAREDNAME_FULL) -o
-+
-+OBJEXT=o
-+DYNEXT=so
-+STEXT=a
-+RM=rm -rf
-+PATH_SEP=/
-+MKDIR=mkdir -p
-+COMP=GCC$(ARCH)
-+INSTALL_STEP = install_unix 
-+
-+all: release_dynamic release_static
-+#all: all_dynamic all_static symbolic_links 
-+
-+include common_macros.mak
-+STLDEBUG_NAME:=$(LIB_BASENAME).debug
-+
-+# Lets disable exception support, since this saves over 200k...
-+DEFINE_FLAGS:= -fno-exceptions
-+#DEFINE_FLAGS:= -D_STLP_NO_EXCEPTIONS -fno-exceptions -DSTL_NO_EXCEPTIONS
-+
-+#DEFINE_FLAGS+= -D_STLP_USE_UCLIBC -D_STLP_NO_WCHAR_T \
-+#     -DUSE_SPRINTF_INSTEAD -D_ISOC99_SOURCE
-+
-+WARNING_FLAGS:= -W -Wno-sign-compare -Wno-unused -Wno-uninitialized
-+INCLUDE_FLAGS = -I${STLPORT_DIR}
-+CXXFLAGS_COMMON = $(WARNING_FLAGS)  $(DEFINE_FLAGS) $(INCLUDE_FLAGS)
-+
-+CXXFLAGS_RELEASE_static = $(CXXFLAGS_COMMON) -Os
-+CXXFLAGS_RELEASE_dynamic = $(CXXFLAGS_COMMON) -Os -fPIC
-+
-+CXXFLAGS_DEBUG_static = $(CXXFLAGS_COMMON) -O -g
-+CXXFLAGS_DEBUG_dynamic = $(CXXFLAGS_COMMON) -O -g -fPIC
-+
-+CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_DEBUG_static) -D_STLP_DEBUG
-+CXXFLAGS_STLDEBUG_dynamic = $(CXXFLAGS_DEBUG_dynamic) -D_STLP_DEBUG -fPIC
-+
-+include common_percent_rules.mak
-+include common_rules.mak
-+
-+
-+#install: all
-+#     cp -p $(LIB_TARGET) ${D_LIB_TARGET} ../lib
-+
-+#%.s: %.cpp
-+#     $(CXX) $(CXXFLAGS) -O4 -S -pto $<  -o $@
-+
-+
-diff -urN STLport-4.5.3/src/num_put_float.cpp STLport-4.5.3-devel/src/num_put_float.cpp
---- STLport-4.5.3/src/num_put_float.cpp        Fri Jan 18 15:06:52 2002
-+++ STLport-4.5.3-devel/src/num_put_float.cpp  Tue Jan  7 15:28:08 2003
-@@ -65,6 +65,12 @@
- # endif
-+#  if defined(_STLP_USE_UCLIBC)
-+#    define __USE_ISOC99 1
-+#    include <math.h>
-+#    include <float.h>
-+#  endif
-+
- # include <cstdlib>
- #if defined (_MSC_VER) || defined (__MINGW32__) || defined (__BORLANDC__) || defined (__DJGPP)  || defined (_STLP_SCO_OPENSERVER) || defined (__NCR_SVR)
-@@ -209,7 +215,7 @@
- #ifdef USE_SPRINTF_INSTEAD
--#elif defined (__hpux) || defined (__DJGPP) || ( defined(_STLP_USE_GLIBC) && ! defined (__MSL__) )
-+#elif defined (__hpux) || defined (__DJGPP) || ( defined(_STLP_USE_GLIBC) && ! defined (__MSL__) ) || defined (_STLP_USE_UCLIBC)
- #  if defined (isfinite) 
- inline bool _Stl_is_nan_or_inf(double x) { return !isfinite(x); }
- #  else
-@@ -238,7 +244,7 @@
- }
- inline bool _Stl_is_neg_inf(double x)    { return _fpclass(x) == _FPCLASS_NINF; }
- inline bool _Stl_is_neg_nan(double x)    { return _isnan(x) && _copysign(1., x) < 0 ; } 
--#elif defined(__MRC__) || defined(__SC__)             //*TY 02/24/2000 - added support for MPW
-+#elif defined(__MRC__) || defined(__SC__)
- bool _Stl_is_nan_or_inf(double x) { return isnan(x) || !isfinite(x); }
- bool _Stl_is_inf(double x)        { return !isfinite(x); }
- bool _Stl_is_neg_inf(double x)    { return !isfinite(x) && signbit(x); }
-@@ -280,7 +286,7 @@
-   inline char* _Stl_qfcvtR(long double x, int n, int* pt, int* sign, char* buf)
-     { return fcvtbuf(x, n, pt, sign, buf); }
- # endif
--#elif defined (_STLP_USE_GLIBC)
-+#elif defined (_STLP_USE_GLIBC) || defined(_STLP_USE_UCLIBC)
-   inline char* _Stl_ecvtR(double x, int n, int* pt, int* sign, char* buf)
-     { return buf + ecvt_r(x, n, pt, sign, buf, NDIG+2); }
-   inline char* _Stl_fcvtR(double x, int n, int* pt, int* sign, char* buf)
-diff -urN STLport-4.5.3/src/stdio_streambuf.cpp STLport-4.5.3-devel/src/stdio_streambuf.cpp
---- STLport-4.5.3/src/stdio_streambuf.cpp      Thu Jan 10 11:41:52 2002
-+++ STLport-4.5.3-devel/src/stdio_streambuf.cpp        Tue Jan  7 15:28:08 2003
-@@ -82,7 +82,7 @@
-     _STLP_VENDOR_CSTD::fgetpos(_M_file, &pos);
-     // added 21 june 00 mdb,rjf,wjs: glibc 2.2 changed fpos_t to be a struct instead
-     // of a primitive type
--#if (defined(__GLIBC__) && ( (__GLIBC__ > 2) || ( (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 2) ) ) )
-+#if defined(_STLP_USE_UCLIBC) || (defined(__GLIBC__) && defined(_STLP_USE_GLIBC) && ( (__GLIBC__ > 2) || ( (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 2) ) ) )
-     return pos_type((streamoff)pos.__pos);
- #elif defined(__ISCPP__) || defined(__MVS__) || (__OS400__)
-      return pos_type(pos.__fpos_elem[ 0 ]);
-@@ -101,13 +101,16 @@
-   // added 21 june 00 mdb,rjf,wjs: glibc 2.2 changed fpos_t to be a struct instead
-   // of a primitive type
--#if (defined(__GLIBC__) && ( (__GLIBC__ > 2) || ( (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 2) ) ) )
-+#if (defined(__GLIBC__) && defined(_STLP_USE_GLIBC) && ( (__GLIBC__ > 2) || ( (__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 2) ) ) )
-   fpos_t p;
-   p.__pos = pos;
-   memset( &(p.__state), 0, sizeof(p.__state) );
- #elif defined(__MVS__) || (__OS400__)
-   fpos_t p;
-   p.__fpos_elem[0] = pos;
-+#elif defined(_STLP_USE_UCLIBC)
-+  fpos_t p;
-+  p.__pos = pos;
- #else
-   fpos_t p(pos);
- #endif
-diff -urN STLport-4.5.3/stlport/config/_prolog.h STLport-4.5.3-devel/stlport/config/_prolog.h
---- STLport-4.5.3/stlport/config/_prolog.h     Sun Oct 28 13:26:44 2001
-+++ STLport-4.5.3-devel/stlport/config/_prolog.h       Tue Jan  7 15:28:08 2003
-@@ -1,3 +1,8 @@
-+/* Evil hack to make sure everything behaves itself */
-+#define _STLP_USE_UCLIBC
-+//#define _STLP_NO_WCHAR_T
-+//#define _ISOC99_SOURCE
-+//#define USE_SPRINTF_INSTEAD
- #if defined (_STLP_MSVC) || defined (__ICL) || defined (__BORLANDC__)
-diff -urN STLport-4.5.3/stlport/config/stl_gcc.h STLport-4.5.3-devel/stlport/config/stl_gcc.h
---- STLport-4.5.3/stlport/config/stl_gcc.h     Thu Jan 10 11:41:58 2002
-+++ STLport-4.5.3-devel/stlport/config/stl_gcc.h       Tue Jan  7 15:28:08 2003
-@@ -3,7 +3,7 @@
-  */
- /* Systems having GLIBC installed have different traits */
--#if ! defined (_STLP_USE_GLIBC) && ( defined (__linux__) || defined (__CYGWIN__) )
-+#if ! defined (_STLP_USE_GLIBC)  && ! defined (_STLP_USE_UCLIBC) && ( defined (__linux__) || defined (__CYGWIN__) )
- # define _STLP_USE_GLIBC
- #endif
-diff -urN STLport-4.5.3/stlport/cstdlib STLport-4.5.3-devel/stlport/cstdlib
---- STLport-4.5.3/stlport/cstdlib      Thu Aug 23 15:51:54 2001
-+++ STLport-4.5.3-devel/stlport/cstdlib        Tue Jan  7 15:28:08 2003
-@@ -55,9 +55,11 @@
- using _STLP_VENDOR_CSTD::atof;
- using _STLP_VENDOR_CSTD::atoi;
- using _STLP_VENDOR_CSTD::atol;
-+# ifndef _STLP_USE_UCLIBC
- using _STLP_VENDOR_CSTD::mblen;
- using _STLP_VENDOR_CSTD::mbstowcs;
- using _STLP_VENDOR_CSTD::mbtowc;
-+# endif
- using _STLP_VENDOR_CSTD::strtod;
- using _STLP_VENDOR_CSTD::strtol;
- using _STLP_VENDOR_CSTD::strtoul;
-diff -urN STLport-4.5.3/stlport/stl/_config.h STLport-4.5.3-devel/stlport/stl/_config.h
---- STLport-4.5.3/stlport/stl/_config.h        Fri Jan 18 15:08:36 2002
-+++ STLport-4.5.3-devel/stlport/stl/_config.h  Tue Jan  7 15:28:08 2003
-@@ -26,6 +26,16 @@
- #ifndef _STLP_CONFIG_H
- # define _STLP_CONFIG_H
-+/* Make the STLport headers provide uClibc support by default */
-+#define _STLP_NO_EXCEPTIONS           1
-+#define STL_NO_EXCEPTIONS             1
-+#define _STLP_USE_UCLIBC              1
-+//#define _STLP_NO_WCHAR_T            1
-+#define _STLP_NO_LONG_DOUBLE          1
-+#define USE_SPRINTF_INSTEAD           1
-+#define _ISOC99_SOURCE                        1
-+#define _STLP_NO_ANACHRONISMS         1
-+
- /*
-  * Purpose of this file :
-  *
-@@ -164,7 +174,7 @@
- /* Operating system recognition (basic) */
- # if defined (__unix) || defined (__linux__) || defined (__QNX__) || defined (_AIX)  || defined (__NetBSD__) || defined (__Lynx__)
- #  define _STLP_UNIX 1
--#  if defined (__linux__) && ! defined (_STLP_USE_GLIBC)
-+#  if defined (__linux__) && ! defined (_STLP_USE_GLIBC) && ! defined (_STLP_USE_UCLIBC)
- #   define _STLP_USE_GLIBC 1
- #  endif
- # elif defined(macintosh) || defined (_MAC)
-diff -urN STLport-4.5.3/stlport/stl/_stdio_file.h STLport-4.5.3-devel/stlport/stl/_stdio_file.h
---- STLport-4.5.3/stlport/stl/_stdio_file.h    Fri Jan 18 15:07:00 2002
-+++ STLport-4.5.3-devel/stlport/stl/_stdio_file.h      Tue Jan  7 15:28:08 2003
-@@ -634,6 +634,112 @@
- }
- # define _STLP_FILE_I_O_IDENTICAL
-+#elif defined(_STLP_USE_UCLIBC)
-+
-+#if defined(__MASK_READING)
-+
-+inline int   _FILE_fd(const FILE *__f) { return __f->__filedes; }
-+
-+//       Returns a pointer to the beginning of the buffer.
-+inline char* _FILE_I_begin(const FILE *__f) { return (char*) __f->__bufstart; }
-+
-+//       Returns the current read/write position within the buffer.
-+inline char* _FILE_I_next(const FILE *__f) { return (char*) __f->__bufpos; }
-+
-+//       Returns a pointer immediately past the end of the buffer.
-+inline char* _FILE_I_end(const FILE *__f) { return (char*)__f->__bufend; }
-+
-+//       Returns the number of characters remaining in the buffer, i.e.
-+//       _FILE_[IO]_end(__f) - _FILE_[IO]_next(__f).
-+inline ptrdiff_t _FILE_I_avail(const FILE *__f) 
-+  { return __f->__bufgetc_u - __f->__bufpos; }
-+
-+//       Increments the current read/write position by 1, returning the 
-+//       character at the old position.
-+inline char& _FILE_I_preincr(FILE *__f)  { return *(char*)(++__f->__bufpos); }
-+
-+//       Increments the current read/write position by 1, returning the 
-+//       character at the old position.
-+inline char& _FILE_I_postincr(FILE *__f)  { return *(char*)(__f->__bufpos++); }
-+
-+//       Decrements the current read/write position by 1, returning the 
-+//       character at the old position.
-+inline char& _FILE_I_predecr(FILE *__f)  { return *(char*)(--__f->__bufpos); }
-+
-+//       Decrements the current read/write position by 1, returning the 
-+//       character at the old position.
-+inline char& _FILE_I_postdecr(FILE *__f)  { return *(char*)(__f->__bufpos--); }
-+
-+//       Increments the current read/write position by __n.
-+inline void  _FILE_I_bump(FILE *__f, int __n) { __f->__bufpos += __n; }
-+
-+//       Sets the beginning of the bufer to __begin, the current read/write
-+//       position to __next, and the buffer's past-the-end pointer to __end.
-+//       If any of those pointers is null, then all of them must be null.
-+inline void _FILE_I_set(FILE *__f, char* __begin, char* __next, char* __end)
-+{
-+      __f->__bufstart = (unsigned char*)__begin;
-+      __f->__bufpos  =  (unsigned char*)__next;
-+      __f->__bufend  =  (unsigned char*)__end;
-+      __f->__bufgetc_u = (unsigned char*)__begin;
-+      __f->__bufputc_u = (unsigned char*)__end;
-+}
-+
-+# define _STLP_FILE_I_O_IDENTICAL
-+
-+#else    // Support old stdio for a little while.
-+
-+inline int   _FILE_fd(const FILE *__f) { return __f->filedes; }
-+
-+//       Returns a pointer to the beginning of the buffer.
-+inline char* _FILE_I_begin(const FILE *__f) { return (char*) __f->bufstart; }
-+
-+//       Returns the current read/write position within the buffer.
-+inline char* _FILE_I_next(const FILE *__f) { return (char*) __f->bufpos; }
-+
-+//       Returns a pointer immediately past the end of the buffer.
-+inline char* _FILE_I_end(const FILE *__f) { return (char*)__f->bufend; }
-+
-+//       Returns the number of characters remaining in the buffer, i.e.
-+//       _FILE_[IO]_end(__f) - _FILE_[IO]_next(__f).
-+inline ptrdiff_t _FILE_I_avail(const FILE *__f) 
-+  { return __f->bufgetc - __f->bufpos; }
-+
-+//       Increments the current read/write position by 1, returning the 
-+//       character at the old position.
-+inline char& _FILE_I_preincr(FILE *__f)  { return *(char*)(++__f->bufpos); }
-+
-+//       Increments the current read/write position by 1, returning the 
-+//       character at the old position.
-+inline char& _FILE_I_postincr(FILE *__f)  { return *(char*)(__f->bufpos++); }
-+
-+//       Decrements the current read/write position by 1, returning the 
-+//       character at the old position.
-+inline char& _FILE_I_predecr(FILE *__f)  { return *(char*)(--__f->bufpos); }
-+
-+//       Decrements the current read/write position by 1, returning the 
-+//       character at the old position.
-+inline char& _FILE_I_postdecr(FILE *__f)  { return *(char*)(__f->bufpos--); }
-+
-+//       Increments the current read/write position by __n.
-+inline void  _FILE_I_bump(FILE *__f, int __n) { __f->bufpos += __n; }
-+
-+//       Sets the beginning of the bufer to __begin, the current read/write
-+//       position to __next, and the buffer's past-the-end pointer to __end.
-+//       If any of those pointers is null, then all of them must be null.
-+inline void _FILE_I_set(FILE *__f, char* __begin, char* __next, char* __end)
-+{
-+      __f->bufstart = (unsigned char*)__begin;
-+      __f->bufpos  =  (unsigned char*)__next;
-+      __f->bufend  =  (unsigned char*)__end;
-+      __f->bufgetc = (unsigned char*)__begin;
-+      __f->bufputc = (unsigned char*)__end;
-+}
-+
-+# define _STLP_FILE_I_O_IDENTICAL
-+
-+#endif
-+
- #else  /* A C library that we don't have an implementation for. */
- # error The C++ I/O library is not configured for this compiler
-diff -urN STLport-4.5.3/stlport/stl/c_locale.h STLport-4.5.3-devel/stlport/stl/c_locale.h
---- STLport-4.5.3/stlport/stl/c_locale.h       Fri Jan 18 15:07:00 2002
-+++ STLport-4.5.3-devel/stlport/stl/c_locale.h Wed Jan  8 10:58:10 2003
-@@ -401,6 +401,21 @@
- #  define _Locale_SPACE _S
- #  define _Locale_PRINT (_P | _U | _L | _N | _B)
- #  define _Locale_ALPHA (_U | _L)
-+
-+# elif defined(_STLP_USE_UCLIBC) /* linux, using the gnu compiler */
-+
-+#  define _Locale_CNTRL  _IScntrl
-+#  define _Locale_UPPER  _ISupper
-+#  define _Locale_LOWER  _ISlower
-+#  define _Locale_DIGIT  _ISdigit
-+#  define _Locale_XDIGIT _ISxdigit
-+#  define _Locale_PUNCT  _ISpunct
-+#  define _Locale_SPACE  _ISspace
-+#  define _Locale_PRINT  _ISprint
-+#  define _Locale_ALPHA  _ISalpha
-+
-+#else
-+#  error Unknown Locale
- #endif
- # endif /* _STLP_C_LOCALE_H */
index e75fb6bf8fddb86358d87ee88792e570ee27f091..16aa9b6f2970c7ce42aecb91be6bee2f3cf5ff83 100644 (file)
@@ -122,7 +122,7 @@ gcc_initial-dirclean:
 # STLport -- an alternative C++ library
 #
 #############################################################
-STLPORT_PATCH=$(SOURCE_DIR)/STLport-4.5.3.patch
+STLPORT_PATCH=toolchain/gcc/2.95/STLport-4.5.3.patch
 
 $(DL_DIR)/$(STLPORT_SOURCE):
        $(WGET) -P $(DL_DIR) $(STLPORT_SITE)/$(STLPORT_SOURCE)