From 5b9497f7865539e631324b088a897d618ce161cf Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Sat, 9 Oct 2004 03:22:43 +0000 Subject: Move the STLport to 2.95 where it belongs --- toolchain/gcc/2.95/STLport-4.5.3.patch | 407 +++++++++++++++++++++++++++++++++ toolchain/gcc/STLport-4.5.3.patch | 407 --------------------------------- toolchain/gcc/gcc-uclibc-2.95.mk | 2 +- 3 files changed, 408 insertions(+), 408 deletions(-) create mode 100644 toolchain/gcc/2.95/STLport-4.5.3.patch delete mode 100644 toolchain/gcc/STLport-4.5.3.patch 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 index 000000000..fee65f920 --- /dev/null +++ b/toolchain/gcc/2.95/STLport-4.5.3.patch @@ -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 ++# ++# 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 + # endif + +-# if defined (_STLP_UNIX) ++# if defined (_STLP_UNIX) && defined (_STLP_PTHREADS) && ! defined (_STLP_USE_UCLIBC) + # define _STLP_HAS_PERTHREAD_ALLOCATOR + # include + # 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 ++# include ++# endif ++ + # include + + #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 index fee65f920..000000000 --- a/toolchain/gcc/STLport-4.5.3.patch +++ /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 -+# -+# 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 - # endif - --# if defined (_STLP_UNIX) -+# if defined (_STLP_UNIX) && defined (_STLP_PTHREADS) && ! defined (_STLP_USE_UCLIBC) - # define _STLP_HAS_PERTHREAD_ALLOCATOR - # include - # 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 -+# include -+# endif -+ - # include - - #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/gcc-uclibc-2.95.mk b/toolchain/gcc/gcc-uclibc-2.95.mk index e75fb6bf8..16aa9b6f2 100644 --- a/toolchain/gcc/gcc-uclibc-2.95.mk +++ b/toolchain/gcc/gcc-uclibc-2.95.mk @@ -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) -- cgit v1.2.3