summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiziano Müller <dev-zero@gentoo.org>2008-04-30 18:54:27 +0000
committerTiziano Müller <dev-zero@gentoo.org>2008-04-30 18:54:27 +0000
commit07955918a6315582055925e41fd5b9d73923940b (patch)
tree56f7d29661309603b7b59758b228529fd78c491d /dev-libs/STLport
parentStable on alpha, bug #219728 (diff)
downloadhistorical-07955918a6315582055925e41fd5b9d73923940b.tar.gz
historical-07955918a6315582055925e41fd5b9d73923940b.tar.bz2
historical-07955918a6315582055925e41fd5b9d73923940b.zip
Version bump (including a lot fixes, thanks to Peter Alfredsen and Debian, bug #219457).
Package-Manager: portage-2.1.5_rc6
Diffstat (limited to 'dev-libs/STLport')
-rw-r--r--dev-libs/STLport/ChangeLog15
-rw-r--r--dev-libs/STLport/Manifest11
-rw-r--r--dev-libs/STLport/STLport-5.1.5.ebuild130
-rw-r--r--dev-libs/STLport/files/STLport-5.1.5-alpha.patch21
-rw-r--r--dev-libs/STLport/files/STLport-5.1.5-bashism.patch38
-rw-r--r--dev-libs/STLport/files/STLport-5.1.5-cxx_use_c99.patch49
-rw-r--r--dev-libs/STLport/files/STLport-5.1.5-fix-warnings.patch96
-rw-r--r--dev-libs/STLport/files/STLport-5.1.5-gcc-4.3.patch40
-rw-r--r--dev-libs/STLport/files/STLport-5.1.5-hppa.patch24
-rw-r--r--dev-libs/STLport/files/STLport-5.1.5-portability-hack.patch26
10 files changed, 447 insertions, 3 deletions
diff --git a/dev-libs/STLport/ChangeLog b/dev-libs/STLport/ChangeLog
index 06021181bb1e..2292bb435a02 100644
--- a/dev-libs/STLport/ChangeLog
+++ b/dev-libs/STLport/ChangeLog
@@ -1,6 +1,17 @@
# ChangeLog for dev-libs/STLport
-# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/STLport/ChangeLog,v 1.64 2007/09/25 20:22:27 dev-zero Exp $
+# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/STLport/ChangeLog,v 1.65 2008/04/30 18:54:27 dev-zero Exp $
+
+*STLport-5.1.5 (30 Apr 2008)
+
+ 30 Apr 2008; Tiziano Müller <dev-zero@gentoo.org>
+ +files/STLport-5.1.5-alpha.patch, +files/STLport-5.1.5-bashism.patch,
+ +files/STLport-5.1.5-cxx_use_c99.patch,
+ +files/STLport-5.1.5-fix-warnings.patch,
+ +files/STLport-5.1.5-gcc-4.3.patch, +files/STLport-5.1.5-hppa.patch,
+ +files/STLport-5.1.5-portability-hack.patch, +STLport-5.1.5.ebuild:
+ Version bump (including a lot fixes, thanks to Peter Alfredsen and Debian,
+ bug #219457).
*STLport-5.1.3 (25 Sep 2007)
diff --git a/dev-libs/STLport/Manifest b/dev-libs/STLport/Manifest
index a5179783ade5..e4efe0b200d4 100644
--- a/dev-libs/STLport/Manifest
+++ b/dev-libs/STLport/Manifest
@@ -1,8 +1,17 @@
AUX STLport-5.1.2-fix_bashism.patch 3380 RMD160 e75b86bf16d688a702fe23be781f8d903226f8cd SHA1 0e78e50dae1801abece7088cb6cfc491c0947312 SHA256 b32e22a987679c849bbe7998ab819ba789ba4543dcc6c611897dfb178553dbdb
AUX STLport-5.1.2-wrong_russian_currency_name.patch 1050 RMD160 66bd42c7d7ee7a14a6be3f69a057162d5f8abacc SHA1 2f0e3291cb538c66531c2a7e037ca245a170b61c SHA256 07658cdd06c472fb6fa84254517db48931662fcd26f0bc56d41687fe9f8c115c
+AUX STLport-5.1.5-alpha.patch 840 RMD160 de220df85c3ff598cb5c91452bca34bfe2b7f302 SHA1 d598db0da8db80b640545998a317e93c98e5e301 SHA256 2c7fd337165a301e50111a8d5305d6ec3c74b73940b1598d66ab703cebc633e4
+AUX STLport-5.1.5-bashism.patch 2210 RMD160 6db5caa622725378aa73c2942a72a8d5c125f908 SHA1 2c3e0153fc61aafddce7d8d13579ba4a80d5bc9d SHA256 5626718d9698300577bbecbef88f9c7e30d5e59797f01925c4e8bf1093275a78
+AUX STLport-5.1.5-cxx_use_c99.patch 1387 RMD160 e372afafa212ff6ff016cdef950303c32802976d SHA1 064a178eb7b43a48c1dc01a627505e89efc6a1a4 SHA256 d68ce2e9a19e3d86f6a96f8c5424f502814550a5086dbe8d99db12cdad8975bb
+AUX STLport-5.1.5-fix-warnings.patch 4193 RMD160 d80618eb1cfb592117a106b7a04a1576de590a18 SHA1 109069f90181db7ef5b5169ed8cb49c98b5e982f SHA256 dfb1efe35f045779301c2b72a9d5d43a23081ac801f5767c3b2022e4a660e689
+AUX STLport-5.1.5-gcc-4.3.patch 1100 RMD160 75658abd5c083351e82aba5d4aa26757f3b66ebd SHA1 d6165ad989183ffdeb8748f214f5f7ea4ca7fc6c SHA256 df5f98b6548e9300b08cd599498bd46aa6b9bc8ed5015b9394bb050aef9979b9
+AUX STLport-5.1.5-hppa.patch 1222 RMD160 6bd77741f7a00b56b477b9dcc62ae997eebe6147 SHA1 b0468151c03337e97d273a61ad454c88498ce40f SHA256 95aebbae47356fe94068a6834a8e28c278e1c06e3e01ba581f8c615d9154a862
+AUX STLport-5.1.5-portability-hack.patch 693 RMD160 1336764fa42f7707238887c0eabbd519162bc1c1 SHA1 f9b55367cb17a34b5200ef765b6c22a3a72d584a SHA256 532eb37422adbe4b141487d0b14bf6e4f0ba87250c8ca44aa34578f4180b42a8
DIST STLport-5.1.2.tar.bz2 675633 RMD160 c3fd1af92d270179c6cf07a09a0e6e13173dc875 SHA1 35294b85ed95b93720325490259642d4128c657b SHA256 6f6189d4233e4195a45b3e3a3d5504fd0c66b44c6217549702e8440419e28d84
DIST STLport-5.1.3.tar.bz2 679697 RMD160 7e0b484849039893717caaeb9f5cdd35e7798267 SHA1 37c2174a8884e8c83c7378901031ccaf9a29cd6b SHA256 08ecdec9fccd5e629af9cf5b5ce88e3476e8caf396aa390520e0cc18bc9fd5b4
+DIST STLport-5.1.5.tar.bz2 682914 RMD160 bc24cbba247821a9b94fbc7cdf8d2b421bcc6afb SHA1 0c8b188fe74162998aea17ad689397adf99b2d93 SHA256 2470ca40adc89750c69affffde8a9e6ab6a03f4e3c93640067089f99e76f6dc5
EBUILD STLport-5.1.2.ebuild 2598 RMD160 7cfacdf5377851591067c4d43c9f1833f746a162 SHA1 d2ab7b731084ea9b4c5eca59c50339cd36c82123 SHA256 40dd640cd154a7312a13bccbecde3d5828793d5cba71b80e36276aec861a1858
EBUILD STLport-5.1.3.ebuild 2794 RMD160 eb8a8798049d856ba0073001e9ba1aafe0299ba4 SHA1 b91428fbf46840659f3d9c638aedfcd8b61e570c SHA256 47b89010813f8d5c8a98da249a761f969b572c3d240e45260d6ba13ae4fffc32
-MISC ChangeLog 9294 RMD160 ecf0ce5554285f1d36a724ea0e46fc12a09de994 SHA1 74c82443a83794b08f89c32785f432534af4d6ba SHA256 3fbad4d152afa60d6e5ea78a88b4ccda9326e34d5198a830952df4e450525910
+EBUILD STLport-5.1.5.ebuild 3462 RMD160 7d68dfdb2d11bc64909428f6380cd591bace54c6 SHA1 0e1d3893fe35d4c2879bedf93d8f02dd0bcf9e64 SHA256 636a0a12ff805e285548138bca2f3684ea8d104b1974b0520f51531663b39b10
+MISC ChangeLog 9769 RMD160 25fbd75ae73e52473493899a28d8ff24dfd297fc SHA1 3001a4daf0b28c0409b663ab2b6271b9d28d70d5 SHA256 560881e05f4cc0eb9f8a9c018e3ea45202605fc0aab1a708fb452b0b39e191f9
MISC metadata.xml 156 RMD160 537178ef5a820896e97475fb9aded47d50474bef SHA1 2a4ef4879b918a28132d21cd6d1bbaa2a30dccde SHA256 0e8490f9c62cb74e5894b52f643a02de0024d97dbfebad43082dce6bcb39555f
diff --git a/dev-libs/STLport/STLport-5.1.5.ebuild b/dev-libs/STLport/STLport-5.1.5.ebuild
new file mode 100644
index 000000000000..34adffbe91b2
--- /dev/null
+++ b/dev-libs/STLport/STLport-5.1.5.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/STLport/STLport-5.1.5.ebuild,v 1.1 2008/04/30 18:54:27 dev-zero Exp $
+
+inherit eutils versionator eutils toolchain-funcs multilib flag-o-matic
+
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
+
+DESCRIPTION="C++ STL library"
+HOMEPAGE="http://stlport.sourceforge.net/"
+SRC_URI="mirror://sourceforge/stlport/${P}.tar.bz2"
+LICENSE="as-is"
+SLOT="0"
+IUSE="boost"
+
+DEPEND="boost? ( dev-libs/boost )"
+RDEPEND="${RDEPEND}"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ #Debian bug 356570 http://bugs.debian.org/356570
+ #Gentoo bug 183060 http://bugs.gentoo.org/183060
+ #Debian bug 443234 http://bugs.debian.org/443234
+ #Debian bug 389316 http://bugs.debian.org/389316
+ #Debian bug 384247 http://bugs.debian.org/384247
+ #Debian bug 465395 http://bugs.debian.org/465395
+ #Debian bug 468063 http://bugs.debian.org/468063
+ epatch "${FILESDIR}/${P}-portability-hack.patch" \
+ "${FILESDIR}/${P}-bashism.patch" \
+ "${FILESDIR}/${P}-cxx_use_c99.patch" \
+ "${FILESDIR}/${P}-hppa.patch" \
+ "${FILESDIR}/${P}-alpha.patch" \
+ "${FILESDIR}/${P}-fix-warnings.patch" \
+ "${FILESDIR}/${P}-gcc-4.3.patch"
+
+ sed -i \
+ -e 's/\(OPT += \)-O2/\1/' \
+ build/Makefiles/gmake/*cc.mak \
+ || die "sed opts failed"
+
+ # CXX_VERSION on gentoo has ( )s in them, they need to be quoted.
+
+ sed -i \
+ -e 's/echo ${CXX_VERSION}/echo "${CXX_VERSION}"/' \
+ build/Makefiles/gmake/*.mak \
+ || die "sed CXX_VERSION failed"
+
+ # We have to add this to host.h to make sure
+ # that dependencies of STLport use the same settings
+ cat <<- EOF >> stlport/stl/config/host.h
+ #define _STLP_NATIVE_INCLUDE_PATH ../g++-v$(gcc-major-version)
+ /* use pthreads for threading */
+ #define _PTHREADS
+ /* enable largefile support */
+ #define _FILE_OFFSET_BITS 64
+ #define _LARGEFILE_SOURCE
+ #define _LARGEFILE64_SOURCE
+ EOF
+}
+
+src_compile() {
+
+ sed -i \
+ -e "s|\(CC :=\) gcc|\1 $(tc-getCC)|" \
+ -e "s|\(CXX :=\) c++|\1 $(tc-getCXX)|" \
+ -e "s|^\(CFLAGS = \)|\1 ${CFLAGS} |" \
+ -e "s|^\(CCFLAGS = \)|\1 ${CFLAGS} |" \
+ -e "s|^\(CPPFLAGS = \)|\1 ${CPPFLAGS} |" \
+ build/Makefiles/gmake/gcc.mak || die "sed failed"
+
+ local myconf
+ if use boost ; then
+ myconf="${myconf} --with-boost=/usr/include"
+ sed -i \
+ -e 'N;N;N;s:/\**\n\(#define _STLP_USE_BOOST_SUPPORT 1\)*\n\*/:\1:' \
+ stlport/stl/config/user_config.h
+ fi
+
+ cd "${S}/build/lib"
+
+ # It's not an autoconf script
+ ./configure \
+ ${myconf} \
+ --with-extra-cxxflags="${CXXFLAGS}" || die "configure failed"
+
+ cd "${S}"
+
+ cat <<- EOF >> build/Makefiles/config.mak
+ CFLAGS := ${CFLAGS}
+ EOF
+
+ local targets
+ targets="all-shared all-static"
+
+ # The build-system is broken in respect to parallel builds, bug #161881
+ emake \
+ -j1 \
+ -C build/lib \
+ -f gcc.mak \
+ depend ${targets} || die "Compile failed"
+
+}
+
+src_install() {
+ emake -C build/lib -f gcc.mak install
+ dolib.so lib/*
+
+ emake -C build/lib -f gcc.mak install-static
+ dolib.a lib/*.a
+
+ insinto /usr/include
+ doins -r stlport
+
+ dodoc README etc/ChangeLog* etc/*.txt doc/*
+}
+
+src_test() {
+ cd "${S}/build"
+
+ sed -i \
+ -e "1aLDFLAGS := -L${S}/build/lib/obj/gcc/so -L${S}/build/lib/obj/gcc/so_g -L${S}/build/lib/obj/gcc/so_stlg" \
+ test/unit/gcc.mak || die "sed failed"
+
+ emake -j1 -C test/unit -f gcc.mak || die "emake tests failed"
+
+ export LD_LIBRARY_PATH="./lib/obj/gcc/so_stlg"
+ ./test/unit/obj/gcc/so_stlg/stl_unit_test || die "unit tests failed"
+}
diff --git a/dev-libs/STLport/files/STLport-5.1.5-alpha.patch b/dev-libs/STLport/files/STLport-5.1.5-alpha.patch
new file mode 100644
index 000000000000..93cfbf334747
--- /dev/null
+++ b/dev-libs/STLport/files/STLport-5.1.5-alpha.patch
@@ -0,0 +1,21 @@
+--- stlport5.1.orig/stlport/stl/_cwchar.h
++++ stlport5.1/stlport/stl/_cwchar.h
+@@ -105,18 +105,6 @@
+ # define WCHAR_MAX ((wchar_t)~0)
+ # endif
+ # endif
+-# if defined (__GNUC__) && defined (__alpha__)
+-/* Definition of WCHAR_MIN and MAX are wrong for alpha platform
+- * as gcc consider wchar_t as an unsigned type. Static assertion are
+- * here to check that a future alpha SDK or a future gcc won't change the
+- * situation making this workaround useless.
+- */
+-_STLP_STATIC_ASSERT(((wchar_t)-1 > 0) && (WCHAR_MIN < 0))
+-# undef WCHAR_MIN
+-# define WCHAR_MIN 0
+-# undef WCHAR_MAX
+-# define WCHAR_MAX ((wchar_t)~0)
+-# endif
+ # if defined(__HP_aCC) && (__HP_aCC >= 60000)
+ /* Starting with B.11.31, HP-UX/ia64 provides C99-compliant definitions
+ * of WCHAR_MIN/MAX macros without having to define
diff --git a/dev-libs/STLport/files/STLport-5.1.5-bashism.patch b/dev-libs/STLport/files/STLport-5.1.5-bashism.patch
new file mode 100644
index 000000000000..23abf2f3ab64
--- /dev/null
+++ b/dev-libs/STLport/files/STLport-5.1.5-bashism.patch
@@ -0,0 +1,38 @@
+--- STLport-5.1.5.orig/build/Makefiles/gmake/lib/gcc.mak
++++ STLport-5.1.5/build/Makefiles/gmake/lib/gcc.mak
+@@ -89,9 +89,9 @@
+ # Include whole language support archive (libsupc++.a) into libstlport:
+ # all C++ issues are in libstlport now.
+ ifeq ($(OSNAME),linux)
+-START_OBJ := $(shell for o in crt{i,beginS}.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
++START_OBJ := $(shell for o in crti.o crtbeginS.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
+ #START_A_OBJ := $(shell for o in crt{i,beginT}.o; do ${CXX} -print-file-name=$$o; done)
+-END_OBJ := $(shell for o in crt{endS,n}.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
++END_OBJ := $(shell for o in crtendS.o crtn.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
+ STDLIBS := -Wl,--whole-archive -lsupc++ ${_LGCC_EH} -Wl,--no-whole-archive ${_LGCC_S} -lpthread -lc -lm
+ endif
+ ifeq ($(OSNAME),openbsd)
+@@ -107,8 +107,8 @@
+ STDLIBS := -Wl,--whole-archive -lsupc++ ${_LGCC_EH} -Wl,--no-whole-archive ${_LGCC_S} -l${PTHR} -lc -lm
+ endif
+ ifeq ($(OSNAME),netbsd)
+-START_OBJ := $(shell for o in crt{i,beginS}.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
+-END_OBJ := $(shell for o in crt{endS,n}.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
++START_OBJ := $(shell for o in crti.o crtbeginS.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
++END_OBJ := $(shell for o in crtendS.o crtn.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
+ STDLIBS := -Wl,--whole-archive -lsupc++ ${_LGCC_EH} -Wl,--no-whole-archive ${_LGCC_S} -lpthread -lc -lm
+ endif
+ ifeq ($(OSNAME),sunos)
+--- STLport-5.1.5.orig/build/Makefiles/gmake/app/gcc.mak
++++ STLport-5.1.5/build/Makefiles/gmake/app/gcc.mak
+@@ -104,8 +104,8 @@
+ endif
+
+ ifeq ($(OSNAME),linux)
+-START_OBJ := $(shell for o in crt{1,i,begin}.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
+-END_OBJ := $(shell for o in crt{end,n}.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
++START_OBJ := $(shell for o in crt1.o crti.o crtbegin.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
++END_OBJ := $(shell for o in crtend.o crtn.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
+ STDLIBS = ${STLPORT_LIB} ${_LGCC_S} -lpthread -lc -lm
+ endif
+ ifeq ($(OSNAME),openbsd)
diff --git a/dev-libs/STLport/files/STLport-5.1.5-cxx_use_c99.patch b/dev-libs/STLport/files/STLport-5.1.5-cxx_use_c99.patch
new file mode 100644
index 000000000000..68fa98b9737d
--- /dev/null
+++ b/dev-libs/STLport/files/STLport-5.1.5-cxx_use_c99.patch
@@ -0,0 +1,49 @@
+--- STLport-5.1.5.orig/stlport/stl/_cstdlib.h
++++ STLport-5.1.5/stlport/stl/_cstdlib.h
+@@ -16,12 +16,27 @@
+ #ifndef _STLP_INTERNAL_CSTDLIB
+ #define _STLP_INTERNAL_CSTDLIB
+
++/* Work around inconsistent definition of _GLIBCXX_USE_C99 across arches; on
++ * these arches std::llabs is therefore not available.
++ *
++ * See http://bugs.debian.org/443234
++ */
++#ifndef _GLIBCXX_USE_C99
++#define _GLIBCXX_USE_C99 1
++#define _HACK_CXX_USE_C99 1
++#endif
++
+ #if defined (_STLP_USE_NEW_C_HEADERS)
+ # include _STLP_NATIVE_CPP_C_HEADER(cstdlib)
+ #else
+ # include <stdlib.h>
+ #endif
+
++#ifdef _HACK_CXX_USE_C99
++#undef _GLIBCXX_USE_C99
++#undef _HACK_CXX_USE_C99
++#endif
++
+ #if defined (__BORLANDC__)
+ /* Borland process.h header do not bring anything here and is just included
+ * in order to avoid inclusion later. This header cannot be included later
+--- STLport-5.1.5.orig/stlport/stl/_cmath.h
++++ STLport-5.1.5/stlport/stl/_cmath.h
+@@ -21,7 +21,16 @@
+ * so cstdlib has to be included first.
+ */
+ #if defined (__GNUC__) && defined (_STLP_USE_NEW_C_HEADERS)
++/* See http://bugs.debian.org/443234 */
++# ifndef _GLIBCXX_USE_C99
++# define _GLIBCXX_USE_C99 1
++# define _HACK_CXX_USE_C99 1
++# endif
+ # include _STLP_NATIVE_CPP_C_HEADER(cstdlib)
++# ifdef _HACK_CXX_USE_C99
++# undef _GLIBCXX_USE_C99
++# undef _HACK_CXX_USE_C99
++# endif
+ #endif
+
+ #if defined (_STLP_USE_NEW_C_HEADERS)
diff --git a/dev-libs/STLport/files/STLport-5.1.5-fix-warnings.patch b/dev-libs/STLport/files/STLport-5.1.5-fix-warnings.patch
new file mode 100644
index 000000000000..fc155482f53f
--- /dev/null
+++ b/dev-libs/STLport/files/STLport-5.1.5-fix-warnings.patch
@@ -0,0 +1,96 @@
+--- STLport-5.1.5.orig/stlport/stl/_num_put.c
++++ STLport-5.1.5/stlport/stl/_num_put.c
+@@ -158,7 +158,7 @@
+ //casting numeric_limits<ptrdiff_t>::max to streamsize only works is ptrdiff_t is signed or streamsize representation
+ //is larger than ptrdiff_t one.
+ _STLP_STATIC_ASSERT((sizeof(streamsize) > sizeof(ptrdiff_t)) ||
+- (sizeof(streamsize) == sizeof(ptrdiff_t)) && numeric_limits<ptrdiff_t>::is_signed)
++ ((sizeof(streamsize) == sizeof(ptrdiff_t)) && numeric_limits<ptrdiff_t>::is_signed))
+ ptrdiff_t __pad = __STATIC_CAST(ptrdiff_t, (min) (__STATIC_CAST(streamsize, (numeric_limits<ptrdiff_t>::max)()),
+ __STATIC_CAST(streamsize, __wid - __len)));
+ ios_base::fmtflags __dir = __flg & ios_base::adjustfield;
+--- STLport-5.1.5.orig/stlport/stl/_istream.c
++++ STLport-5.1.5/stlport/stl/_istream.c
+@@ -647,7 +647,7 @@
+ //casting numeric_limits<ptrdiff_t>::max to streamsize only works is ptrdiff_t is signed or streamsize representation
+ //is larger than ptrdiff_t one.
+ _STLP_STATIC_ASSERT((sizeof(streamsize) > sizeof(ptrdiff_t)) ||
+- (sizeof(streamsize) == sizeof(ptrdiff_t)) && numeric_limits<ptrdiff_t>::is_signed)
++ ((sizeof(streamsize) == sizeof(ptrdiff_t)) && numeric_limits<ptrdiff_t>::is_signed))
+ ptrdiff_t __request = __STATIC_CAST(ptrdiff_t, (min) (__STATIC_CAST(streamsize, (numeric_limits<ptrdiff_t>::max)()), _Num - __n));
+
+ const _CharT* __p = __scan_delim(__first, __last);
+--- STLport-5.1.5.orig/stlport/stl/_locale.h
++++ STLport-5.1.5/stlport/stl/_locale.h
+@@ -308,11 +308,11 @@
+ #endif
+
+ template <class _Facet>
+-bool _HasFacet(const locale& __loc, const _Facet* __facet) _STLP_NOTHROW
++bool _HasFacet(const locale& __loc, const _Facet*) _STLP_NOTHROW
+ { return (__loc._M_get_facet(_Facet::id) != 0); }
+
+ template <class _Facet>
+-_Facet* _UseFacet(const locale& __loc, const _Facet* __facet)
++_Facet* _UseFacet(const locale& __loc, const _Facet*)
+ { return __STATIC_CAST(_Facet*, __loc._M_use_facet(_Facet::id)); }
+
+ _STLP_END_NAMESPACE
+--- STLport-5.1.5.orig/stlport/stl/_algo.c
++++ STLport-5.1.5/stlport/stl/_algo.c
+@@ -1342,7 +1342,7 @@
+ template <class _ForwardIter, class _Tp,
+ class _Compare1, class _Compare2, class _Distance>
+ _ForwardIter __upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val,
+- _Compare1 __comp1, _Compare2 __comp2, _Distance*) {
++ _Compare1 _STLP_VERBOSE_PARAM(__comp1), _Compare2 __comp2, _Distance*) {
+ _Distance __len = distance(__first, __last);
+ _Distance __half;
+
+--- STLport-5.1.5.orig/stlport/stl/_algobase.c
++++ STLport-5.1.5/stlport/stl/_algobase.c
+@@ -371,7 +371,7 @@
+
+ template <class _ForwardIter, class _Tp, class _Compare1, class _Compare2, class _Distance>
+ _ForwardIter __lower_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val,
+- _Compare1 __comp1, _Compare2 __comp2, _Distance*) {
++ _Compare1 __comp1, _Compare2 _STLP_VERBOSE_PARAM(__comp2), _Distance*) {
+ _Distance __len = distance(__first, __last);
+ _Distance __half;
+ _ForwardIter __middle;
+--- STLport-5.1.5.orig/stlport/stl/config/features.h
++++ STLport-5.1.5/stlport/stl/config/features.h
+@@ -415,6 +415,7 @@
+
+ #if !defined (_STLP_DEBUG)
+ # define _STLP_VERBOSE_ASSERT(expr,diagnostic)
++# define _STLP_VERBOSE_PARAM(param)
+ # define _STLP_DEBUG_CHECK(expr)
+ # define _STLP_DEBUG_DO(expr)
+ #endif
+--- STLport-5.1.5.orig/stlport/stl/debug/_debug.h
++++ STLport-5.1.5/stlport/stl/debug/_debug.h
+@@ -184,6 +184,7 @@
+ }
+ # endif
+
++# define _STLP_VERBOSE_PARAM(param) param
+ # define _STLP_DEBUG_CHECK(expr) _STLP_ASSERT(expr)
+ # define _STLP_DEBUG_DO(expr) expr;
+
+--- STLport-5.1.5.orig/src/strstream.cpp
++++ STLport-5.1.5/src/strstream.cpp
+@@ -266,11 +266,12 @@
+ }
+
+ void strstreambuf::_M_free(char* p) {
+- if (p)
++ if (p) {
+ if (_M_free_fun)
+ _M_free_fun(p);
+ else
+ delete[] p;
++ }
+ }
+
+ void strstreambuf::_M_setup(char* get, char* put, streamsize n) {
diff --git a/dev-libs/STLport/files/STLport-5.1.5-gcc-4.3.patch b/dev-libs/STLport/files/STLport-5.1.5-gcc-4.3.patch
new file mode 100644
index 000000000000..270890f80de9
--- /dev/null
+++ b/dev-libs/STLport/files/STLport-5.1.5-gcc-4.3.patch
@@ -0,0 +1,40 @@
+--- STLport-5.1.5.orig/build/Makefiles/gmake/gcc.mak
++++ STLport-5.1.5/build/Makefiles/gmake/gcc.mak
+@@ -29,6 +29,11 @@
+ CXX_VERSION := $(shell ${CXX} --version | grep GCC | awk '{ print $$3; }')
+
+ ifeq ($(CXX_VERSION),)
++# Current g++-4.3
++CXX_VERSION := $(shell ${CXX} --version | grep '^g++' | awk '{ print $$4; }')
++endif
++
++ifeq ($(CXX_VERSION),)
+ # 2.95 report only version
+ CXX_VERSION := $(shell ${CXX} --version)
+ endif
+--- STLport-5.1.5.orig/stlport/limits.h
++++ STLport-5.1.5/stlport/limits.h
+@@ -24,7 +24,11 @@
+ struct _exception;
+ #endif
+
+-#include _STLP_NATIVE_C_HEADER(limits.h)
++#if defined (_STLP_HAS_INCLUDE_NEXT)
++# include_next <limits.h>
++#else
++# include _STLP_NATIVE_C_HEADER(limits.h)
++#endif
+
+ #if (_STLP_OUTERMOST_HEADER_ID == 0x201)
+ # if ! defined (_STLP_DONT_POP_HEADER_ID)
+--- STLport-5.1.5.orig/stlport/stl/config/_gcc.h
++++ STLport-5.1.5/stlport/stl/config/_gcc.h
+@@ -4,6 +4,8 @@
+
+ #define _STLP_COMPILER "gcc"
+
++#define _STLP_HAS_INCLUDE_NEXT 1
++
+ /* Systems having GLIBC installed have different traits */
+ #if defined (__linux__)
+ # ifndef _STLP_USE_GLIBC
diff --git a/dev-libs/STLport/files/STLport-5.1.5-hppa.patch b/dev-libs/STLport/files/STLport-5.1.5-hppa.patch
new file mode 100644
index 000000000000..57e6ef7791cf
--- /dev/null
+++ b/dev-libs/STLport/files/STLport-5.1.5-hppa.patch
@@ -0,0 +1,24 @@
+--- STLport-5.1.5.orig/build/Makefiles/gmake/lib/gcc.mak
++++ STLport-5.1.5/build/Makefiles/gmake/lib/gcc.mak
+@@ -93,6 +93,9 @@
+ #START_A_OBJ := $(shell for o in crt{i,beginT}.o; do ${CXX} -print-file-name=$$o; done)
+ END_OBJ := $(shell for o in crtendS.o crtn.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
+ STDLIBS := -Wl,--whole-archive -lsupc++ ${_LGCC_EH} -Wl,--no-whole-archive ${_LGCC_S} -lpthread -lc -lm
++ifneq (,$(findstring $(M_ARCH),hppa parisc64 parisc))
++STDLIBS += -lgcc
++endif
+ endif
+ ifeq ($(OSNAME),openbsd)
+ START_OBJ := $(shell for o in crtbeginS.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
+--- STLport-5.1.5.orig/build/Makefiles/gmake/app/gcc.mak
++++ STLport-5.1.5/build/Makefiles/gmake/app/gcc.mak
+@@ -107,6 +107,9 @@
+ START_OBJ := $(shell for o in crt1.o crti.o crtbegin.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
+ END_OBJ := $(shell for o in crtend.o crtn.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
+ STDLIBS = ${STLPORT_LIB} ${_LGCC_S} -lpthread -lc -lm
++ifneq (,$(findstring $(M_ARCH),hppa parisc64 parisc))
++STDLIBS += -lgcc
++endif
+ endif
+ ifeq ($(OSNAME),openbsd)
+ START_OBJ := $(shell for o in crt{0,begin}.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
diff --git a/dev-libs/STLport/files/STLport-5.1.5-portability-hack.patch b/dev-libs/STLport/files/STLport-5.1.5-portability-hack.patch
new file mode 100644
index 000000000000..70b978dd596f
--- /dev/null
+++ b/dev-libs/STLport/files/STLport-5.1.5-portability-hack.patch
@@ -0,0 +1,26 @@
+--- STLport-5.1.5.orig/stlport/stl/config/_gcc.h
++++ STLport-5.1.5/stlport/stl/config/_gcc.h
+@@ -459,3 +459,23 @@
+ # define _STLP_STATIC_TEMPLATE_DATA 1
+ #endif
+
++/* Ugly hack here ; we pull in GNU libc <bits/mathdef.h> to find out whether
++ * this platform has `long double' type. It solves #356570.
++ *
++ * THIS IS BAD BECAUSE WE POLLUTE THE GLOBAL NAMESPACE.
++ */
++#ifdef __GLIBC__
++# if !defined(_MATH_H)
++# define _HACK_UNDEF_MATH_H
++# define _MATH_H
++# endif
++# include <bits/mathdef.h>
++# if defined(__NO_LONG_DOUBLE_MATH)
++# define _STLP_NO_LONG_DOUBLE
++# endif
++# if defined(_HACK_UNDEF_MATH_H)
++# undef _HACK_UNDEF_MATH_H
++# undef _MATH_H
++# endif
++#endif
++