diff options
author | mbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2005-01-16 11:43:02 +0000 |
---|---|---|
committer | mbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2005-01-16 11:43:02 +0000 |
commit | 2f006aa5e8a74e2dd224f5e9b90d36c79651fd66 (patch) | |
tree | 85d694c0a5715a49a401cadec16be849169d8d6a /toolchain/gcc/2.95 |
Initial revision
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@197 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'toolchain/gcc/2.95')
-rw-r--r-- | toolchain/gcc/2.95/050-debian-subset.patch.bz2 | bin | 0 -> 125295 bytes | |||
-rw-r--r-- | toolchain/gcc/2.95/100-uclibc-conf.patch | 291 | ||||
-rw-r--r-- | toolchain/gcc/2.95/STLport-4.5.3.patch | 407 |
3 files changed, 698 insertions, 0 deletions
diff --git a/toolchain/gcc/2.95/050-debian-subset.patch.bz2 b/toolchain/gcc/2.95/050-debian-subset.patch.bz2 Binary files differnew file mode 100644 index 000000000..6c2d51827 --- /dev/null +++ b/toolchain/gcc/2.95/050-debian-subset.patch.bz2 diff --git a/toolchain/gcc/2.95/100-uclibc-conf.patch b/toolchain/gcc/2.95/100-uclibc-conf.patch new file mode 100644 index 000000000..f244387cc --- /dev/null +++ b/toolchain/gcc/2.95/100-uclibc-conf.patch @@ -0,0 +1,291 @@ +Warning! The powerpc patch (rs6000/linux.h) is hack-ish and would +definitely need to be improved to be acceptable upstream. Also, +this patch isn't complete as it only supports i386, arm, mips, and +powerpc (rs6000). +diff -urN gcc-20011006/config.sub gcc-20011006-new/config.sub +--- gcc-20011006/config.sub 2004-01-13 06:15:28.000000000 -0600 ++++ gcc-20011006-new/config.sub 2004-01-10 11:09:35.000000000 -0600 +@@ -68,7 +68,7 @@ + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- linux-gnu*) ++ linux-gnu* | linux-uclibc*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; +@@ -936,7 +936,8 @@ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ ++ | -mingw32* | -linux-gnu* | -linux-uclibc* \ ++ | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* ) + # Remember, each alternative MUST END IN *, to match a version number. + ;; +diff -urN gcc-20011006/gcc/config/arm/linux-elf.h gcc-20011006-new/gcc/config/arm/linux-elf.h +--- gcc-20011006/gcc/config/arm/linux-elf.h 2004-01-13 06:15:28.000000000 -0600 ++++ gcc-20011006-new/gcc/config/arm/linux-elf.h 2004-01-10 11:12:11.000000000 -0600 +@@ -90,6 +90,18 @@ + #define ENDFILE_SPEC \ + "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" + ++#ifdef USE_UCLIBC ++#define LINK_SPEC "%{h*} %{version:-v} \ ++ %{b} %{Wl,*:%*} \ ++ %{static:-Bstatic} \ ++ %{shared:-shared} \ ++ %{symbolic:-Bsymbolic} \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0} \ ++ -X \ ++ %{mbig-endian:-EB}" \ ++ SUBTARGET_EXTRA_LINK_SPEC ++#else + #define LINK_SPEC "%{h*} %{version:-v} \ + %{b} %{Wl,*:%*} \ + %{static:-Bstatic} \ +@@ -100,6 +112,7 @@ + -X \ + %{mbig-endian:-EB}" \ + SUBTARGET_EXTRA_LINK_SPEC ++#endif + + #undef CPP_PREDEFINES + #define CPP_PREDEFINES \ +diff -urN gcc-20011006/gcc/config/i386/linux.h gcc-20011006-new/gcc/config/i386/linux.h +--- gcc-20011006/gcc/config/i386/linux.h 2001-04-03 17:38:59.000000000 -0500 ++++ gcc-20011006-new/gcc/config/i386/linux.h 2004-01-10 11:15:38.000000000 -0600 +@@ -199,6 +199,15 @@ + %{static:-static}}}" + #endif + #else ++#if defined USE_UCLIBC ++#define LINK_SPEC "-m elf_i386 %{shared:-shared} \ ++ %{!shared: \ ++ %{!ibcs: \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \ ++ %{static:-static}}}" ++#else + #define LINK_SPEC "-m elf_i386 %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ +@@ -207,6 +216,7 @@ + %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ + %{static:-static}}}" + #endif ++#endif + + /* Get perform_* macros to build libgcc.a. */ + #include "i386/perform.h" +diff -urN gcc-20011006/gcc/config/mips/linux.h gcc-20011006-new/gcc/config/mips/linux.h +--- gcc-20011006/gcc/config/mips/linux.h 2004-01-13 06:15:28.000000000 -0600 ++++ gcc-20011006-new/gcc/config/mips/linux.h 2004-01-10 11:16:39.000000000 -0600 +@@ -154,6 +154,17 @@ + + /* Borrowed from sparc/linux.h */ + #undef LINK_SPEC ++#ifdef USE_UCLIBC ++#define LINK_SPEC \ ++ "%(endian_spec) \ ++ %{shared:-shared} \ ++ %{!shared: \ ++ %{!ibcs: \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \ ++ %{static:-static}}}" ++#else + #define LINK_SPEC \ + "%(endian_spec) \ + %{shared:-shared} \ +@@ -163,6 +174,7 @@ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ + %{static:-static}}}" ++#endif + + + #undef SUBTARGET_ASM_SPEC +diff -urN old/gcc-20011006/gcc/config/mips/t-linux-uclibc gcc-20011006/gcc/config/mips/t-linux-uclibc +--- old/gcc-20011006/gcc/config/mips/t-linux-uclibc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-20011006/gcc/config/mips/t-linux-uclibc 2004-01-14 02:51:10.000000000 -0600 +@@ -0,0 +1 @@ ++T_CFLAGS = -DUSE_UCLIBC +diff -urN gcc-20011006/gcc/config/rs6000/linux.h gcc-20011006-new/gcc/config/rs6000/linux.h +--- gcc-20011006/gcc/config/rs6000/linux.h 2001-04-03 17:38:59.000000000 -0500 ++++ gcc-20011006-new/gcc/config/rs6000/linux.h 2004-01-10 11:15:38.000000000 -0600 +@@ -36,12 +36,21 @@ + #define CPP_OS_DEFAULT_SPEC "%(cpp_os_linux)" + + #undef LINK_SPEC ++#ifdef USE_UCLIBC ++#define LINK_SPEC "-m elf32ppclinux %{G*} %{shared:-shared} \ ++ %{!shared: \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \ ++ %{static:-static}}" ++#else + #define LINK_SPEC "-m elf32ppclinux %{G*} %{shared:-shared} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ + %{static:-static}}" ++#endif + + #undef LIB_DEFAULT_SPEC + #define LIB_DEFAULT_SPEC "%(lib_linux)" +diff -urN gcc-20011006/gcc/config/t-linux-uclibc gcc-20011006-new/gcc/config/t-linux-uclibc +--- gcc-20011006/gcc/config/t-linux-uclibc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-20011006-new/gcc/config/t-linux-uclibc 2004-01-10 11:18:46.000000000 -0600 +@@ -0,0 +1,18 @@ ++T_CFLAGS = -DUSE_UCLIBC ++ ++# Don't run fixproto ++STMP_FIXPROTO = ++ ++# Don't install "assert.h" in gcc. We use the one in glibc. ++INSTALL_ASSERT_H = ++ ++# Compile crtbeginS.o and crtendS.o with pic. ++CRTSTUFF_T_CFLAGS_S = -fPIC ++# Compile libgcc2.a with pic. ++TARGET_LIBGCC2_CFLAGS = -fPIC ++ ++# Do not build libgcc1. Let gcc generate those functions. The GNU/Linux ++# C library can handle them. ++LIBGCC1 = ++CROSS_LIBGCC1 = ++LIBGCC1_TEST = +diff -urN gcc-20011006/gcc/configure gcc-20011006-new/gcc/configure +--- gcc-20011006/gcc/configure 2004-01-13 06:15:28.000000000 -0600 ++++ gcc-20011006-new/gcc/configure 2004-01-10 11:28:54.000000000 -0600 +@@ -3219,6 +3219,24 @@ + ;; + esac + ;; ++ arm*-*-linux-uclibc*) # ARM GNU/Linux with ELF - uClibc ++ xm_file=arm/xm-linux.h ++ xmake_file=x-linux ++ tm_file="arm/linux-elf.h" ++ case $machine in ++ armv2*-*-*) ++ tm_file="arm/linux-elf26.h $tm_file" ++ ;; ++ esac ++ tmake_file="t-linux-uclibc arm/t-linux" ++ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" ++ gnu_ld=yes ++ case x${enable_threads} in ++ x | xyes | xpthreads | xposix) ++ thread_file='posix' ++ ;; ++ esac ++ ;; + arm*-*-aout) + tm_file=arm/aout.h + tmake_file=arm/t-bare +@@ -3631,6 +3649,18 @@ + thread_file='single' + fi + ;; ++ i[34567]86-*-linux*uclibc*) # Intel 80386's running GNU/Linux ++ # with ELF format using uClibc ++ xmake_file=x-linux ++ tm_file=i386/linux.h ++ tmake_file="t-linux-uclibc i386/t-crtstuff" ++ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" ++ gnu_ld=yes ++ float_format=i386 ++ if test x$enable_threads = xyes; then ++ thread_file='posix' ++ fi ++ ;; + i[34567]86-*-linux-gnu*) # Intel 80386's running GNU/Linux + # aka GNU/Linux C library 6 + xmake_file=x-linux +@@ -4696,7 +4726,19 @@ + # On NetBSD, the headers are already okay, except for math.h. + tmake_file=t-netbsd + ;; +- mips*-*-linux*) # Linux MIPS, either endian. ++ mips*-*-linux-uclibc*) # Linux (uclibc) MIPS, either endian. ++ tmake_file=mips/t-linux-uclibc ++ xmake_file=x-linux ++ xm_file="xm-siglist.h ${xm_file}" ++ case $machine in ++ mipsel-*) tm_file="mips/elfl.h mips/linux.h" ;; ++ *) tm_file="mips/elf.h mips/linux.h" ;; ++ esac ++ extra_parts="crtbegin.o crtend.o" ++ gnu_ld=yes ++ gas=yes ++ ;; ++ mips*-*-linux*) # Linux MIPS, either endian. + xmake_file=x-linux + xm_file="xm-siglist.h ${xm_file}" + case $machine in +@@ -5159,6 +5201,24 @@ + thread_file='posix' + fi + ;; ++ powerpc-*-linux-uclibc*) ++ tm_file=rs6000/linux.h ++ xm_file="xm-siglist.h rs6000/xm-sysv4.h" ++ xm_defines="USG ${xm_defines}" ++ out_file=rs6000/rs6000.c ++ if test x$gas = xyes ++ then ++ tmake_file="rs6000/t-ppcos t-linux-uclibc rs6000/t-ppccomm" ++ else ++ tmake_file="rs6000/t-ppc t-linux-uclibc rs6000/t-ppccomm" ++ fi ++ xmake_file=x-linux ++ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" ++ extra_headers=ppc-asm.h ++ if test x$enable_threads = xyes; then ++ thread_file='posix' ++ fi ++ ;; + powerpc-wrs-vxworks*) + cpu_type=rs6000 + xm_file="xm-siglist.h rs6000/xm-sysv4.h" +diff -urN gcc-20011006/ltconfig gcc-20011006-new/ltconfig +--- gcc-20011006/ltconfig 1999-06-21 21:35:12.000000000 -0500 ++++ gcc-20011006-new/ltconfig 2004-01-10 11:34:23.000000000 -0600 +@@ -436,6 +436,7 @@ + # Transform linux* to *-*-linux-gnu*, to support old configure scripts. + case "$host_os" in + linux-gnu*) ;; ++linux-uclibc*) ;; + linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` + esac + +@@ -1773,6 +1774,22 @@ + fi + ;; + ++linux-uclibc*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ++ file_magic_cmd=/usr/bin/file ++ file_magic_test_file=`echo /lib/libuClibc-*.so` ++ # Assume using the uClibc dynamic linker. ++ dynamic_linker="uClibc ld.so" ++ ;; ++ + netbsd*) + version_type=sunos + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then 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 <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 */ |