123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407 |
- 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 */
|