ports/devel/binutils/files/patch-gold_stringpool.cc
Niclas Zeising b9c90aa46a Update to 2.24
Do not install libiberty.a to aviod conflicts with devel/gnulibiberty [0]
Do not install include/ansidecl.h, to avoid conflicts with gcc49 [1]
Fix gold usage when linking c++ code, related to ctors [2]

Thanks to dim for help with getting gold to build with libc++!

PR:		ports/176406 [0], ports/184327 [1]
Submitted by:	Craig Leres <leres@ee.lbl.gov> [0]
		Gerald Pfeifer <gerald@pfeifer.com> [1]
Requested by:	rdivacky [2]
2013-12-16 14:52:26 +00:00

23 lines
990 B
C++

--- gold/stringpool.cc.orig 2010-08-25 10:36:54.000000000 +0200
+++ gold/stringpool.cc 2013-06-22 21:09:24.000000000 +0200
@@ -73,7 +73,10 @@ Stringpool_template<Stringpool_char>::re
{
this->key_to_offset_.reserve(n);
-#if defined(HAVE_TR1_UNORDERED_MAP)
+#if defined(HAVE_UNORDERED_MAP)
+ this->string_set_.rehash(this->string_set_.size() + n);
+ return;
+#elif defined(HAVE_TR1_UNORDERED_MAP)
// rehash() implementation is broken in gcc 4.0.3's stl
//this->string_set_.rehash(this->string_set_.size() + n);
//return;
@@ -503,7 +506,7 @@ template<typename Stringpool_char>
void
Stringpool_template<Stringpool_char>::print_stats(const char* name) const
{
-#if defined(HAVE_TR1_UNORDERED_MAP) || defined(HAVE_EXT_HASH_MAP)
+#if defined(HAVE_UNORDERED_MAP) || defined(HAVE_TR1_UNORDERED_MAP) || defined(HAVE_EXT_HASH_MAP)
fprintf(stderr, _("%s: %s entries: %zu; buckets: %zu\n"),
program_name, name, this->string_set_.size(),
this->string_set_.bucket_count());