app-text/crf++: fix build with >=sys-devel/gcc-6
authorAkinori Hattori <hattya@gentoo.org>
Sun, 17 Dec 2017 09:04:05 +0000 (18:04 +0900)
committerAkinori Hattori <hattya@gentoo.org>
Sun, 17 Dec 2017 09:18:34 +0000 (18:18 +0900)
Package-Manager: Portage-2.3.13, Repoman-2.3.4

app-text/crf++/crf++-0.54.ebuild
app-text/crf++/files/crf++-0.54-c++11.patch [new file with mode: 0644]

index 204eda15114884c2a3a1b6e76f5868be3b540611..e282ca87c965930eb1e767443105a33f943c83f6 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2011 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="3"
@@ -22,6 +22,7 @@ src_prepare() {
                -e "/CXXFLAGS/s/-O3/${CXXFLAGS}/" \
                configure.in || die
 
+       epatch "${FILESDIR}"/${P}-c++11.patch
        # bug #365921
        epatch "${FILESDIR}/${P}-gcc46.patch"
 
diff --git a/app-text/crf++/files/crf++-0.54-c++11.patch b/app-text/crf++/files/crf++-0.54-c++11.patch
new file mode 100644 (file)
index 0000000..a71cd90
--- /dev/null
@@ -0,0 +1,37 @@
+--- a/feature_index.cpp
++++ b/feature_index.cpp
+@@ -34,8 +34,9 @@
+   std::map <std::string, std::pair<int, unsigned int> >::iterator
+       it = dic_.find(key);
+   if (it == dic_.end()) {
+-    dic_.insert(std::make_pair<std::string, std::pair<int, unsigned int> >
+-                (key, std::make_pair<int, unsigned int>(maxid_, 1)));
++    dic_.insert(std::make_pair
++                (std::string(key),
++                 std::make_pair(maxid_, static_cast<unsigned int>(1))));
+     int n = maxid_;
+     maxid_ += (key[0] == 'U' ? y_.size() : y_.size() * y_.size());
+     return n;
+@@ -171,7 +172,7 @@
+     const std::string &key = it->first;
+ 
+     if (it->second.second >= freq) {
+-      old2new.insert(std::make_pair<int, int>(it->second.first, new_maxid));
++      old2new.insert(std::make_pair(it->second.first, new_maxid));
+       it->second.first = new_maxid;
+       new_maxid += (key[0] == 'U' ? y_.size() : y_.size() * y_.size());
+       ++it;
+@@ -264,9 +265,10 @@
+     size_t size = tokenize(line, "\t ", column, 2);
+     CHECK_FALSE(size == 2) << "format error: " << filename1;
+ 
+-    dic_.insert(std::make_pair<std::string, std::pair<int, unsigned int> >
+-                (column[1],
+-                 std::make_pair<int, unsigned int>(std::atoi(column[0]), 1)));
++    dic_.insert(std::make_pair
++                (std::string(column[1]),
++                 std::make_pair(std::atoi(column[0]),
++                                static_cast<unsigned int>(1))));
+   }
+ 
+   std::vector<double> alpha;