aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2013-02-12 00:39:38 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2013-02-12 00:39:38 +0000
commit6e1d47c46a7037d98885677fb4b43227f66c7c96 (patch)
tree767c647181b9eefba945e3e5a20f2016a254f9dc
parent6e310c46bbf413a90816cc9afd76dff561921713 (diff)
downloadgcc-6e1d47c46a7037d98885677fb4b43227f66c7c96.zip
gcc-6e1d47c46a7037d98885677fb4b43227f66c7c96.tar.gz
gcc-6e1d47c46a7037d98885677fb4b43227f66c7c96.tar.bz2
Makefile.am (hashtable_c++0x.lo, [...]): Use -fimplicit-templates.
2013-02-11 Benjamin Kosnik <bkoz@redhat.com> * 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
-rw-r--r--libstdc++-v3/ChangeLog8
-rw-r--r--libstdc++-v3/src/c++11/Makefile.am7
-rw-r--r--libstdc++-v3/src/c++11/Makefile.in7
-rw-r--r--libstdc++-v3/src/c++11/hashtable_c++0x.cc7
4 files changed, 22 insertions, 7 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 096fd68..56dddcd 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,11 @@
+2013-02-11 Benjamin Kosnik <bkoz@redhat.com>
+
+ * 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 <paolo.carlini@oracle.com>
* 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 89ee335..e7b48ac 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 793bbae..a410748 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 b6a56bc..7617c58 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*, size_t>(const unsigned long*,
- const unsigned long*,
- const size_t&);
} // namespace std