From patchwork Mon Feb 4 15:53:35 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: Add missing explicit instantiation for std::lower_bound template Date: Mon, 04 Feb 2013 05:53:35 -0000 From: Dodji Seketeli X-Patchwork-Id: 217974 Message-Id: <8738xcm5xc.fsf@redhat.com> To: GCC Patches Cc: =?utf-8?Q?Fran=C3=A7ois?= Dumont , Jonathan Wakely , Paolo Carlini , Benjamin De Kosnik 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 Date: Fri Feb 1 20:44:41 2013 +0000 2013-02-01 François Dumont * 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 + + 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 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 const*, + const unsigned long &); } // namespace std