Skip to content

Commit cbaa5ab

Browse files
committed
Deps: Update minimum version requirements of Boost to 1.83.0 for non-windows builds and of GCC and Clang to 13.3 and 18.1.3, respectively.
Fixes infinite recursion on `boost::rational` comparison affecting compiler binaries built with GCC<14.0 and Boost<1.75.
1 parent fff81f3 commit cbaa5ab

File tree

5 files changed

+15
-7
lines changed

5 files changed

+15
-7
lines changed

.circleci/config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ parameters:
3030
emscripten-docker-image:
3131
type: string
3232
# NOTE: Please remember to update the `scripts/build_emscripten.sh` whenever the hash of this image changes.
33-
# solbuildpackpusher/solidity-buildpack-deps:emscripten-20
34-
default: "solbuildpackpusher/solidity-buildpack-deps@sha256:98f963ed799a0d206ef8e7b5475f847e0dea53b7fdea9618bbc6106a62730bd2"
33+
# solbuildpackpusher/solidity-buildpack-deps:emscripten-21
34+
default: "solbuildpackpusher/solidity-buildpack-deps@sha256:fc53d68a4680ffa7d5f70164e13a903478964f15bcc07434d74833a05f4fbc19"
3535
evm-version:
3636
type: string
3737
default: prague

Changelog.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Bugfixes:
1010
* Yul Optimizer: Fix edge case in which invalid Yul code is produced by ExpressionSimplifier due to expressions being substituted that contain out-of-scope variables.
1111

1212
Build System:
13-
* Update to boost 1.70.0 for non-windows builds.
13+
* Update minimum version requirements of Boost to 1.83.0 for non-windows builds and of GCC and Clang to 13.3 and 18.1.3, respectively. Fixes infinite recursion on `boost::rational` comparison affecting compiler binaries built with GCC<14.0 and Boost<1.75.
1414

1515
### 0.8.30 (2025-05-07)
1616

cmake/EthDependencies.cmake

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ else()
4444
# Boost 1.67 moved container_hash into is own module.
4545
# Boost 1.69 boost::system is header-only and no longer needs to be fetched as component
4646
# Boost 1.70 comes with its own BoostConfig.cmake and is the new (non-deprecated) behavior
47-
find_package(Boost 1.70.0 QUIET REQUIRED COMPONENTS ${BOOST_COMPONENTS})
47+
# Boost 1.75 fixes infinite recursion on `boost::rational` comparison with GCC<14.0 under C++20
48+
# Boost 1.83 is the version that comes with Ubuntu 24.04.
49+
find_package(Boost 1.83.0 QUIET REQUIRED COMPONENTS ${BOOST_COMPONENTS})
4850
endif()
4951

5052
# If cmake is older than boost and boost is older than 1.70,

docs/installing-solidity.rst

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -320,14 +320,16 @@ Prerequisites - All Operating Systems
320320

321321
The following are dependencies for all builds of Solidity:
322322

323+
.. Note: This has to be kept in sync with `scripts/ci/install_and_check_minimum_requirements.sh`.
324+
323325
+-----------------------------------+-------------------------------------------------------+
324326
| Software | Notes |
325327
+===================================+=======================================================+
326328
| `CMake`_ (version 3.21.3+ on | Cross-platform build file generator. |
327329
| Windows, 3.13+ otherwise) | |
328330
+-----------------------------------+-------------------------------------------------------+
329331
| `Boost`_ (version 1.77+ on | C++ libraries. |
330-
| Windows, 1.70+ otherwise) | |
332+
| Windows, 1.83+ otherwise) | |
331333
+-----------------------------------+-------------------------------------------------------+
332334
| `Git`_ | Command-line tool for retrieving source code. |
333335
+-----------------------------------+-------------------------------------------------------+
@@ -372,8 +374,10 @@ Minimum Compiler Versions
372374

373375
The following C++ compilers and their minimum versions can build the Solidity codebase:
374376

375-
- `GCC <https://gcc.gnu.org>`_, version 11+
376-
- `Clang <https://clang.llvm.org/>`_, version 14+
377+
.. Note: Minimum versions for GCC and Clang are based on availability in Ubuntu 24.04.
378+
379+
- `GCC <https://gcc.gnu.org>`_, version 13.3+
380+
- `Clang <https://clang.llvm.org/>`_, version 18.1.3+
377381
- `MSVC <https://visualstudio.microsoft.com/vs/>`_, version 2019+
378382

379383
Prerequisites - macOS

scripts/ci/install_and_check_minimum_requirements.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#!/usr/bin/env bash
22
set -euo pipefail
33

4+
# These versions must be kept in sync with the docs in `docs/installing-solidity.rst#building-from-source`.
5+
46
# minimum boost version
57
BOOST_VERSION=1.83
68

0 commit comments

Comments
 (0)