Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name = 'Boost'
version = '1.88.0'

homepage = 'https://www.boost.org/'
description = """Boost provides free peer-reviewed portable C++ source libraries."""

toolchain = {'name': 'nvidia-compilers', 'version': '25.3'}
toolchainopts = {'pic': True}

source_urls = ['https://archives.boost.io/release/%(version)s/source/']
sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))]
patches = [
'Boost-1.88.0_better-nvhpc-support.patch',
'Boost-1.88.0_nvhpc-remove-constexpr.patch'
]
checksums = [
{'boost_1_88_0.tar.gz': '3621533e820dcab1e8012afd583c0c73cf0f77694952b81352bf38c1488f9cb4'},
{'Boost-1.88.0_better-nvhpc-support.patch': 'c9203f4de6e386570da1134dbb0c61f47ce1980e8bc0caf9d36162f28e90c094'},
{'Boost-1.88.0_nvhpc-remove-constexpr.patch': 'bfe4600e53ab45e27cf02f90119837f0eac5e4b6f89d4ef00d8d66c0bfeacdda'},
]

dependencies = [
('bzip2', '1.0.8'),
('zlib', '1.3.1'),
('XZ', '5.6.3'),
('zstd', '1.5.6'),
('ICU', '76.1'),
]

configopts = '--without-libraries=python,mpi'

# disable MPI, build Boost libraries with tagged layout
boost_mpi = False
tagged_layout = True

moduleclass = 'devel'
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
Update compiler commands from PGI to NVHPC to avoid build failures, due
to EasyBuild rpath wrappers not providing wrappers for old PGI variants.

Author: Jan Reuter (JSC)

diff --color -Naur boost_1_88_0.orig/tools/build/src/tools/pgi.jam boost_1_88_0/tools/build/src/tools/pgi.jam
--- boost_1_88_0.orig/tools/build/src/tools/pgi.jam 2025-04-03 13:37:31.000000000 +0200
+++ boost_1_88_0/tools/build/src/tools/pgi.jam 2025-08-28 10:01:16.225212568 +0200
@@ -25,11 +25,11 @@
{
local condition = [ common.check-init-parameters pgi : version $(version) ] ;

- local l_command = [ common.get-invocation-command pgi : pgc++ : $(command) ] ;
+ local l_command = [ common.get-invocation-command pgi : nvc++ : $(command) ] ;

common.handle-options pgi : $(condition) : $(l_command) : $(options) ;

- command_c = $(command_c[1--2]) $(l_command[-1]:B=pgcc) ;
+ command_c = [ common.get-invocation-command pgi : nvc : $(command) ] ;

toolset.flags pgi CONFIG_C_COMMAND $(condition) : $(command_c) ;

@@ -55,9 +55,9 @@
flags pgi.compile.c++ OPTIONS <cxxstd>14 : -std=c++14 ;
flags pgi.compile.c++ OPTIONS <cxxstd>1z : -std=c++17 ;
flags pgi.compile.c++ OPTIONS <cxxstd>17 : -std=c++17 ;
-flags pgi.compile.c++ OPTIONS <cxxstd>2a : -std=c++17 ;
-flags pgi.compile.c++ OPTIONS <cxxstd>20 : -std=c++17 ;
-flags pgi.compile.c++ OPTIONS <cxxstd>latest : -std=c++17 ;
+flags pgi.compile.c++ OPTIONS <cxxstd>2a : -std=c++20 ;
+flags pgi.compile.c++ OPTIONS <cxxstd>20 : -std=c++20 ;
+flags pgi.compile.c++ OPTIONS <cxxstd>latest : -std=c++23 ;

flags pgi.compile OPTIONS <link>shared : -fpic ;
flags pgi.compile OPTIONS <debug-symbols>on : -gopt ;
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
Avoid the following error during the build process:

"boost_1_88_0/libs/url/src/detail/replacement_field_rule.cpp", line 68:
error: expression must have a constant value
grammar::tuple_rule(
^
"boost_1_88_0/libs/url/src/detail/replacement_field_rule.cpp", line 68:
note: expression not folded to a constant due to excessive constexpr
function call complexity
grammar::tuple_rule(
^
Author: Jan Reuter (JSC)

diff --color -Naur boost_1_88_0.orig/libs/url/src/detail/replacement_field_rule.cpp boost_1_88_0/libs/url/src/detail/replacement_field_rule.cpp
--- boost_1_88_0.orig/libs/url/src/detail/replacement_field_rule.cpp 2025-04-03 13:37:31.000000000 +0200
+++ boost_1_88_0/libs/url/src/detail/replacement_field_rule.cpp 2025-08-28 10:04:36.156722724 +0200
@@ -31,7 +31,7 @@
char const* const end) const noexcept ->
system::result<value_type>
{
- static constexpr auto replacement_field_rules =
+ static auto replacement_field_rules =
grammar::tuple_rule(
// open
grammar::squelch(
@@ -64,7 +64,7 @@
char const* const end) const noexcept
-> system::result<value_type>
{
- static constexpr auto identifier_rules =
+ static auto identifier_rules =
grammar::tuple_rule(
grammar::delim_rule(
grammar::alpha_chars +
@@ -94,7 +94,7 @@
return {};

// any tokens allowed in fmt specs
- static constexpr auto fmt_specs_token_rule =
+ static auto fmt_specs_token_rule =
grammar::optional_rule(
grammar::token_rule(
grammar::vchars +
@@ -103,7 +103,7 @@

// internal ids in the fmt specs
// "{" [arg_id] "}"
- static constexpr auto internal_id_rule =
+ static auto internal_id_rule =
grammar::tuple_rule(
grammar::squelch(
grammar::delim_rule('{')),