From 6e1d47c46a7037d98885677fb4b43227f66c7c96 Mon Sep 17 00:00:00 2001 From: Benjamin Kosnik Date: Tue, 12 Feb 2013 00:39:38 +0000 Subject: [PATCH] Makefile.am (hashtable_c++0x.lo, [...]): Use -fimplicit-templates. 2013-02-11 Benjamin Kosnik * src/c++11/Makefile.am (hashtable_c++0x.lo, hashtable_c++0x.o): Use -fimplicit-templates. * src/c++11/Makefile.in: Regenerate. * src/c++11/hashtable_c++0x.cc: Remove instantiation for std::lower_bound template. From-SVN: r195966 --- libstdc++-v3/ChangeLog | 8 ++++++++ libstdc++-v3/src/c++11/Makefile.am | 7 +++++++ libstdc++-v3/src/c++11/Makefile.in | 7 +++++++ libstdc++-v3/src/c++11/hashtable_c++0x.cc | 7 ------- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 096fd68fd13..56dddcdff0d 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2013-02-11 Benjamin Kosnik + + * src/c++11/Makefile.am (hashtable_c++0x.lo, hashtable_c++0x.o): + Use -fimplicit-templates. + * src/c++11/Makefile.in: Regenerate. + * src/c++11/hashtable_c++0x.cc: Remove instantiation for + std::lower_bound template. + 2013-02-11 Paolo Carlini * include/c_std/cstdlib (at_quick_exit, quick_exit): Do not declare. diff --git a/libstdc++-v3/src/c++11/Makefile.am b/libstdc++-v3/src/c++11/Makefile.am index 89ee335a1e3..e7b48acef46 100644 --- a/libstdc++-v3/src/c++11/Makefile.am +++ b/libstdc++-v3/src/c++11/Makefile.am @@ -60,6 +60,13 @@ vpath % $(top_srcdir)/src/c++11 libc__11convenience_la_SOURCES = $(sources) $(inst_sources) +# Use special rules for the hashtable.cc file so that all +# the generated template functions are also instantiated. +hashtable_c++0x.lo: hashtable_c++0x.cc + $(LTCXXCOMPILE) -fimplicit-templates -c $< +hashtable_c++0x.o: hashtable_c++0x.cc + $(CXXCOMPILE) -fimplicit-templates -c $< + # AM_CXXFLAGS needs to be in each subdirectory so that it can be # modified in a per-library or per-sub-library way. Need to manually # set this option because CONFIG_CXXFLAGS has to be after diff --git a/libstdc++-v3/src/c++11/Makefile.in b/libstdc++-v3/src/c++11/Makefile.in index 793bbae40ea..a410748a4b8 100644 --- a/libstdc++-v3/src/c++11/Makefile.in +++ b/libstdc++-v3/src/c++11/Makefile.in @@ -627,6 +627,13 @@ uninstall-am: vpath % $(top_srcdir)/src/c++11 +# Use special rules for the hashtable.cc file so that all +# the generated template functions are also instantiated. +hashtable_c++0x.lo: hashtable_c++0x.cc + $(LTCXXCOMPILE) -fimplicit-templates -c $< +hashtable_c++0x.o: hashtable_c++0x.cc + $(CXXCOMPILE) -fimplicit-templates -c $< + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/libstdc++-v3/src/c++11/hashtable_c++0x.cc b/libstdc++-v3/src/c++11/hashtable_c++0x.cc index b6a56bcc809..7617c58576b 100644 --- a/libstdc++-v3/src/c++11/hashtable_c++0x.cc +++ b/libstdc++-v3/src/c++11/hashtable_c++0x.cc @@ -94,11 +94,4 @@ namespace __detail _GLIBCXX_END_NAMESPACE_VERSION } // namespace __detail - - // Instantiations. - template - const unsigned long* - lower_bound(const unsigned long*, - const unsigned long*, - const size_t&); } // namespace std -- 2.30.2