From 3476ade3d12a0cb405df75063ba6d829aa4ccfb4 Mon Sep 17 00:00:00 2001 From: Timo Heister Date: Tue, 17 Jan 2017 17:28:07 -0500 Subject: [PATCH] split instantiations This splits some large files to compile with <2.5GB RAM with gcc again. gcc 4.8.4 and using ulimit -v 2500000 except for the linking step. --- source/fe/mapping_fe_field.cc | 4 ++++ source/fe/mapping_fe_field_inst2.cc | 18 ++++++++++++++++++ source/numerics/vector_tools_project.cc | 6 +++++- source/numerics/vector_tools_project_inst2.cc | 18 ++++++++++++++++++ source/numerics/vector_tools_project_inst3.cc | 18 ++++++++++++++++++ 5 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 source/fe/mapping_fe_field_inst2.cc create mode 100644 source/numerics/vector_tools_project_inst2.cc create mode 100644 source/numerics/vector_tools_project_inst3.cc diff --git a/source/fe/mapping_fe_field.cc b/source/fe/mapping_fe_field.cc index 754c144111..5fa1a358d2 100644 --- a/source/fe/mapping_fe_field.cc +++ b/source/fe/mapping_fe_field.cc @@ -1990,6 +1990,10 @@ MappingFEField::update_internal_dofs } // explicit instantiations +#define SPLIT_INSTANTIATIONS_COUNT 2 +#ifndef SPLIT_INSTANTIATIONS_INDEX +#define SPLIT_INSTANTIATIONS_INDEX 0 +#endif #include "mapping_fe_field.inst" diff --git a/source/fe/mapping_fe_field_inst2.cc b/source/fe/mapping_fe_field_inst2.cc new file mode 100644 index 0000000000..efe9d52d0b --- /dev/null +++ b/source/fe/mapping_fe_field_inst2.cc @@ -0,0 +1,18 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2017 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + + +#define SPLIT_INSTANTIATIONS_INDEX 1 +#include "mapping_fe_field.cc" diff --git a/source/numerics/vector_tools_project.cc b/source/numerics/vector_tools_project.cc index 3fd0d4b8f3..5848b27b53 100644 --- a/source/numerics/vector_tools_project.cc +++ b/source/numerics/vector_tools_project.cc @@ -1,6 +1,6 @@ // --------------------------------------------------------------------- // -// Copyright (C) 1998 - 2014 by the deal.II authors +// Copyright (C) 1998 - 2017 by the deal.II authors // // This file is part of the deal.II library. // @@ -19,6 +19,10 @@ DEAL_II_NAMESPACE_OPEN // ---------------------------- explicit instantiations -------------------- +#define SPLIT_INSTANTIATIONS_COUNT 3 +#ifndef SPLIT_INSTANTIATIONS_INDEX +#define SPLIT_INSTANTIATIONS_INDEX 0 +#endif #include "vector_tools_project.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/numerics/vector_tools_project_inst2.cc b/source/numerics/vector_tools_project_inst2.cc new file mode 100644 index 0000000000..cc2bb87955 --- /dev/null +++ b/source/numerics/vector_tools_project_inst2.cc @@ -0,0 +1,18 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2017 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + + +#define SPLIT_INSTANTIATIONS_INDEX 1 +#include "vector_tools_project.cc" diff --git a/source/numerics/vector_tools_project_inst3.cc b/source/numerics/vector_tools_project_inst3.cc new file mode 100644 index 0000000000..37ca69f25c --- /dev/null +++ b/source/numerics/vector_tools_project_inst3.cc @@ -0,0 +1,18 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2017 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + + +#define SPLIT_INSTANTIATIONS_INDEX 2 +#include "vector_tools_project.cc" -- 2.39.5