diff options
author | 2024-02-15 18:55:22 -0600 | |
---|---|---|
committer | 2024-02-15 18:59:14 -0600 | |
commit | 71634c39d291459439fadb16adfb9506278d2835 (patch) | |
tree | 943a18fda45a1377545e1f71b222b292d5e83572 /sci-libs | |
parent | sci-libs/dealii: drop 9.4.0-r1 (diff) | |
download | gentoo-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/Manifest | 4 | ||||
-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.patch | 59 | ||||
-rw-r--r-- | sci-libs/dealii/files/dealii-9.4.2-base-mpi.h-mark-a-template-variable-to-have-const-in.patch | 28 |
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 + |