diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2013-03-17 12:37:39 +0100 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2013-03-17 12:37:39 +0100 |
commit | 3c472d53aaa1bc11e3f927364cd0cdde0df0f50f (patch) | |
tree | 9363754b937790509c7d461859a849196859e780 /pkgs/development/libraries/sword | |
parent | c3cefc669cd11fd5942661e142aeb20c155cc130 (diff) |
sword: fix build with gcc47 via a patch from Gentoo
Diffstat (limited to 'pkgs/development/libraries/sword')
-rw-r--r-- | pkgs/development/libraries/sword/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/libraries/sword/gcc47.patch | 35 |
2 files changed, 36 insertions, 1 deletions
diff --git a/pkgs/development/libraries/sword/default.nix b/pkgs/development/libraries/sword/default.nix index 3486981463f34..f62bc2eb11daf 100644 --- a/pkgs/development/libraries/sword/default.nix +++ b/pkgs/development/libraries/sword/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { buildInputs = [ pkgconfig icu cluceneCore curl ]; # because curl/types.h disappeared since at least curl 7.21.7 - patches = [ ./dont_include_curl_types_h.patch ]; + patches = [ ./dont_include_curl_types_h.patch ./gcc47.patch ]; prePatch = '' patchShebangs .; diff --git a/pkgs/development/libraries/sword/gcc47.patch b/pkgs/development/libraries/sword/gcc47.patch new file mode 100644 index 0000000000000..7b55de75b646a --- /dev/null +++ b/pkgs/development/libraries/sword/gcc47.patch @@ -0,0 +1,35 @@ +https://bugs.gentoo.org/419505 + + +--- a/include/multimapwdef.h ++++ b/include/multimapwdef.h +@@ -12,21 +12,21 @@ class multimapwithdefault : public std::multimap<Key, T, Compare> { + public: + typedef std::pair<const Key, T> value_type; + T& getWithDefault(const Key& k, const T& defaultValue) { +- if (find(k) == this->end()) { +- insert(value_type(k, defaultValue)); ++ if (this->find(k) == this->end()) { ++ this->insert(value_type(k, defaultValue)); + } +- return (*(find(k))).second; ++ return (*(this->find(k))).second; + } + + T& operator[](const Key& k) { +- if (find(k) == this->end()) { +- insert(value_type(k, T())); ++ if (this->find(k) == this->end()) { ++ this->insert(value_type(k, T())); + } +- return (*(find(k))).second; ++ return (*(this->find(k))).second; + } + bool has(const Key& k, const T &val) const { +- typename std::multimap<Key, T, Compare>::const_iterator start = lower_bound(k); +- typename std::multimap<Key, T, Compare>::const_iterator end = upper_bound(k); ++ typename std::multimap<Key, T, Compare>::const_iterator start = this->lower_bound(k); ++ typename std::multimap<Key, T, Compare>::const_iterator end = this->upper_bound(k); + for (; start!=end; start++) { + if (start->second == val) + return true; |