summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Maier <tamiko@gentoo.org>2024-02-15 18:55:22 -0600
committerMatthias Maier <tamiko@gentoo.org>2024-02-15 18:59:14 -0600
commit71634c39d291459439fadb16adfb9506278d2835 (patch)
tree943a18fda45a1377545e1f71b222b292d5e83572 /sci-libs
parentsci-libs/dealii: drop 9.4.0-r1 (diff)
downloadgentoo-71634c39d291459439fadb16adfb9506278d2835.tar.gz
gentoo-71634c39d291459439fadb16adfb9506278d2835.tar.bz2
gentoo-71634c39d291459439fadb16adfb9506278d2835.zip
sci-libs/dealii: add 9.4.2, drop 9.4.1-r1
- apply mpich fix Bug: https://bugs.gentoo.org/920556 Signed-off-by: Matthias Maier <tamiko@gentoo.org>
Diffstat (limited to 'sci-libs')
-rw-r--r--sci-libs/dealii/Manifest4
-rw-r--r--sci-libs/dealii/dealii-9.4.2.ebuild (renamed from sci-libs/dealii/dealii-9.4.1-r1.ebuild)7
-rw-r--r--sci-libs/dealii/files/dealii-9.4.2-base-mpi.cc-remove-superfluous-explicit-instantiatio.patch59
-rw-r--r--sci-libs/dealii/files/dealii-9.4.2-base-mpi.h-mark-a-template-variable-to-have-const-in.patch28
4 files changed, 94 insertions, 4 deletions
diff --git a/sci-libs/dealii/Manifest b/sci-libs/dealii/Manifest
index 3ac62d91cec5..060460e46f39 100644
--- a/sci-libs/dealii/Manifest
+++ b/sci-libs/dealii/Manifest
@@ -1,7 +1,7 @@
DIST dealii-9.4.1-offline_documentation.tar.gz 392007419 BLAKE2B 81404b02ba7dc97a0314f52fa9d775183981864288f4ab4ca81b550a1763d90cb5b04b32c056008ad60a7829b929c78edd80cbeeeb861e4ef638780c13d80aa7 SHA512 9bbaf6e9a478ac643e87f2f07918c8a5216e17b0ddaeba4beb2acde9ea54833e2f0e7d11f61b2cac8b986e442dbb181317b53e1a40a807e7c098167bfd073266
DIST dealii-9.4.1-offline_documentation.tar.gz.asc 246 BLAKE2B 9ace22c9b174e642cd3fba94c165d816c62814f892f5f6f272efa0301613dc55251152825e726fc6cf7e89bbfb7fa3552ec58ad426a7d58a74ecb89b9072f742 SHA512 50b43dd34a0687395f516f4910581df71054fa8be3c98006566ea649d0af866d38c9793da548ba6bdb7a9fec452dfb6d928d336aace943522d7c3f854209b81b
-DIST dealii-9.4.1.tar.gz 30298204 BLAKE2B 499f542c7a7f071d04048127199c7bebf5668b6e8d13fc2701dd18e28165442e58112ee9e4926e16a592bffdd5d7b7c240eea55808e5f9c021961f7e44b7da79 SHA512 39089aff462d3ff4244ce75f74a4cd908f8f72a81dcc3fb02ca91b3cad2442ceb78677e72cd928b36a04d352c4baa146a25fa5e14c886ca9e2bad0be0069f7b8
-DIST dealii-9.4.1.tar.gz.asc 246 BLAKE2B dbb1dc7b3e8a97f29287f154d11cd3db2566fdc4c7667fa57e686e2feba33f2115546408365f0e8f490ba593cb582b12489de373da3e33e8702b6e16804c7ebf SHA512 eb987d34f19b59d523d79f3c2c99f5f3125b1d0c71af0eb32b77ad5959d6197b79f1971a8a79dbc52bab698335dcb6091aac88c51d845a1e07d3681c089754c7
+DIST dealii-9.4.2.tar.gz 30298479 BLAKE2B bff5dd5a1b5458dd6e295b87cee9d24626ffce0b4c6a3329f190739d8fc67d34f11f0218dbbcd69dcf2e031e3e9f04cd1f2d0768d2fad32198bf1360d132a686 SHA512 6f6f032f6eef73421b53576e01f40bef0b4ce3d89583a016d057f8ec023c1f925a5c245991fd4639f9e73c4852d5cfd36da92258251a56179a98cd4a612cac9f
+DIST dealii-9.4.2.tar.gz.asc 246 BLAKE2B b61a8e3e496ba34c87fe453fbcec9fd0fb0d59f8d7123f38352c65c81b3d0ea706a4f645444970857a9fd67a26a984fc5adcfe8ed6c43eae5656bba6dd3bed9e SHA512 b11a79da7eeaababf7ec2c2264b41d0a5df9fd2f870829c535f888f0f8c07a6765920e023fd9d74f24a5a4744bd8d68a6db1669e449ed1a81757ee6c3c60b873
DIST dealii-9.5.0-offline_documentation.tar.gz 412499027 BLAKE2B 521aa2488d84d48a624f4cbdbe9c173d0cdcee2df8d06b97b7c25ba28d4a2113a7da9fd9abd9eb64cd56b37f8edc716bd034fc3ba8823f8b1def26c34aaeeb55 SHA512 2e0d331f92d52b0fd909a0139157a1960a9222d46d537611f0508cdb79020a8e51ff0da6aefdf95adff732cea050b72df7dc1a8af7e93c736721970218815cfe
DIST dealii-9.5.0-offline_documentation.tar.gz.asc 246 BLAKE2B 0a570885e80ad09ff154532b71c07e33894e93c96b3bca48dc8aae0b308883518cbb5eca57658c4e13de47efba47c3cb20bf376482ef7a26c6c0da93ee4dd689 SHA512 b63a9a0504fe5266b448ffda74e1d85ad5b6f344535c5b5f11d209546b51bb916ad69504ce5e4f1fd2287407c2d3d98a20b01bd830e8d45f510a85b7a057a8d5
DIST dealii-9.5.1.tar.gz 31522808 BLAKE2B 99db2beafb949364869fc7f06f78bf921b0d99c69de57da40115b0eb939e1c9a40dcbf40a186a988189ea92a6e1295da4969fd33a7e4738b27813ff1842cb99a SHA512 7ba4e4751417a7916cb059379b3b70afcaa5f62786e92ac7332b6f55cbcfcb25df15de2a6071cc33444c911f104e576f8792ea4ac4e6702186e5740c7c909d72
diff --git a/sci-libs/dealii/dealii-9.4.1-r1.ebuild b/sci-libs/dealii/dealii-9.4.2.ebuild
index e85fd0205e74..fd2fc4b43f39 100644
--- a/sci-libs/dealii/dealii-9.4.1-r1.ebuild
+++ b/sci-libs/dealii/dealii-9.4.2.ebuild
@@ -18,11 +18,12 @@ if [[ ${PV} = *9999* ]]; then
EGIT_REPO_URI="https://github.com/dealii/dealii.git"
SRC_URI=""
else
+ DOC_PV=9.4.1
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.gz
verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.gz.asc )
doc? (
- https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}-offline_documentation.tar.gz
- verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}-offline_documentation.tar.gz.asc )
+ https://github.com/${PN}/${PN}/releases/download/v${DOC_PV}/${PN}-${DOC_PV}-offline_documentation.tar.gz
+ verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${DOC_PV}/${PN}-${DOC_PV}-offline_documentation.tar.gz.asc )
)"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
fi
@@ -82,6 +83,8 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-9.1.1-no-ld-flags.patch
+ "${FILESDIR}"/${PN}-9.4.2-base-mpi.cc-remove-superfluous-explicit-instantiatio.patch
+ "${FILESDIR}"/${PN}-9.4.2-base-mpi.h-mark-a-template-variable-to-have-const-in.patch
)
VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/dealii.asc"
diff --git a/sci-libs/dealii/files/dealii-9.4.2-base-mpi.cc-remove-superfluous-explicit-instantiatio.patch b/sci-libs/dealii/files/dealii-9.4.2-base-mpi.cc-remove-superfluous-explicit-instantiatio.patch
new file mode 100644
index 000000000000..85a78c4c1326
--- /dev/null
+++ b/sci-libs/dealii/files/dealii-9.4.2-base-mpi.cc-remove-superfluous-explicit-instantiatio.patch
@@ -0,0 +1,59 @@
+From aafc2c19dfd3ebc43e37ba3f13eda5f790376b1c Mon Sep 17 00:00:00 2001
+From: Matthias Maier <tamiko@43-1.org>
+Date: Thu, 15 Feb 2024 15:54:36 -0600
+Subject: [PATCH 1/2] base/mpi.cc: remove superfluous explicit instantiations
+ of template variable
+
+The `mpi.h` header already contains:
+```
+template <typename T>
+const MPI_Datatype mpi_type_id_for_type = /* implementation detail */;
+```
+Meaning, the variable is known fully after including the header.
+Furthermore, the `const` qualifier marks the (template) variable as
+`static`. I.e., it has internal linkage.
+
+Thus, we must not explicitly instantiate the variables (suggesting
+"extern" linkage in all but the `mpi.cc` compilation unit). This
+apparently not an issue with OpenMPI because `MPI_Datatype` is a
+complex data structure. But it is an issue with mpich where
+`MPI_Datatype` is a simple `int` - leading to a segmentation fault when
+during program startup.
+---
+ source/base/mpi.cc | 20 --------------------
+ 1 file changed, 20 deletions(-)
+
+diff --git a/source/base/mpi.cc b/source/base/mpi.cc
+index dab88e2b97..f845845764 100644
+--- a/source/base/mpi.cc
++++ b/source/base/mpi.cc
+@@ -100,26 +100,6 @@ namespace Utilities
+
+ namespace MPI
+ {
+-#ifdef DEAL_II_WITH_MPI
+- // Provide definitions of template variables for all valid instantiations.
+- template const MPI_Datatype mpi_type_id_for_type<bool>;
+- template const MPI_Datatype mpi_type_id_for_type<char>;
+- template const MPI_Datatype mpi_type_id_for_type<signed char>;
+- template const MPI_Datatype mpi_type_id_for_type<short>;
+- template const MPI_Datatype mpi_type_id_for_type<int>;
+- template const MPI_Datatype mpi_type_id_for_type<long int>;
+- template const MPI_Datatype mpi_type_id_for_type<unsigned char>;
+- template const MPI_Datatype mpi_type_id_for_type<unsigned short>;
+- template const MPI_Datatype mpi_type_id_for_type<unsigned long int>;
+- template const MPI_Datatype mpi_type_id_for_type<unsigned long long int>;
+- template const MPI_Datatype mpi_type_id_for_type<float>;
+- template const MPI_Datatype mpi_type_id_for_type<double>;
+- template const MPI_Datatype mpi_type_id_for_type<long double>;
+- template const MPI_Datatype mpi_type_id_for_type<std::complex<float>>;
+- template const MPI_Datatype mpi_type_id_for_type<std::complex<double>>;
+-#endif
+-
+-
+ MinMaxAvg
+ min_max_avg(const double my_value, const MPI_Comm mpi_communicator)
+ {
+--
+2.43.0
+
diff --git a/sci-libs/dealii/files/dealii-9.4.2-base-mpi.h-mark-a-template-variable-to-have-const-in.patch b/sci-libs/dealii/files/dealii-9.4.2-base-mpi.h-mark-a-template-variable-to-have-const-in.patch
new file mode 100644
index 000000000000..032b12237bd2
--- /dev/null
+++ b/sci-libs/dealii/files/dealii-9.4.2-base-mpi.h-mark-a-template-variable-to-have-const-in.patch
@@ -0,0 +1,28 @@
+From 2ef67e3896a2a7d0ba93539cf79310384470fc91 Mon Sep 17 00:00:00 2001
+From: Matthias Maier <tamiko@43-1.org>
+Date: Thu, 15 Feb 2024 16:03:22 -0600
+Subject: [PATCH 2/2] base/mpi.h: mark a template variable to have "const
+ inline" linkage.
+
+---
+ include/deal.II/base/mpi.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/deal.II/base/mpi.h b/include/deal.II/base/mpi.h
+index b77fd3e7c8..8ee55fbe41 100644
+--- a/include/deal.II/base/mpi.h
++++ b/include/deal.II/base/mpi.h
+@@ -1728,8 +1728,8 @@ namespace Utilities
+ * not satisfied.
+ */
+ template <typename T>
+- const MPI_Datatype
+- mpi_type_id_for_type = internal::MPIDataTypes::mpi_type_id(
++ inline const MPI_Datatype mpi_type_id_for_type =
++ internal::MPIDataTypes::mpi_type_id(
+ static_cast<std::remove_cv_t<std::remove_reference_t<T>> *>(nullptr));
+ #endif
+
+--
+2.43.0
+