summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-01-11 22:13:02 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-01-11 22:13:02 +0000
commitd679bbf9ae0781ba7e2d9cf4039d27ab771671ae (patch)
treea5d7c252ed51e9ab03743c1cde26611a15ffdc9f
parente3e22d61ae354b60dc9e22dacb816748e910d286 (diff)
downloadaports-d679bbf9ae0781ba7e2d9cf4039d27ab771671ae.tar.bz2
aports-d679bbf9ae0781ba7e2d9cf4039d27ab771671ae.tar.xz
core/uclibc++: new aport
-rw-r--r--core/uclibc++/APKBUILD39
-rw-r--r--core/uclibc++/associative_base.patch13
-rw-r--r--core/uclibc++/uclibc++.patch97
3 files changed, 149 insertions, 0 deletions
diff --git a/core/uclibc++/APKBUILD b/core/uclibc++/APKBUILD
new file mode 100644
index 00000000..7a400657
--- /dev/null
+++ b/core/uclibc++/APKBUILD
@@ -0,0 +1,39 @@
+# This is an example APKBUILD file. Use this as a start to creating your own,
+# and remove these comments.
+# NOTE: Please fill out the license field for your package! If it is unknown,
+# then please put 'unknown'.
+
+# Contributor: Your Name <youremail@domain.com>
+pkgname=uclibc++
+pkgver=0.2.2
+pkgrel=0
+pkgdesc="Embedded C++ library"
+url="http://cxx.uclibc.org/"
+license='GPL-2'
+depends="uclibc"
+subpackages="$pkgname-dev"
+source="http://cxx.uclibc.org/src/uClibc++-$pkgver.tar.bz2
+ associative_base.patch
+ uclibc++.patch
+ uclibc++config
+ "
+
+build() {
+ cd "$srcdir/uClibc++-$pkgver"
+ cp ../uclibc++config .config
+ make oldconfig
+
+ for i in ../*.patch; do
+ if ! patch -p1 < $i; then
+ error "failed to apply $i"
+ return 1
+ fi
+ done
+ sed -i -e 's:bin/bash:bin/sh:' bin/Makefile scripts/find_lib*
+ make || return 1
+ make DESTDIR="$pkgdir/" install
+}
+
+md5sums="" #generate with 'abuild checksum'
+md5sums="1ceef3209cca88be8f1bd9de99735954 uClibc++-0.2.2.tar.bz2
+3f84b1d45b32585d7050be486e4b20fe uclibc++config"
diff --git a/core/uclibc++/associative_base.patch b/core/uclibc++/associative_base.patch
new file mode 100644
index 00000000..3453c996
--- /dev/null
+++ b/core/uclibc++/associative_base.patch
@@ -0,0 +1,13 @@
+--- a/include/associative_base.orig 2008-03-18 08:46:20 +0000
++++ b/include/associative_base 2008-03-18 08:46:56 +0000
+@@ -221,9 +221,9 @@
+ bool operator!=(const __base_associative & x){
+ return !(x.backing == backing);
+ }
++ void swap(__base_associative & x);
+
+ protected:
+- void swap(__base_associative & x);
+
+ Compare c;
+ std::list<value_type> backing;
diff --git a/core/uclibc++/uclibc++.patch b/core/uclibc++/uclibc++.patch
new file mode 100644
index 00000000..402f25d5
--- /dev/null
+++ b/core/uclibc++/uclibc++.patch
@@ -0,0 +1,97 @@
+--- a/include/associative_base Sun Jun 3 22:51:12 2007
++++ b/include/associative_base Sun Jan 11 21:50:05 2009
+@@ -74,7 +74,7 @@
+ typedef typename std::reverse_iterator<const_iterator> const_reverse_iterator;
+
+
+- explicit __base_associative(const Compare& comp, const Allocator& A, const key_type (*v_to_k)(const value_type))
++ explicit __base_associative(const Compare& comp, const Allocator& A, key_type (*v_to_k)(const value_type))
+ : c(comp), value_to_key(v_to_k) { }
+ protected:
+ __base_associative(const associative_type& x)
+@@ -318,7 +318,7 @@
+ typedef std::list<ValueType> listtype;
+
+ typename listtype::iterator base_iter;
+- typedef _associative_citer<ValueType, Compare, Allocator> _associative_citer;
++ typedef _associative_citer<ValueType, Compare, Allocator> __associative_citer;
+
+
+ public:
+@@ -347,13 +347,13 @@
+ bool operator==(const _associative_iter & m) const{
+ return m.base_iter == base_iter;
+ }
+- bool operator==(const _associative_citer & m) const{
++ bool operator==(const __associative_citer & m) const{
+ return m.base_iter == base_iter;
+ }
+ bool operator!=(const _associative_iter & m) const{
+ return m.base_iter != base_iter;
+ }
+- bool operator!=(const _associative_citer & m) const{
++ bool operator!=(const __associative_citer & m) const{
+ return m.base_iter != base_iter;
+ }
+ _associative_iter & operator++(){
+@@ -378,8 +378,8 @@
+ --base_iter;
+ return temp;
+ }
+- operator _associative_citer() const{
+- return _associative_citer(base_iter);
++ operator __associative_citer() const{
++ return __associative_citer(base_iter);
+ }
+ typename listtype::iterator base_iterator(){
+ return base_iter;
+@@ -498,7 +498,7 @@
+ using base::operator==;
+ using base::operator!=;
+
+- explicit __single_associative(const Compare& comp, const Allocator& A, const key_type (*v_to_k)(const value_type))
++ explicit __single_associative(const Compare& comp, const Allocator& A, key_type (*v_to_k)(const value_type))
+ : base(comp, A, v_to_k) { }
+
+ template <class InputIterator> __single_associative(
+@@ -506,7 +506,7 @@
+ InputIterator last,
+ const Compare& comp,
+ const Allocator& A,
+- const key_type (*v_to_k)(const value_type)
++ key_type (*v_to_k)(const value_type)
+ ) : base(comp, A, v_to_k) {
+ insert(first, last);
+ }
+--- a/include/string Sun Jun 3 22:51:12 2007
++++ b/include/string Sun Jan 11 21:50:18 2009
+@@ -1017,11 +1017,11 @@
+
+ template <> _UCXXEXPORT bool operator==(const string & lhs, const string & rhs);
+ template <> _UCXXEXPORT bool operator==(const char * lhs, const string & rhs);
+-template <> _UCXXEXPORT bool operator==(const string & rhs, const char * rhs);
++template <> _UCXXEXPORT bool operator==(const string & lhs, const char * rhs);
+
+ template <> _UCXXEXPORT bool operator!=(const string & lhs, const string & rhs);
+ template <> _UCXXEXPORT bool operator!=(const char * lhs, const string & rhs);
+-template <> _UCXXEXPORT bool operator!=(const string & rhs, const char * rhs);
++template <> _UCXXEXPORT bool operator!=(const string & lhs, const char * rhs);
+
+ template <> _UCXXEXPORT string operator+(const string & lhs, const char* rhs);
+ template <> _UCXXEXPORT string operator+(const char* lhs, const string & rhs);
+--- a/src/string.cpp Sun Jun 3 22:51:13 2007
++++ b/src/string.cpp Sun Jan 11 21:50:33 2009
+@@ -76,11 +76,11 @@
+
+ template _UCXXEXPORT bool operator==(const string & lhs, const string & rhs);
+ template _UCXXEXPORT bool operator==(const char * lhs, const string & rhs);
+- template _UCXXEXPORT bool operator==(const string & rhs, const char * rhs);
++ template _UCXXEXPORT bool operator==(const string & lhs, const char * rhs);
+
+ template _UCXXEXPORT bool operator!=(const string & lhs, const string & rhs);
+ template _UCXXEXPORT bool operator!=(const char * lhs, const string & rhs);
+- template _UCXXEXPORT bool operator!=(const string & rhs, const char * rhs);
++ template _UCXXEXPORT bool operator!=(const string & lhs, const char * rhs);
+
+ template _UCXXEXPORT string operator+(const string & lhs, const char* rhs);
+ template _UCXXEXPORT string operator+(const char* lhs, const string & rhs);