summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKacper Kołodziej <kacper@kolodziej.in>2016-09-18 17:50:39 +0200
committerDavid Seifert <soap@gentoo.org>2016-09-19 23:23:47 +0200
commit00d100aaf6edc62928cafc6e0e8781979b19969e (patch)
tree9497ba80a9587d78f7ffc1bd852f346712ce3257 /dev-cpp/libcult
parentdev-python/rope: remove unused patches (diff)
downloadgentoo-00d100aaf6edc62928cafc6e0e8781979b19969e.tar.gz
gentoo-00d100aaf6edc62928cafc6e0e8781979b19969e.tar.bz2
gentoo-00d100aaf6edc62928cafc6e0e8781979b19969e.zip
dev-cpp/libcult: fix cpp14 compilation; bug 593928
* remove throw specificator in operator new declaration when compilation is performed using standard >= C++11 * add cast from normal iterator to const iterator in one place Gentoo bug: https://bugs.gentoo.org/show_bug.cgi?id=593928 Closes: https://github.com/gentoo/gentoo/pull/2357 Signed-off-by: David Seifert <soap@gentoo.org>
Diffstat (limited to 'dev-cpp/libcult')
-rw-r--r--dev-cpp/libcult/files/libcult-1.4.6-cpp14.patch163
-rw-r--r--dev-cpp/libcult/libcult-1.4.6-r1.ebuild1
2 files changed, 164 insertions, 0 deletions
diff --git a/dev-cpp/libcult/files/libcult-1.4.6-cpp14.patch b/dev-cpp/libcult/files/libcult-1.4.6-cpp14.patch
new file mode 100644
index 000000000000..b35712248fb7
--- /dev/null
+++ b/dev-cpp/libcult/files/libcult-1.4.6-cpp14.patch
@@ -0,0 +1,163 @@
+Fix compilation with GCC 6.x (C++14 as default standard). Remove throw
+specificator from function declaration when compilation is performed with
+standard >= C++11. Adds one cast to argument in C++11, C++14.
+Gentoo bug: https://bugs.gentoo.org/show_bug.cgi?id=593928
+
+--- a/cult/cli/file-arguments.hxx
++++ b/cult/cli/file-arguments.hxx
+@@ -46,8 +46,12 @@
+ {
+ if (i >= size ())
+ throw Bounds ();
+-
+- args_.erase (args_.begin () + i);
++
++#if __cplusplus < 201103L
++ args_.erase (args_.begin() + i);
++#else
++ args_.erase ((Containers::Vector<String>::ConstIterator)(args_.begin () + i));
++#endif
+ }
+
+ private:
+--- a/cult/mm/new.cxx
++++ b/cult/mm/new.cxx
+@@ -140,7 +140,12 @@
+ using namespace Cult;
+
+ Void*
+-operator new (Size s) throw (MM::StdBadAlloc)
++operator new (Size s)
++#if __cplusplus < 201103L
++throw (MM::StdBadAlloc)
++#else
++noexcept(false)
++#endif
+ {
+ return MM::allocate (s, *MM::counted);
+ }
+--- a/cult/mm/new.hxx
++++ b/cult/mm/new.hxx
+@@ -255,7 +255,13 @@
+ }
+
+ Cult::Void*
+-operator new (Cult::Size) throw (Cult::MM::StdBadAlloc);
++operator new (Cult::Size)
++#if __cplusplus < 201103L
++throw (Cult::MM::StdBadAlloc)
++#else
++noexcept(false)
++#endif
++;
+
+ Cult::Void*
+ operator new (Cult::Size,
+--- a/cult/sched/condition.cxx
++++ b/cult/sched/condition.cxx
+@@ -12,6 +12,9 @@
+ {
+ Condition::
+ ~Condition ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
+ {
+ if (Int e = pthread_cond_destroy (&cond_))
+ throw Implementation (e);
+--- a/cult/sched/condition.hxx
++++ b/cult/sched/condition.hxx
+@@ -19,7 +19,11 @@
+ class Condition: public NonCopyable
+ {
+ public:
+- ~Condition ();
++ ~Condition ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
++ ;
+
+ Condition (Mutex& mutex);
+
+--- a/cult/sched/mutex.cxx
++++ b/cult/sched/mutex.cxx
+@@ -12,6 +12,9 @@
+ {
+ Mutex::
+ ~Mutex ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
+ {
+ if (Int e = pthread_mutex_destroy (&mutex_))
+ throw Implementation (e);
+--- a/cult/sched/mutex.hxx
++++ b/cult/sched/mutex.hxx
+@@ -17,7 +17,11 @@
+ class Mutex: public NonCopyable
+ {
+ public:
+- ~Mutex ();
++ ~Mutex ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
++ ;
+
+ Mutex ();
+
+--- a/cult/sched/spin.cxx
++++ b/cult/sched/spin.cxx
+@@ -12,6 +12,9 @@
+ {
+ Spin::
+ ~Spin ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
+ {
+ if (Int e = pthread_spin_destroy (&spin_))
+ throw Implementation (e);
+--- a/cult/sched/spin.hxx
++++ b/cult/sched/spin.hxx
+@@ -17,7 +17,11 @@
+ class Spin: public NonCopyable
+ {
+ public:
+- ~Spin ();
++ ~Spin ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
++ ;
+
+ Spin ();
+
+--- a/cult/sched/thread.cxx
++++ b/cult/sched/thread.cxx
+@@ -196,6 +196,9 @@
+
+ Thread::
+ ~Thread ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
+ {
+ tout << "thread is being destroyed.";
+
+--- a/cult/sched/thread.hxx
++++ b/cult/sched/thread.hxx
+@@ -30,7 +30,11 @@
+
+ public:
+ virtual
+- ~Thread ();
++ ~Thread ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
++ ;
+
+ Thread (Void* (*StartRoutine) (Void*), Void* arg = 0);
+
diff --git a/dev-cpp/libcult/libcult-1.4.6-r1.ebuild b/dev-cpp/libcult/libcult-1.4.6-r1.ebuild
index aa97dc1e5963..7e86e4ebecb3 100644
--- a/dev-cpp/libcult/libcult-1.4.6-r1.ebuild
+++ b/dev-cpp/libcult/libcult-1.4.6-r1.ebuild
@@ -26,6 +26,7 @@ src_prepare() {
makefile || die "sed failed"
epatch "${FILESDIR}/${PV}-fix-compilation-with-gcc-4.7.patch"
+ epatch "${FILESDIR}/${P}-cpp14.patch" # bug #593928
}
src_configure() {