[PATCH] Add missing explicit instantiation for std::lower_bound template
Dodji Seketeli
dodji@redhat.com
Mon Feb 4 15:53:00 GMT 2013
Hello,
Since commit r195676[1], it looks like
libstdc++-v3/src/c++11/hashtable_c++0x.cc is missing an explicit
instantiation for std::lower_bound. This leads to libstdc++.so having
the symbol for that (missing) instantiation be undefined, thus
preventing executables from being linked with libstdc++.
The patchlet below seems to fixed the issue for me.
Boostrapped and tested on x86_64-unknown-linux-gnu.
[1]:
commit bc36b44c7cb0e5e97ac807b8fb17507e0fb09008
Author: fdumont <fdumont@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri Feb 1 20:44:41 2013 +0000
2013-02-01 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h
(_Prime_rehash_policy::_M_next_bkt)
(_Prime_rehash_policy::_M_need_rehash): Move definition...
* src/c++11/hashtable_c++0x.cc: ... here.
* src/shared/hashtable-aux.cc: Remove c++config.h include.
* config/abi/gnu.ver (GLIBCXX_3.4.18): Export _Prime_rehash_policy
symbols.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195676 138bc75d-0d04-0410-961f-82ee72b054a4
libstdc++-v3/ChangeLog
* libstdc++-v3/src/c++11/hashtable_c++0x.cc (namespace std): Add
missing instantiation for std::lower_bound template.
---
libstdc++-v3/ChangeLog | 6 ++++++
libstdc++-v3/src/c++11/hashtable_c++0x.cc | 7 +++++++
2 files changed, 13 insertions(+)
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 1a8a822..8ae9343 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2013-02-04 Dodji Seketeli <dodji@redhat.com>
+
+ Add missing explicit instantiation for std::lower_bound template
+ * libstdc++-v3/src/c++11/hashtable_c++0x.cc (namespace std): Add
+ missing instantiation for std::lower_bound template.
+
2013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
Update copyright years.
diff --git a/libstdc++-v3/src/c++11/hashtable_c++0x.cc b/libstdc++-v3/src/c++11/hashtable_c++0x.cc
index 7617c58..942d119 100644
--- a/libstdc++-v3/src/c++11/hashtable_c++0x.cc
+++ b/libstdc++-v3/src/c++11/hashtable_c++0x.cc
@@ -94,4 +94,11 @@ namespace __detail
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace __detail
+
+ // Instantiations.
+ template unsigned long const*
+ lower_bound<unsigned long const *,
+ unsigned long>(unsigned long const*,
+ unsigned long const*,
+ const unsigned long &);
} // namespace std
--
Dodji
More information about the Gcc-patches
mailing list