Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32367 3c298f89-4303-0410-b956-a3cf2f4a3e73
- Loading branch information
nbd
committed
Jun 14, 2012
1 parent
ba9de6d
commit fbed636
Showing
8 changed files
with
380 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
# | ||
# Copyright (C) 2006-2012 OpenWrt.org | ||
# | ||
# This is free software, licensed under the GNU General Public License v2. | ||
# See /LICENSE for more information. | ||
# | ||
|
||
include $(TOPDIR)/rules.mk | ||
|
||
PKG_NAME:=uclibc++ | ||
PKG_VERSION:=0.2.3 | ||
PKG_RELEASE:=1 | ||
|
||
PKG_SOURCE:=uClibc++-$(PKG_VERSION).tar.bz2 | ||
PKG_SOURCE_URL:=http://cxx.uclibc.org/src/ | ||
PKG_MD5SUM:=fd71a433ce1de85885d658f47885ab30 | ||
|
||
PKG_BUILD_DIR:=$(BUILD_DIR)/uClibc++-$(PKG_VERSION) | ||
PKG_BUILD_PARALLEL:=1 | ||
|
||
PKG_INSTALL:=1 | ||
|
||
include $(INCLUDE_DIR)/package.mk | ||
|
||
define Package/uclibcxx | ||
NAME:=uclibc++ | ||
SECTION:=libs | ||
CATEGORY:=Libraries | ||
TITLE:=C++ library for embedded systems | ||
URL:=http://cxx.uclibc.org/src/ | ||
endef | ||
|
||
UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \ | ||
-e 's/i.86/i386/' \ | ||
-e 's/sparc.*/sparc/' \ | ||
-e 's/m68k.*/m68k/' \ | ||
-e 's/ppc/powerpc/g' \ | ||
-e 's/v850.*/v850/g' \ | ||
-e 's/sh64/sh/' \ | ||
-e 's/sh[234].*/sh/' \ | ||
-e 's/mips.*/mips/' \ | ||
-e 's/mipsel.*/mips/' \ | ||
-e 's/cris.*/cris/' \ | ||
) | ||
|
||
TARGET_CFLAGS += $(FPIC) | ||
|
||
MAKE_FLAGS:= \ | ||
TOPDIR="$(PKG_BUILD_DIR)/" \ | ||
$(TARGET_CONFIGURE_OPTS) \ | ||
CPU_CFLAGS="$(TARGET_CFLAGS)" \ | ||
CROSS="$(TARGET_CROSS)" \ | ||
CP="$(CP)" \ | ||
GEN_LIBS="-lc $(LIBGCC_S)" \ | ||
check_as_needed= | ||
|
||
# check_as_needed overrides dependency on libgcc_s | ||
|
||
define Build/Configure | ||
if [ -f ./files/config.$(UCLIBC_TARGET_ARCH) ]; then \ | ||
cp ./files/config.$(UCLIBC_TARGET_ARCH) $(PKG_BUILD_DIR)/.config; \ | ||
else \ | ||
cp ./files/config.default $(PKG_BUILD_DIR)/.config; \ | ||
fi | ||
endef | ||
|
||
define Build/InstallDev | ||
$(INSTALL_DIR) $(2)/bin $(1)/usr/include/uClibc++ $(1)/usr/lib | ||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/bin/g++-uc $(2)/bin/ | ||
$(CP) $(PKG_INSTALL_DIR)/include/* $(1)/usr/include/uClibc++/ | ||
$(CP) $(PKG_INSTALL_DIR)/lib/libuClibc++*.{a,so}* $(1)/usr/lib/ | ||
$(SED) 's|-I/include/|-I$(STAGING_DIR)/usr/include/uClibc++/|g' $(2)/bin/g++-uc | ||
$(SED) 's|-L/lib/|-L$(STAGING_DIR)/usr/lib/|g' $(2)/bin/g++-uc | ||
# add another wrapper which links against both uClibc++ and libstdc++ | ||
$(INSTALL_BIN) $(2)/bin/g++-uc $(2)/bin/g++-uc+std | ||
$(SED) 's|^WRAPPER_INCLUDEDIR=.*||g' $(2)/bin/g++-uc+std | ||
$(SED) 's|-luClibc++|-Wl,-Bdynamic,-luClibc++,-Bstatic,-lstdc++,-Bdynamic|g' $(2)/bin/g++-uc+std | ||
$(SED) 's|-nostdinc++||g' $(2)/bin/g++-uc+std | ||
endef | ||
|
||
define Package/uclibcxx/install | ||
$(INSTALL_DIR) $(1)/usr/lib | ||
$(CP) $(PKG_INSTALL_DIR)/lib/libuClibc++.so.* $(1)/usr/lib/ | ||
$(CP) $(PKG_INSTALL_DIR)/lib/libuClibc++-*.so $(1)/usr/lib/ | ||
endef | ||
|
||
$(eval $(call BuildPackage,uclibcxx)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# | ||
# Automatically generated make config: don't edit | ||
# | ||
|
||
# | ||
# Target Features and Options | ||
# | ||
UCLIBCXX_HAS_FLOATS=y | ||
# UCLIBCXX_HAS_LONG_DOUBLE is not set | ||
# UCLIBCXX_HAS_TLS is not set | ||
WARNINGS="-Wall" | ||
BUILD_EXTRA_LIBRARIES="" | ||
HAVE_DOT_CONFIG=y | ||
|
||
# | ||
# String and I/O Stream Support | ||
# | ||
UCLIBCXX_HAS_WCHAR=y | ||
UCLIBCXX_IOSTREAM_BUFSIZE=32 | ||
UCLIBCXX_HAS_LFS=y | ||
UCLIBCXX_SUPPORT_CDIR=y | ||
UCLIBCXX_SUPPORT_CIN=y | ||
UCLIBCXX_SUPPORT_COUT=y | ||
UCLIBCXX_SUPPORT_CERR=y | ||
UCLIBCXX_SUPPORT_CLOG=y | ||
UCLIBCXX_SUPPORT_WCIN=y | ||
UCLIBCXX_SUPPORT_WCOUT=y | ||
UCLIBCXX_SUPPORT_WCERR=y | ||
UCLIBCXX_SUPPORT_WCLOG=y | ||
|
||
# | ||
# STL and Code Expansion | ||
# | ||
UCLIBCXX_STL_BUFFER_SIZE=32 | ||
UCLIBCXX_CODE_EXPANSION=y | ||
UCLIBCXX_EXPAND_CONSTRUCTORS_DESTRUCTORS=y | ||
UCLIBCXX_EXPAND_STRING_CHAR=y | ||
UCLIBCXX_EXPAND_VECTOR_BASIC=y | ||
UCLIBCXX_EXPAND_IOS_CHAR=y | ||
UCLIBCXX_EXPAND_STREAMBUF_CHAR=y | ||
UCLIBCXX_EXPAND_ISTREAM_CHAR=y | ||
UCLIBCXX_EXPAND_OSTREAM_CHAR=y | ||
UCLIBCXX_EXPAND_FSTREAM_CHAR=y | ||
UCLIBCXX_EXPAND_SSTREAM_CHAR=y | ||
|
||
# | ||
# Library Installation Options | ||
# | ||
UCLIBCXX_RUNTIME_PREFIX="" | ||
UCLIBCXX_RUNTIME_INCLUDE_SUBDIR="/include" | ||
UCLIBCXX_RUNTIME_LIB_SUBDIR="/lib" | ||
UCLIBCXX_RUNTIME_BIN_SUBDIR="/bin" | ||
UCLIBCXX_EXCEPTION_SUPPORT=y | ||
IMPORT_LIBSUP=y | ||
# IMPORT_LIBGCC_EH is not set | ||
BUILD_STATIC_LIB=y | ||
# BUILD_ONLY_STATIC_LIB is not set | ||
# DODEBUG is not set |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
diff -ur old/bin/Makefile dev/bin/Makefile | ||
--- old/bin/Makefile Sat Oct 14 17:49:54 2006 | ||
+++ dev/bin/Makefile Sat Oct 14 17:57:33 2006 | ||
@@ -13,7 +13,7 @@ | ||
$(INSTALL) -m 755 $(WRAPPER) $(PREFIX)$(UCLIBCXX_RUNTIME_BINDIR) | ||
|
||
$(WRAPPER): | ||
- echo '#!/bin/sh' > $(WRAPPER) | ||
+ echo '#!/usr/bin/env bash' > $(WRAPPER) | ||
echo '' >> $(WRAPPER) | ||
echo 'WRAPPER_INCLUDEDIR="$${WRAPPER_INCLUDEDIR:=-I$(UCLIBCXX_RUNTIME_INCLUDEDIR)}"' >> $(WRAPPER) | ||
echo 'WRAPPER_LIBDIR="$${WRAPPER_LIBDIR:=-L$(UCLIBCXX_RUNTIME_LIBDIR)}"' >> $(WRAPPER) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
diff -ur old/src/Makefile dev/src/Makefile | ||
--- old/src/Makefile Sat Oct 14 17:49:54 2006 | ||
+++ dev/src/Makefile Sat Oct 14 18:02:30 2006 | ||
@@ -25,12 +25,14 @@ | ||
|
||
all: libgcc_eh libsupc $(EXOBJS) $(ALLBIN) | ||
|
||
+CP = cp -fPR | ||
+ | ||
install: | ||
$(INSTALL) -d $(PREFIX)$(UCLIBCXX_RUNTIME_LIBDIR) | ||
ifneq ($(BUILD_ONLY_STATIC_LIB),y) | ||
$(INSTALL) -m 755 $(SHARED_FULLNAME) \ | ||
$(PREFIX)$(UCLIBCXX_RUNTIME_LIBDIR) | ||
- cp -fa $(SHARED_MAJORNAME) $(LIBNAME).so $(PREFIX)$(UCLIBCXX_RUNTIME_LIBDIR) | ||
+ $(CP) $(SHARED_MAJORNAME) $(LIBNAME).so $(PREFIX)$(UCLIBCXX_RUNTIME_LIBDIR) | ||
endif | ||
ifeq ($(BUILD_STATIC_LIB),y) | ||
$(INSTALL) -m 644 $(LIBNAME).a $(PREFIX)$(UCLIBCXX_RUNTIME_LIBDIR) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
diff -ruN uClibc++-0.2.2-old/src/abi/libgcc_eh/Makefile uClibc++-0.2.2-new/src/abi/libgcc_eh/Makefile | ||
--- uClibc++-0.2.2-old/src/abi/libgcc_eh/Makefile 2007-06-04 00:51:13.000000000 +0200 | ||
+++ uClibc++-0.2.2-new/src/abi/libgcc_eh/Makefile 2007-09-03 21:51:07.000000000 +0200 | ||
@@ -16,7 +16,7 @@ | ||
# | ||
#else | ||
# echo Binary | ||
- $(AR) x $(shell CC=$(CC) $(TOPDIR)/scripts/find_libgcc_eh.sh) | ||
+ $(AR) x $(shell CC="$(CC)" $(TOPDIR)/scripts/find_libgcc_eh.sh) | ||
#endif | ||
#endif | ||
|
||
diff -ruN uClibc++-0.2.2-old/src/abi/libsupc/Makefile uClibc++-0.2.2-new/src/abi/libsupc/Makefile | ||
--- uClibc++-0.2.2-old/src/abi/libsupc/Makefile 2007-06-04 00:51:13.000000000 +0200 | ||
+++ uClibc++-0.2.2-new/src/abi/libsupc/Makefile 2007-09-03 21:51:17.000000000 +0200 | ||
@@ -14,7 +14,7 @@ | ||
# | ||
#else | ||
# echo Binary | ||
- $(AR) x $(shell CC=$(CC) $(TOPDIR)/scripts/find_libsupc.sh) | ||
+ $(AR) x $(shell CC="$(CC)" $(TOPDIR)/scripts/find_libsupc.sh) | ||
$(RM) -f new_op*.o del_op*.o pure.o new_handler.o eh_alloc.o eh_globals.o | ||
# | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
diff -ruN uClibc++-0.2.2-old/bin/Makefile uClibc++-0.2.2-new/bin/Makefile | ||
--- uClibc++-0.2.2-old/bin/Makefile 2007-09-23 13:46:10.000000000 +0200 | ||
+++ uClibc++-0.2.2-new/bin/Makefile 2007-09-23 13:47:03.000000000 +0200 | ||
@@ -25,7 +25,7 @@ | ||
echo 'while [ -n "$$1" ]' >> $(WRAPPER) | ||
echo 'do' >> $(WRAPPER) | ||
echo ' WRAPPER_OPTIONS="$$WRAPPER_OPTIONS $$1"' >> $(WRAPPER) | ||
- echo ' if [ "$$1" = "-c" -o "$$1" = "-E" -o "$$1" = "-S" ]' >> $(WRAPPER) | ||
+ echo ' if [ "$$1" = "-c" -o "$$1" = "-E" -o "$$1" = "-S" -o "$$1" = "-MF" ]' >> $(WRAPPER) | ||
echo ' then' >> $(WRAPPER) | ||
echo ' WRAPPER_INCLIB="N"' >> $(WRAPPER) | ||
echo ' fi' >> $(WRAPPER) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
Index: uClibc++-0.2.2/include/typeinfo | ||
=================================================================== | ||
--- uClibc++-0.2.2.orig/include/typeinfo 2008-02-13 00:37:04.000000000 +0100 | ||
+++ uClibc++-0.2.2/include/typeinfo 2008-02-13 00:37:34.000000000 +0100 | ||
@@ -44,6 +44,7 @@ | ||
class __class_type_info; | ||
} // namespace __cxxabiv1 | ||
|
||
+#ifndef __GXX_MERGED_TYPEINFO_NAMES | ||
#if !__GXX_WEAK__ | ||
// If weak symbols are not supported, typeinfo names are not merged. | ||
#define __GXX_MERGED_TYPEINFO_NAMES 0 | ||
@@ -51,6 +52,7 @@ | ||
// On platforms that support weak symbols, typeinfo names are merged. | ||
#define __GXX_MERGED_TYPEINFO_NAMES 1 | ||
#endif | ||
+#endif | ||
|
||
namespace std | ||
{ | ||
Index: uClibc++-0.2.2/include/unwind-cxx.h | ||
=================================================================== | ||
--- uClibc++-0.2.2.orig/include/unwind-cxx.h 2008-02-13 00:38:04.000000000 +0100 | ||
+++ uClibc++-0.2.2/include/unwind-cxx.h 2008-02-13 00:40:32.000000000 +0100 | ||
@@ -135,6 +135,7 @@ | ||
|
||
// This is the exception class we report -- "GNUCC++\0". | ||
const _Unwind_Exception_Class __gxx_exception_class | ||
+#ifndef __ARM_EABI_UNWINDER__ | ||
= ((((((((_Unwind_Exception_Class) 'G' | ||
<< 8 | (_Unwind_Exception_Class) 'N') | ||
<< 8 | (_Unwind_Exception_Class) 'U') | ||
@@ -143,6 +144,9 @@ | ||
<< 8 | (_Unwind_Exception_Class) '+') | ||
<< 8 | (_Unwind_Exception_Class) '+') | ||
<< 8 | (_Unwind_Exception_Class) '\0'); | ||
+#else | ||
+= "GNUC++"; | ||
+#endif | ||
|
||
// GNU C++ personality routine, Version 0. | ||
extern "C" _Unwind_Reason_Code __gxx_personality_v0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,126 @@ | ||
--- a/include/associative_base | ||
+++ b/include/associative_base | ||
@@ -511,7 +511,7 @@ | ||
|
||
pair<iterator, bool> insert(const value_type& x){ | ||
pair<iterator, bool> retval; | ||
- iterator location = lower_bound(value_to_key(x)); | ||
+ iterator location = lower_bound(this->value_to_key(x)); | ||
retval.second = true; | ||
//Empty list or need to insert at end | ||
if(end() == location){ | ||
@@ -520,7 +520,7 @@ | ||
return retval; | ||
} | ||
//Something in the list | ||
- if(c(value_to_key(x), value_to_key(*location))){ | ||
+ if(c(this->value_to_key(x), this->value_to_key(*location))){ | ||
location = backing.insert(location.base_iterator(), x); | ||
retval.first = location; | ||
}else{ | ||
@@ -604,7 +604,7 @@ | ||
} | ||
|
||
iterator insert(const value_type& x){ | ||
- iterator location = lower_bound(value_to_key(x)); | ||
+ iterator location = lower_bound(this->value_to_key(x)); | ||
|
||
if(location == begin()){ | ||
backing.push_front(x); | ||
--- a/include/fstream | ||
+++ b/include/fstream | ||
@@ -72,9 +72,9 @@ | ||
pbuffer = new char_type[__UCLIBCXX_IOSTREAM_BUFSIZE__]; | ||
gbuffer = new char_type[__UCLIBCXX_IOSTREAM_BUFSIZE__]; | ||
|
||
- setp(pbuffer, pbuffer + __UCLIBCXX_IOSTREAM_BUFSIZE__); | ||
+ this->setp(pbuffer, pbuffer + __UCLIBCXX_IOSTREAM_BUFSIZE__); | ||
//Position get buffer so that there is no data available | ||
- setg(gbuffer, gbuffer + __UCLIBCXX_IOSTREAM_BUFSIZE__, | ||
+ this->setg(gbuffer, gbuffer + __UCLIBCXX_IOSTREAM_BUFSIZE__, | ||
gbuffer + __UCLIBCXX_IOSTREAM_BUFSIZE__); | ||
} | ||
|
||
--- a/include/string | ||
+++ b/include/string | ||
@@ -426,7 +426,7 @@ | ||
} | ||
_UCXXEXPORT size_type find (Ch c, size_type pos = 0) const{ | ||
for(size_type i = pos; i < length(); ++i){ | ||
- if(operator[](i) == c){ | ||
+ if(this->operator[](i) == c){ | ||
return i; | ||
} | ||
} | ||
@@ -456,7 +456,7 @@ | ||
_UCXXEXPORT size_type find_first_of(const basic_string& str, size_type pos = 0) const{ | ||
for(size_type i = pos; i < length(); ++i){ | ||
for(size_type j = 0; j < str.length() ; ++j){ | ||
- if( Tr::eq(str[j], operator[](i)) ){ | ||
+ if( Tr::eq(str[j], this->operator[](i)) ){ | ||
return i; | ||
} | ||
} | ||
@@ -472,7 +472,7 @@ | ||
} | ||
_UCXXEXPORT size_type find_first_of(Ch c, size_type pos = 0) const{ | ||
for(size_type i = pos; i< length(); ++i){ | ||
- if( Tr::eq(operator[](i), c) ){ | ||
+ if( Tr::eq(this->operator[](i), c) ){ | ||
return i; | ||
} | ||
} | ||
@@ -485,7 +485,7 @@ | ||
} | ||
for(size_type i = pos; i >0 ; --i){ | ||
for(size_type j = 0 ; j < str.length(); ++j){ | ||
- if( Tr::eq(operator[](i-1), str[j]) ){ | ||
+ if( Tr::eq(this->operator[](i-1), str[j]) ){ | ||
return i-1; | ||
} | ||
} | ||
@@ -503,7 +503,7 @@ | ||
pos = length(); | ||
} | ||
for(size_type i = pos; i >0 ; --i){ | ||
- if( Tr::eq(operator[](i-1), c) ){ | ||
+ if( Tr::eq(this->operator[](i-1), c) ){ | ||
return i-1; | ||
} | ||
} | ||
@@ -515,7 +515,7 @@ | ||
for(size_type i = pos; i < length(); ++i){ | ||
foundCharacter = false; | ||
for(size_type j = 0; j < str.length() ; ++j){ | ||
- if( Tr::eq(str[j], operator[](i)) ){ | ||
+ if( Tr::eq(str[j], this->operator[](i)) ){ | ||
foundCharacter = true; | ||
} | ||
} | ||
@@ -534,7 +534,7 @@ | ||
} | ||
_UCXXEXPORT size_type find_first_not_of(Ch c, size_type pos = 0) const{ | ||
for(size_type i = pos; i < length() ; ++i){ | ||
- if(operator[](i) != c){ | ||
+ if(this->operator[](i) != c){ | ||
return i; | ||
} | ||
} | ||
@@ -546,7 +546,7 @@ | ||
xpos = pos; | ||
} | ||
|
||
- while(xpos != npos && npos != str.find_first_of(at(xpos))){ | ||
+ while(xpos != npos && npos != str.find_first_of(this->at(xpos))){ | ||
--xpos; | ||
} | ||
|
||
@@ -564,7 +564,7 @@ | ||
if(xpos > pos){ | ||
xpos = pos; | ||
} | ||
- while(xpos != npos && Tr::eq(at(xpos), c)){ | ||
+ while(xpos != npos && Tr::eq(this->at(xpos), c)){ | ||
--xpos; | ||
} | ||
return xpos; |