Skip to content

Commit e2858e9

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 0aae0cc commit e2858e9

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

Changelog.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ Compiler Features:
77

88
Bugfixes:
99
* Assembler: Fix not using a fixed-width type for IDs being assigned to subassemblies nested more than one level away, resulting in inconsistent `--asm-json` output between target architectures.
10+
* General: Fix boost::rational comparison bug with gcc < 14 and C++20 that leads to infinite recursion.
1011
* 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.
1112

1213
Build System:
13-
* Update to boost 1.70.0 for non-windows builds.
14+
* 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.
1415

1516
### 0.8.30 (2025-05-07)
1617

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)