From ed55aea9a482ba3aa79ad023df7f4d2e159978bc Mon Sep 17 00:00:00 2001
From: Wolfgang Bangerth <bangerth@math.tamu.edu>
Date: Fri, 4 Jul 2014 08:03:36 +0000
Subject: [PATCH] Provide missing instantiations.

git-svn-id: https://svn.dealii.org/trunk@33108 0785d39b-7218-0410-832d-ea1e28bc413d
---
 deal.II/doc/news/changes.h            |  9 +++++++
 deal.II/source/dofs/dof_tools.inst.in | 35 +++++++++++++++++++++++++++
 2 files changed, 44 insertions(+)

diff --git a/deal.II/doc/news/changes.h b/deal.II/doc/news/changes.h
index 806f960395..99ee610c27 100644
--- a/deal.II/doc/news/changes.h
+++ b/deal.II/doc/news/changes.h
@@ -148,6 +148,15 @@ inconvenience this causes.
 <h3>Specific improvements</h3>
 
 <ol>
+  <li> Fixed: Some versions of DoFTools::extract_boundary_dofs() were
+  not instantiated for some combinations of arguments. This could lead
+  to missing symbol errors during linking of applications on some
+  platforms and with some compiler versions. This is now
+  fixed.
+  <br>
+  (Wolfgang Bangerth, 2014/07/04)
+  </li>
+
   <li> Fixed: GridGenerator::merge_triangulations produced sometimes invalid
   orientations of faces. This is now fixed.
   <br>
diff --git a/deal.II/source/dofs/dof_tools.inst.in b/deal.II/source/dofs/dof_tools.inst.in
index 42d18057c3..a24538f170 100644
--- a/deal.II/source/dofs/dof_tools.inst.in
+++ b/deal.II/source/dofs/dof_tools.inst.in
@@ -168,6 +168,7 @@ DoFTools::extract_boundary_dofs<DoFHandler<deal_II_dimension> >
  const ComponentMask                  &,
  std::vector<bool>                        &,
  const std::set<types::boundary_id> &);
+
 template
 void
 DoFTools::extract_boundary_dofs<hp::DoFHandler<deal_II_dimension> >
@@ -176,6 +177,22 @@ DoFTools::extract_boundary_dofs<hp::DoFHandler<deal_II_dimension> >
  std::vector<bool>                        &,
  const std::set<types::boundary_id> &);
 
+template
+void
+DoFTools::extract_boundary_dofs<DoFHandler<deal_II_dimension> >
+(const DoFHandler<deal_II_dimension> &,
+ const ComponentMask                  &,
+ IndexSet                        &,
+ const std::set<types::boundary_id> &);
+
+template
+void
+DoFTools::extract_boundary_dofs<hp::DoFHandler<deal_II_dimension> >
+(const hp::DoFHandler<deal_II_dimension> &,
+ const ComponentMask                  &,
+ IndexSet                        &,
+ const std::set<types::boundary_id> &);
+
 template
 void
 DoFTools::extract_dofs_with_support_on_boundary<DoFHandler<deal_II_dimension> >
@@ -326,11 +343,21 @@ DoFTools::extract_boundary_dofs<DoFHandler<deal_II_dimension,deal_II_dimension+1
    const ComponentMask                  &,
    std::vector<bool>                        &,
    const std::set<types::boundary_id> &);
+
+template
+void
+DoFTools::extract_boundary_dofs<DoFHandler<deal_II_dimension,deal_II_dimension+1> >
+  (const DoFHandler<deal_II_dimension,deal_II_dimension+1> &,
+   const ComponentMask                  &,
+   IndexSet                        &,
+   const std::set<types::boundary_id> &);
+
 template
 unsigned int
 DoFTools::count_dofs_with_subdomain_association<DoFHandler<deal_II_dimension,deal_II_dimension+1> >
 (const DoFHandler<deal_II_dimension,deal_II_dimension+1> &,
  const types::subdomain_id);
+
 template
 IndexSet
 DoFTools::dof_indices_with_subdomain_association<DoFHandler<deal_II_dimension,deal_II_dimension+1> >
@@ -383,6 +410,14 @@ DoFTools::extract_boundary_dofs<DoFHandler<1,3> >
    std::vector<bool>                        &,
    const std::set<types::boundary_id> &);
 
+template
+void
+DoFTools::extract_boundary_dofs<DoFHandler<1,3> >
+  (const DoFHandler<1,3> &,
+   const ComponentMask                  &,
+   IndexSet                        &,
+   const std::set<types::boundary_id> &);
+
 template
 void
 DoFTools::get_subdomain_association<DoFHandler<1,3> >
-- 
2.39.5